Aiccu
Firmware Image erstellen
Zunächst rufen wir das Menuconfig auf:
make menuconfig
Es muss zunächst euer Router ausgewählt sein, auch "Show advanced options" und das darunter erscheinende "Enable IPv6 support". Zudem werden folgende Pakte benötigt:
Standard Packages -> Dnsmasq Web Interface -> NHIPT Iptables CGI Web Interface -> NHIPT->Select kernel modules (IPv6) -> ip6_tables.ko Web Interface -> NHIPT->Select kernel modules (IPv6) -> ip6table_filter.ko Web Interface -> NHIPT->Select shared libraries (IPv6) -> libip6t_icmp6.so Unstable -> aiccu Unstable -> radvd Unstable -> traceroute6
Jetzt speichert und verlasst ihr die Konfiguration. Falls dies die erste Erstellung eines Images ist, müsst ihr nun zunächst mit make die für den nächsten Schritt benötigten Dateien erstellen.
Nachdem der Vorgang abgeschlossen ist, gebt ihr in die Konsole diesen Befehl ein:
make kernel-menuconfig
In diesem Menü aktiviert ihr nun folgende Optionen:
Loadable module support > Automatic kernel module loading (CONFIG_KMOD=y) Networking > Networking options > IPv6: IPv6-in-IPv4 tunnel (SIT driver) (CONFIG_IPV6_SIT=y)
Auch hier müsst ihr danach die Menüs mit "Exit" verlassen und die Frage, ob ihr das Speichern wollt, mit "Yes" beantworten.
Hinweis CONFIG_KMOD:
Option ist nicht als Default aktiviert, da manche Module nicht geladen werden, sobald kein "Replace Kernel" benutzt wird.
Bessere Alternative: In der Freetz-Weboberfläche kann über "Einstellungen > Freetz: modules" Modul XXX hinzugefügt werden.
Vorsicht: FREETZ_SECURITY_LEVEL=1 (Default) reicht nicht, siehe auch Security Levels.
(Quellcode: 7170: make/linux/Config.ohio-8mb.04.80:59:# CONFIG_KMOD is not set)
Hinweis CONFIG_IPV6_SIT:
Für Kernel 2.6.19.2 (z.B. 7270) is Option bereits aktivert und für 2.6.13.1 (z.B. 7170) nicht auswählbar.
(Quellcode: 7270: make/linux/Config.ur8-16mb.7270_04.86:344:CONFIG_IPV6_SIT=y)
Zum Schluss führt nochmal den Befehl make aus.
Das entstandene Image im Ordner "images" kann nun über das Webinterface eingespielt werden.
Netzwerksetup
Wählt den Punkt "Pakete" aus, um aiccu und radvd zu konfigurieren. Zuerst aiccu:
Starttyp: Automatisch Benutzername: Euer SixXS Benutzername Passwort: Euer SixXS Passwort Tunnel ID: ID des dynamischen Tunnels (z.B. T1234) Name des virt. IPv6 Interface: sixxs
Klickt anschließend auf "Übernehmen", um die Einstellungen zu speichern. Als nächstes wird radvd konfiguriert. Dazu benötigt ihr ein aktives Subnet, dass zu eurem Tunnel geroutet wird. Lautet euer Prefix beispielsweise !2001:6f8:1234::/48, so muss die Konfiguration folgendermaßen aussehen:
Starttyp: Automatisch IPv6 Schnittstelle: lan IPv6 Adresse: 2001:6f8:1234::1/64 IPv6 Prefix: 2001:6f8:1234::/64
Achtung: Dies ist kein Tippfehler! In der Konfiguration muss hinter dem Prefix /64 stehen, auch wenn eurer Prefix ein /48 Subnet hat! Auch hier durch klick auf "Übernehmen" die Einstellung speichern. Abschließend geht auf "Dienste" und startet nacheinander die Dienste "aiccu" und "radvd".
IPv6 Sicherheit
Um jetzt noch die Clients gegen Verbindungen von außen abzuschotten, klicken wir im Freetzmenü auf Pakete→NHIPT, tragen bei "Admin IP" das Subnetz eures LAN ein (beispielsweise 192.168.178.0/24) und setzt den Status auf "running". Das ganze übernehmen und auf "Edit Firewall Rules" klicken. Hier müsst ihr euch mit euren Freetzinterface Logindaten (Standarduser: admin, Standardpasswort: freetz) anmelden.
Auf der folgenden Seite seht ihr dann die Konfigurationsseite für die IPv6 Firewall ip6tables. Lasst euch nicht von den vielen Feldern erschlagen und scrollt direkt zu den Feldern, über denen "RULES FOR CHAIN INPUT [ filter ] [ IPv6 ]" steht. Tragt jetzt in die Felder folgende Werte ein:
"In IFC" = "sixxs" "Prot" = "ipv6" "Module" = "state" "Param" = "RELATED,ESTABLISHED"
und klickt auf "Insert". Das ganze wiederholt ihr dann noch (wieder in den gleichen Feldern) mit den Werten
"In IFC" = "sixxs" "Prot" = "ipv6-icmp"
"In IFC" = "sixxs" "Action" = "DROP"
Zum Schluss auf "persist rules" klicken.
Jetzt ist euer Netzwerk auch unter IPv6 geschützt, wobei es trotzdem die Pings durchlässt (für Credits).
Hinweis: Das Modul "state" bzw conntrack funktioniert mit zu altem Kernel (7270 hat 2.6.19.2) für IPv6 nicht, kann also weggelassen werden. Quelle: SixXS
DNS trage ich nach, soweit ich mich damit mehr beschäftigt habe.
aiccu.sh
Falls aktiviert, wird dieses Skript nach Verbindungsaufbau ausgeführt. Es können z. B. ip6tables Regeln eingetragen werden.
Links
Comment by oliver on Sa 12 Jun 2010 20:02:08 CEST
Welche Kernel Version brauchen wir denn? 2.6.20 oder 2.6.21? Wenn conntrack wichtig ist, dann könnten wir schauen, ob wir die Änderungen backporten können.
Comment by cuma on Sa 12 Jun 2010 20:55:43 CEST
2.6.20 reicht: http://www.bieringer.de/linux/IPv6/status/IPv6+Linux-status-kernel.html
Comment by mike on Mo 26 Jul 2010 20:34:33 CEST
Schaut euch bitte mal diese stateless Firewall Regeln für ipv6 mit sixxs Tunnel auf der FritzBox an. Habe ich gerade aus Mangel am conntrack Modul für meinen alten 2.6.19er Kernel auf der 7170 geschrieben. Über Kommentare und Verbesserungsvorschläge freue ich mich. Ich weiß selbst dass es nicht perfekt ist, aber besser so als gar keinen Schutz.
# Flush rules ip6tables -F # Set the default policy ip6tables -P INPUT DROP ip6tables -P FORWARD DROP ip6tables -P OUTPUT ACCEPT # Allow anything on the local link ip6tables -A INPUT -i lo -j ACCEPT ip6tables -A OUTPUT -o lo -j ACCEPT # Allow Link-Local addresses ip6tables -A INPUT -s fe80::/10 -j ACCEPT # Allow multicast ip6tables -A INPUT -s ff00::/8 -j ACCEPT # Allow ICMP ip6tables -A INPUT -p icmpv6 -j ACCEPT # Allow INPUT ports from 1-1024 to destination ports 1024-65535 # Allow FORWARD ports from 1-1024 to destination ports 1024-65535 # on the sixxs interface ip6tables -A INPUT -i sixxs -p tcp --sport 1:1024 --dport 1024:65535 -j ACCEPT ip6tables -A INPUT -i sixxs -p udp --sport 1:1024 --dport 1024:65535 -j ACCEPT ip6tables -A FORWARD -i sixxs -p tcp --sport 1:1024 --dport 1024:65535 -j ACCEPT ip6tables -A FORWARD -i sixxs -p udp --sport 1:1024 --dport 1024:65535 -j ACCEPT # Allow forwarding of everything coming from _OUR_ # subnet. In this case: 2a01:aaa:bbb::/48 # You have to replace this for your config!!! ip6tables -A FORWARD -s 2a01:aaa:bbb::/48 -j ACCEPT