Basic Firewall
GNU/Linux benutzt seit der Kernel Version 2.4 iptables, um Firewall-Funktionalität zur Verfügung zu stellen. Eine komplette Firewall mit NAT bzw. Masquerading, Routing, etc. einzurichten gehört schon zu den höheren Weihen der GNU/Linux Konfiguration. Jedoch lässt sich eine einfache und zuverlässige Kartoffel Firewall für den Heimbenutzer schnell einrichten.
Die hier beschriebene Konfiguration bietet folgendes: Grundlegende Abdichtung gegen jeden externen Versuch, mit dem Host zu kommunizieren. Nur Antworten auf interne Anfragen werden erlaubt. Das bedeutet, dass Websurfen und E-Mail ohne Probleme funktionieren, P2P-Software oder aktives FTP jedoch nicht. Dies erfordert zusätzliche Konfigurationen, die hier nicht geboten werden.
Rules
iptables arbeitet mit sog. Regeln, um seine Funktionalität zu erreichen. Um diese Regeln zu beeinflussen, muss das Tool iptables installiert sein. Unsere "Basic Firewall" verbietet sämtlichen eingehenden (INPUT
) und für andere Hosts weitergeleiteten (FORWARD
) Traffic, während aller von der Maschine selbst initiierter (OUTPUT
) Datenverkehr erlaubt wird. Dies wird über folgende Policies (--policy
bzw. -P
) erreicht:
root@debian:~# iptables -P INPUT DROP
root@debian:~# iptables -P FORWARD DROP
root@debian:~# iptables -P OUTPUT ACCEPT
Damit die Kommunikation über das Loopback-Interface lo
noch sauber funktioniert, empfiehlt sich, dessen Traffic komplett zuzulassen, indem man entsprechende Regeln ganz am Anfang der Ketten einfügt (--insert
bzw. -I
):
root@debian:~# iptables -I INPUT -i lo -j ACCEPT
root@debian:~# iptables -I OUTPUT -o lo -j ACCEPT
Loopback-Kommunikation wird beispielsweise beim NTP-Server verwendet, wobei der Client ntpq
etwa den Status des Servers abfragen kann.
Mit der bisherigen Konfiguration hat man nun einen Host, der sämtliche Pakete verschicken darf… und die Antworten darauf nicht annimmt (-P INPUT DROP
). Dies ist eher nicht wünschenswert, daher kann man den Kernel darum bitten, eine Übersicht der Verbindungen zu halten. Damit kann man die erlaubten eingehenden Pakete auf bestehende (ESTABLISHED
) zugehörige (RELATED
) Verbindungen beschränken:
root@debian:~# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
TODO: fix stateful, grobe Erklärung Policies/Ketten/Regeln/Reihenfolgen/bestehende Regeln
Hinweis: Das Ausschließen des Ethernet-Interfaces kann zum völligen Kommunikationsverlust für externe Anfrager führen, d.h. alle Samba-Shares, Netzwerkdrucker usw. des mit dieser Firewall-Regel abgesicherten Rechners sind im Netz nicht erreichbar. Diese müssen mit weiteren Regeln zugänglich gemacht werden. |
Weitere Lektüre
Migration abgeschlossen: Dieser Artikel wurde vollständig aus dem alten Wiki migriert. |