Das diesem Artikel zugrunde liegende Szenario (Abbildung 1) sieht so aus, dass ein DSL-Router mit Linux zum einen die internen Systeme vor Angriffen aus dem Internet schützen soll und zum anderen den Zugriff auf einen internen Server, der an einem DMZ-Interface angeschlossen ist, gewähren muss. Dabei geht es darum, den durchgehenden IPv6-Netzwerk-Traffic ebenso zu steuern wie den Zugriff auf den Router selbst. Dieser soll zu Administrationszwecken zumindest über SSH und HTTPS erreichbar sein. Außerdem soll er als DNS-Server für die internen Systeme dienen.
Seit der Linux-Kernel-Version 2.6.20 unterstützt »ip6tables
«
auch Stateful Inspection, womit die Firewall Antwortpakete automatisch einer Kommunikation zuordnet und gegebenenfalls passieren lässt. Diese mittlerweile auf fast allen Firewall-Plattformen gängige Funktion reduziert sowohl den Umfang als auch die Komplexität des Regelwerks erheblich, auch in diesem Beispiel.
Auf Linux-Systemen hat sich das Netfilter-Framework als Kernel-basierte Firewall-Software etabliert. Das Programm »iptables
«
dient zur Erstellung von IPv4-Firewall- und NAT-Regeln sowie der Header-Manipulation von Paketen. Allerdings unterstützt »iptables
«
nicht IPv6. Daher wurde das Kernel-Modul »ip6_tables
«
dem Netfilter-Framework hinzugefügt. Es wird über das Programm »ip6tables
«
konfiguriert.
Das Programm »ip6tables
«
verhält sich in weiten Teilen so wie »iptables
«
, sodass alte Hasen nicht komplett umlernen müssen. Andererseits stellt IPv6 durch diverse neue Protokollbestandteile und Kommunikationsformen den Firewall-Administrator vor neue Herausforderungen. In diesem Artikel gehen wir nur auf das Protokoll IPv6 ein, auch wenn in der Realität fast immer beide Protokolle in der Firewall-Konfiguration berücksichtigt werden müssen.
Eine IPv6-Netzwerk-Firewall kontrolliert hauptsächlich den Traffic, der durch das System hindurchgeht. Daher muss das IPv6-Routing zuvor aktiviert werden. Dies geschieht durch folgenden Befehl:
sysctl -w net.ipv6.conf.all.forwarding=1
Dies kann auch in der Konfigurationsdatei »/etc/sysctl.conf
«
eingetragen werden (Abbildung 2). Als Ergebnis steht in der Datei »/proc/sys/net/ipv6/conf/all
«
eine Eins. Dieser Wert aktiviert das IPv6-Routing. Möchten Sie es deaktivieren, tragen Sie hier eine Null ein.