Basic Firewall

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Internetrouter und Proxies ‹ 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 Debianpackage.png 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.png 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


Migriert.png Migration abgeschlossen: Dieser Artikel wurde vollständig aus dem alten Wiki migriert.