Ich möchte eine minimale iptables-Firewall innerhalb des Ubuntu-Servers 14.04 erstellen. Um sicherzugehen, dass ich meine Firewall richtig baue und ausführe, lasse ich sie zur Überprüfung durch die Community laufen. Ich verstehe die Vorgehensweise nicht ganz -o interface
. Jedes Mal, wenn ich mir verschiedene Firewall-Regeln ansehe, sind sie anders konfiguriert, was die Art und -i interface
Weise, wie meine Regeln eingerichtet sind, komplizierter macht . So wie ich es verstehe, ist es:wan
lan
PC>-i interface
LAN -o interface
>-i interface
WAN -o interface
>INTERNET. Dies gilt auch für NAT
Tabellen. prerouting
>NETZWERK postrouting
und forward
UmgehungenNETZWERK.
Dies ist ein allgemeiner Regelsatz, um die Firewall funktionsfähig zu machen, wenn ich richtig liege , wan
wobei eth0
gilt :lan
eth1
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Dies ist mein Regelsatz, wobei wan
ist eth0
und lan
ist eth1
:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate DNAT,ESTABLISHED,RELATED -j ACCEPT
iptables -P FORWARD -j DROP
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -P INPUT -j DROP
iptables -P OUTPUT -j ACCEPT
iptables -t nat -P INPUT ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT
Auch bezüglich der permanenten Ausführung der Firewall. Nachdem ich diesen Regelsatz bearbeitet habe, sudo nano -w /etc/rc.local
verwende ich ihn sudo chmod 755 /etc/rc.local
und sudo reboot
dieser Regelsatz wird bei jedem Gerätestart permanent ausgeführt?
Antwort1
Bevor Sie weitermachen, sehen Sie sich die „Net Filter Tables“ ( nftables
) an. Sie ersetzen iptables, iptables6, arptables, …
nftables ist: einfacher zu verwenden, leistungsfähiger und neuer. Auf neueren Systemen ist iptables ein (veraltetes) Frontend für nftables.
Ein Beispiel für einen nftables-Regelsatz: Blockieren des direkten Netzwerkzugriffs von Benutzern other
und Erzwingen der Verwendung eines Proxys. Es sind noch zwei Zähler vorhanden, die beim Testen verwendet wurden (sie könnten entfernt werden). Außerdem ist accept
ing, skuid „proxy-server“ unnötig. Dies ist die aktuelle Richtlinie.
#!/usr/sbin/nft -f
table ip my_table {}
flush table my_table
table ip my_table {
chain output {
type filter hook output priority 0; policy accept;
skuid "other" jump restrict_chain;
skuid "proxy-server" accept;
}
chain restrict_chain {
counter;
oifname != "lo" reject;
tcp dport != "1080" reject;
counter;
accept;
}
}