iptables und IPv6
iptables und IPv6
Hallo,
wer kennt sich mit iptables und IPv6-Adressen aus.
Ich habe im "Linux IPv6 HOWTO" schon gefunden, dass es für IPv6-Adressen ip6tables gibt. Aber dort ist ja nur eine relativ kurze Beschreibung.
Meine Frage ist eigentlich, welchen Unterschied ich genau machen muß, wenn ich ein Firewall-Script für IPv6-Adressen schreiben will.
Muß ich einfach nur die Adressen ändern oder muß ich iptables mit ip6tables ersetzen, was muß man anders machen. Auch habe ich gelesen, dass z.B. icmp zu icmp6 wird und so weiter.
Kennt jemand eine gute Doku, ich habe schon gesucht und nichts gefunden.
Marcel
wer kennt sich mit iptables und IPv6-Adressen aus.
Ich habe im "Linux IPv6 HOWTO" schon gefunden, dass es für IPv6-Adressen ip6tables gibt. Aber dort ist ja nur eine relativ kurze Beschreibung.
Meine Frage ist eigentlich, welchen Unterschied ich genau machen muß, wenn ich ein Firewall-Script für IPv6-Adressen schreiben will.
Muß ich einfach nur die Adressen ändern oder muß ich iptables mit ip6tables ersetzen, was muß man anders machen. Auch habe ich gelesen, dass z.B. icmp zu icmp6 wird und so weiter.
Kennt jemand eine gute Doku, ich habe schon gesucht und nichts gefunden.
Marcel
- MacGyver031
- Beiträge: 628
- Registriert: 18.08.2003 11:24:49
- Wohnort: Wiedlisbach, Schweiz
-
Kontaktdaten:
- MacGyver031
- Beiträge: 628
- Registriert: 18.08.2003 11:24:49
- Wohnort: Wiedlisbach, Schweiz
-
Kontaktdaten:
Hallo,
Ich selber bin noch noob in Sachen IPV6, aber so wie ichs gehört habe, arbeitet der IPV6 genau wie IPV4, jedoch sollte es möglich sein JEDEN PC mit einer einzigen IP zu versehen.
Ich denke, man kann alles in ein Skript unterbringen, die iptables mit ip5tables ersetzen, ip-range durch ipv6-range ersetzen und subnetze werden auch gewaltig ändern. Der IPV6 besteht aus verschiedene Komponente (Private range, Mac-adress anteil, zugehörigkeits anteil etc).
Ich selber bin noch noob in Sachen IPV6, aber so wie ichs gehört habe, arbeitet der IPV6 genau wie IPV4, jedoch sollte es möglich sein JEDEN PC mit einer einzigen IP zu versehen.
Ich denke, man kann alles in ein Skript unterbringen, die iptables mit ip5tables ersetzen, ip-range durch ipv6-range ersetzen und subnetze werden auch gewaltig ändern. Der IPV6 besteht aus verschiedene Komponente (Private range, Mac-adress anteil, zugehörigkeits anteil etc).
Sincerely your
MacGyver
SysInfo:
Intel Centrino 1.3GHz, 1GB, ATI M9, 1400x1050.
2.6.23, xorg-x11 7.2 Fluxbox 1.0.0 and many more.
MacGyver
SysInfo:
Intel Centrino 1.3GHz, 1GB, ATI M9, 1400x1050.
2.6.23, xorg-x11 7.2 Fluxbox 1.0.0 and many more.
is das ok?
#ipv6
echo 0 > /proc/sys/net/ipv6/conf/all/forwarding
ip6tables -F
ip6tables -X
ip6tables -Z
for i in `cat /proc/net/ip6_tables_names`
do
ip6tables -F -t $i
ip6tables -X -t $i
ip6tables -Z -t $i
done
ip6tables -P INPUT DROP
ip6tables -P OUTPUT DROP
ip6tables -P FORWARD DROP
ip6tables -N syn-flood
ip6tables -A INPUT -i ppp0 -p tcp --syn -j syn-flood
ip6tables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
ip6tables -A syn-flood -j DROP
# Make sure NEW tcp connections are SYN packets
#ip6tables -A INPUT -i ppp0 -p tcp ! --syn -m state --state NEW -j DROP
ip6tables -A INPUT -p tcp -m tcp --dport 25 --syn -j ACCEPT
#ip6tables -A INPUT -p tcp -m tcp --dport 53 --syn -j ACCEPT
#ip6tables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT
# ip6tables -A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT
#ip6tables -A INPUT -p tcp -m tcp --dport 1080 --syn -j ACCEPT
#ip6tables -A INPUT -p udp -m udp --dport 1081 -j ACCEPT
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT
ip6tables -A INPUT -i eth0 -j ACCEPT
ip6tables -A OUTPUT -o eth0 -j ACCEPT
ip6tables -A INPUT -i bnep+ -j ACCEPT
ip6tables -A OUTPUT -o bnep+ -j ACCEPT
#ip6tables -A FORWARD -m state --state NEW -j ACCEPT
#ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#ip6tables -A FORWARD -m state --state NEW,INVALID -j DROP
#ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#ip6tables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
ip6tables -A OUTPUT -p icmp -j ACCEPT # to both sides.
ip6tables -A INPUT -p icmp -j ACCEPT
echo 0 > /proc/sys/net/ipv6/conf/default/accept_redirects
echo 0 > /proc/sys/net/ipv6/conf/all/accept_redirects
#iptables -A INPUT -p tcp -m tcp --syn -j REJECT
#iptables -A INPUT -p udp -m udp -j REJECT
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
#ipv6
echo 0 > /proc/sys/net/ipv6/conf/all/forwarding
ip6tables -F
ip6tables -X
ip6tables -Z
for i in `cat /proc/net/ip6_tables_names`
do
ip6tables -F -t $i
ip6tables -X -t $i
ip6tables -Z -t $i
done
ip6tables -P INPUT DROP
ip6tables -P OUTPUT DROP
ip6tables -P FORWARD DROP
ip6tables -N syn-flood
ip6tables -A INPUT -i ppp0 -p tcp --syn -j syn-flood
ip6tables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
ip6tables -A syn-flood -j DROP
# Make sure NEW tcp connections are SYN packets
#ip6tables -A INPUT -i ppp0 -p tcp ! --syn -m state --state NEW -j DROP
ip6tables -A INPUT -p tcp -m tcp --dport 25 --syn -j ACCEPT
#ip6tables -A INPUT -p tcp -m tcp --dport 53 --syn -j ACCEPT
#ip6tables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
ip6tables -A INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT
# ip6tables -A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT
#ip6tables -A INPUT -p tcp -m tcp --dport 1080 --syn -j ACCEPT
#ip6tables -A INPUT -p udp -m udp --dport 1081 -j ACCEPT
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT
ip6tables -A INPUT -i eth0 -j ACCEPT
ip6tables -A OUTPUT -o eth0 -j ACCEPT
ip6tables -A INPUT -i bnep+ -j ACCEPT
ip6tables -A OUTPUT -o bnep+ -j ACCEPT
#ip6tables -A FORWARD -m state --state NEW -j ACCEPT
#ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#ip6tables -A FORWARD -m state --state NEW,INVALID -j DROP
#ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#ip6tables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
ip6tables -A OUTPUT -p icmp -j ACCEPT # to both sides.
ip6tables -A INPUT -p icmp -j ACCEPT
echo 0 > /proc/sys/net/ipv6/conf/default/accept_redirects
echo 0 > /proc/sys/net/ipv6/conf/all/accept_redirects
#iptables -A INPUT -p tcp -m tcp --syn -j REJECT
#iptables -A INPUT -p udp -m udp -j REJECT
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
moin,
gute frage, nächste frage. ich denke das sieht ganz ok aus.
mich würde aber mal interessieren, wie du am weltweiten ipv6 netzwerk teilnimmst. gehst du über einen tunnelbroker, oder wo bekommst du deine ipv6 her?.
ich teste gerade mit freenet6, geht ganz gut. wenn du auch über einen tunnelbroker gehst, brauchst du ja auch nich firewallregeln für ipv4, die zwar den tunnelbrocker durchlassen, aber den rest blocken.
marcel
gute frage, nächste frage. ich denke das sieht ganz ok aus.
mich würde aber mal interessieren, wie du am weltweiten ipv6 netzwerk teilnimmst. gehst du über einen tunnelbroker, oder wo bekommst du deine ipv6 her?.
ich teste gerade mit freenet6, geht ganz gut. wenn du auch über einen tunnelbroker gehst, brauchst du ja auch nich firewallregeln für ipv4, die zwar den tunnelbrocker durchlassen, aber den rest blocken.
marcel
die ipv6 adresse, welche du oben geschrieben hast ist eine sogenannte "link-local"-adresse. kannst unter http://mirrors.bieringer.de/Linux+IPv6- ... /x489.html nachlesen. das ist das Linux IPv6 HOWTO, welches alles zum thema ipv6 ganz gut erglärt.
wenn du am ipv6-netz teilhaben willst, ist es am günstigsten, einen tunnelbroker zu verwenden, welcher dir dann eine global gültige ipv6 zuweist. ich benutze wie schon oben geschrieben freenet6, der funktioniert recht gut. http://www.freenet6.net
auf deinen provider brauchst du im moment noch nicht zu bauen, die meisten unterstützen noch kein ipv6.
marcel
wenn du am ipv6-netz teilhaben willst, ist es am günstigsten, einen tunnelbroker zu verwenden, welcher dir dann eine global gültige ipv6 zuweist. ich benutze wie schon oben geschrieben freenet6, der funktioniert recht gut. http://www.freenet6.net
auf deinen provider brauchst du im moment noch nicht zu bauen, die meisten unterstützen noch kein ipv6.
marcel