Firewall für Anfänger

Aus wiki.archlinux.de
Version vom 3. Januar 2013, 22:32 Uhr von Malte (Diskussion | Beiträge) (Zur Kategorie Netzwerk hinzugefügt)

Dieser Artikel richtet sich an Arch–Nutzer, die noch nie eine Firewall unter Linux benutzt haben.

Wer schonmal mit Windows zu tun hatte, kennt sicherlich Personal Firewalls. Ein möglich buntes Programm ermöglicht es einem, einzelnen Programmen den Zugriff auf das Internet zu gewähren bzw. zu verweigern. Unter einem Mehrbenutzersystem wie Linux hingegen filtert eine Firewall in der Regel auf Paketebene. Pakete sind die kleinste Dateneinheit, die beim Netzwerkverkehr auf einmal versendet wird. In der Regel greift man unter Linux auf iptables zurück.

Firewall zurücksetzen

Der Aufbau neuer Regeln sollte immer damit beginnen, alle vorhandenen Regeln zu löschen (flush):

iptables -F

Standardverhalten festlegen

Bei iptables Stellen alle Regeln Ausnahmen vom Standardverhalten ab. Dabei stellt man die Richtlinien OUTPUT, INPUT und FORWARD ein. Wie die Namen suggerieren, steht OUTPUT für alle ausgehenden Pakete, INPUT für alle eingehenden und FORWARD für alle Weitergeleiteten. Solange es sich nicht um eine Firewall oder einen Router handelt, sollte FORWARD auf das Verhalten DROP gesetzt werden, d.h. alle Pakete werden einfach „fallen gelassen“.

iptables -P FORWARD DROP

Eine einfache Firewall erlaubt allen Ausgehenden Datenverkehr:

iptables -P OUTPUT ACCEPT

Im Gegensatz dazu wird aller Eingehender Verkehr Blockiert, und nur, wenn benötigt, einzelne Ports geöffnet:

iptables -P INPUT DROP

Einzelne Ports öffnen

In vielen Fällen kann es hilfreich sein, auch auf Desktopmaschinen mit SSH zuzugreifen. Dafür muss der Port 22 für TCP geöffnet werden:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Zudem ist es in heterogenen Netzwerken meist erwünscht, Datenverkehr zum Sambaserver zuzulassen:

iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT

Alle Aufgebauten Verbindungen Durchwinken

Damit nicht eingehender Verkehr, der als Antwort auf ausgehenden Verkehr erfolgte, blockiert wird, werden die entsprechenden Pakete anhand ihres Status durchgewinkt:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Lokalen Netzwerkverkehr zulassen

Viele Systemdienste verlassen sich darauf, dass sie über die Loopback–Schnittstelle kommunizieren können. Daher sollte jeglicher Datenverkehr über die Schnittstelle lo zugelassen werden:

iptables -A INPUT -i lo -j ACCEPT