IPv6-Internetzugang

Seite 5: Sicherheit

Inhaltsverzeichnis

Unter IPv6 entfällt die Firewall-Funktion von NAT. IPv6-Netze und -Rechner benötigen daher wenigstens eine Firewall, die unerwünschte Gäste fernhält. Unter Vista, Windows Server 2003 und 2008 sowie Windows XP (SP2) filtert die eingebaute Desktop-Firewall den Netzwerkverkehr für IPv6, was Hersteller Microsoft ausdrücklich wegen möglicher Viren- und Trojaner-Attacken empfiehlt. Auf Apples aktuellem Mac OS X 10.5 schützt eine neue von Apple selbst entwickelte Application Firewall das Betriebssystem. Gleichzeitig steht jedoch der Paketfilter ipfw bereit, der ausschließlich per Konsole bedient wird und den das aktuelle Mac OS X kaum nutzt. FreeBSD setzt ebenfalls auf ipfw, OpenBSD benutzt hingegen den Paketfilter pf. Linux filtert den IPv6-Datenverkehr über das Programm ip6tables, zu dem das Kernelmodule ip6_tables gehört. Ist es geladen, was sich über das Kommando modprobe ip6_tables nachholen lässt, existiert unter /proc/net die Datei ip6_tables_names. Anschließend errichten einige wenige Kommandos eine einfache Schutzmauer.

Die ersten drei Befehle erstellen Richtlinien für ein- und ausgehende sowie weitergeleitete Pakete. Der Aufruf ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT öffnet auf dem Router einen Port für den SSH-Server. Die Ip6tables-Aufrufe mit den Parametern -m state --state ESTABLISHED,RELATED schalten für eingehende und weitergereichte Pakete das Connection Tracking ein, sodass die Firewall Verbindungen beobachtet, die der Rechner ins Internet aufbaut. Antworten auf diese Anfragen lässt die Firewall passieren, nicht angeforderte Pakete verwirft sie.

IPv6-Firewall mit Connection Tracking …
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
ip6tables -A INPUT -i ${INTERFACE_EXTERN} -j DROP
ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A FORWARD -i ${INTERFACE_EXTERN} -j DROP

… und ohne Connection Tracking

ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
ip6tables -A INPUT -i ${INTERFACE_EXTERN} -p tcp --dport :1023 -j DROP
ip6tables -A INPUT -i ${INTERFACE_EXTERN} -p udp --dport :1023 -j DROP
ip6tables -A FORWARD -i ${INTERFACE_EXTERN} -p tcp --dport :1023 -j DROP
ip6tables -A FORWARD -i ${INTERFACE_EXTERN} -p udp --dport :1023 -j DROP

Linux vor Version 2.6.20 beherrschen diese Verbindungsüberwachung in der IPv6-Firewall noch nicht: Das zweite Ip6tables-Beispiel blockiert bis auf SSH alle Dienste unterhalb des Ports 1024 (Privilegierte Ports), alles andere lässt die Firewall passieren. Weitere Hilfen stellen die Manual-Seiten von ip6tables und die Projektseite von Netfilter bereit.

Die Vorteile von IPv6 liegen in Europa weniger beim Zugang zum Internet. Interessanter erscheint jedoch der umgekehrte Weg, der die heimischen Netzwerkgeräte per IPv6 ohne altbekannte Tricks weltweit erreichbar macht. Mit IPv6-tauglicher Software wie dem Webserver Apache oder Microsofts IIS lässt sich also schnell ein Server aufsetzen, der Dateien, Bilder oder andere Daten bereitstellt. Die eigenen Rechner stehen nun mitten im Internet und jeder kann sie erreichen – Schutzmaßnahmen wie eine Firewall und das Aktualisieren von Software sollte man also nicht vernachlässigen.

Deutsches Linux-IPv6-HOWTO von Peter Bieringer (rek)