ip6tables - Problem mit ausgehenden IPv6-Verbindungen

BoMbY

Registered User
Hallo,

ich habe bei mir auf einem vServer Probleme mit ausgehenden IPv6-Verbindungen. Die Regeln wurden vom Plesk Firewall Modul erzeugt (XXXX durch mich maskiert):

Code:
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all      anywhere             anywhere            state RELATED,ESTABLISHED 
REJECT     tcp      anywhere             anywhere            tcp flags:!FIN,SYN,RST,ACK/SYN state NEW reject-with tcp-reset 
DROP       all      anywhere             anywhere            state INVALID 
ACCEPT     all      anywhere             anywhere            
ACCEPT     tcp      2001:4dd0:XXXX::/48  anywhere            tcp dpt:12443 
DROP       tcp      anywhere             anywhere            tcp dpt:12443 
ACCEPT     tcp      2001:4dd0:XXXX::/48  anywhere            tcp dpt:11443 
ACCEPT     tcp      2001:4dd0:XXXX::/48  anywhere            tcp dpt:11444 
DROP       tcp      anywhere             anywhere            tcp dpt:11443 
DROP       tcp      anywhere             anywhere            tcp dpt:11444 
ACCEPT     tcp      2001:4dd0:XXXX::/48  anywhere            tcp dpt:8447 
DROP       tcp      anywhere             anywhere            tcp dpt:8447 
ACCEPT     tcp      2001:4dd0:XXXX::/48  anywhere            tcp dpt:pcsync-https 
ACCEPT     tcp      2001:4dd0:XXXX::/48  anywhere            tcp dpt:cddbp-alt 
DROP       tcp      anywhere             anywhere            tcp dpt:pcsync-https 
DROP       tcp      anywhere             anywhere            tcp dpt:cddbp-alt 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:http 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:https 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:ftp 
ACCEPT     tcp      2001:4dd0:XXXX::/48  anywhere            tcp dpt:ssh 
DROP       tcp      anywhere             anywhere            tcp dpt:ssh 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:submission 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:smtp 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:urd 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:pop3 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:pop3s 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:imap 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:imaps 
ACCEPT     tcp      2001:4dd0:XXXX::/48  anywhere            tcp dpt:poppassd 
DROP       tcp      anywhere             anywhere            tcp dpt:poppassd 
DROP       tcp      anywhere             anywhere            tcp dpt:mysql 
DROP       tcp      anywhere             anywhere            tcp dpt:postgres 
DROP       tcp      anywhere             anywhere            tcp dpt:ogs-server 
DROP       tcp      anywhere             anywhere            tcp dpt:glrpc 
DROP       udp      anywhere             anywhere            udp dpt:netbios-ns 
DROP       udp      anywhere             anywhere            udp dpt:netbios-dgm 
DROP       tcp      anywhere             anywhere            tcp dpt:netbios-ssn 
DROP       tcp      anywhere             anywhere            tcp dpt:microsoft-ds 
ACCEPT     udp      2001:4dd0:XXXX::/48  anywhere            udp dpt:openvpn 
DROP       udp      anywhere             anywhere            udp dpt:openvpn 
ACCEPT     udp      anywhere             anywhere            udp dpt:domain 
ACCEPT     tcp      anywhere             anywhere            tcp dpt:domain 
ACCEPT     ipv6-icmp    anywhere             anywhere            ipv6-icmp type 134 code 0 
ACCEPT     ipv6-icmp    anywhere             anywhere            ipv6-icmp type 135 code 0 
ACCEPT     ipv6-icmp    anywhere             anywhere            ipv6-icmp type 136 code 0 
ACCEPT     ipv6-icmp    anywhere             anywhere            ipv6-icmp type 137 code 0 
ACCEPT     ipv6-icmp    anywhere             anywhere            ipv6-icmp type 128 code 0 
ACCEPT     ipv6-icmp    anywhere             anywhere            ipv6-icmp type 129 code 0 
DROP       all      anywhere             anywhere            

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all      anywhere             anywhere            state RELATED,ESTABLISHED 
REJECT     tcp      anywhere             anywhere            tcp flags:!FIN,SYN,RST,ACK/SYN state NEW reject-with tcp-reset 
DROP       all      anywhere             anywhere            state INVALID 
ACCEPT     all      anywhere             anywhere            
DROP       all      anywhere             anywhere            

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all      anywhere             anywhere            state RELATED,ESTABLISHED 
REJECT     tcp      anywhere             anywhere            tcp flags:!FIN,SYN,RST,ACK/SYN state NEW reject-with tcp-reset 
DROP       all      anywhere             anywhere            state INVALID 
ACCEPT     all      anywhere             anywhere            
ACCEPT     all      anywhere             anywhere

Das Problem äußert sich zum Beispiel wie folgt:

Code:
# ping6 blog.fefe.de
PING blog.fefe.de(2001:4d88:ffff:ffff:d0:b723:863f:2) 56 data bytes
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted

oder es hängt zum Beispiel bei:

Code:
# wget blog.fefe.de
--2013-06-21 14:20:22--  http://blog.fefe.de/
Resolving blog.fefe.de... 2001:4d88:ffff:ffff:d0:b723:863f:2, 31.15.64.162
Connecting to blog.fefe.de|2001:4d88:ffff:ffff:d0:b723:863f:2|:80...

Und dann kommt nichts mehr - außer vielleicht irgendwann ein Timeout. Kommen vielleicht die ACKs nicht mehr durch? Aber warum funktioniert es mit praktisch identischen Regeln bei IPv4?

Hat jemand vielleicht eine Idee? Wenn ich alle Regeln deaktiviere und die INPUT und OUTPUT Chain auf ACCEPT stelle funktioniert es - also muss es an einer der Regeln (oder an einer fehlenden) liegen?
 
Das sieht irgendwie nicht ganz nach der richtigen Reihenfolge aus?

Code:
Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all      anywhere             anywhere            state RELATED,ESTABLISHED 
REJECT     tcp      anywhere             anywhere            tcp flags:!FIN,SYN,RST,ACK/SYN state NEW reject-with tcp-reset 
DROP       all      anywhere             anywhere            state INVALID 
ACCEPT     all      anywhere             anywhere            
ACCEPT     all      anywhere             anywhere
  1. Alle Pakete ERLAUBEN, die zu einer bereits bestehenden Verbindung gehören
  2. Alle TCP-Pakete (außer Pakete zur Beendigung der Verbindung - FIN) die zu einer neuen Verbindung gehören ZURÜCKWEISEN
  3. Alle Pakete mit ungeklärtem Status VERWERFEN
  4. Alles erlauben
  5. Alles erlauben
Da iptables beim ersten Match nicht mehr weiterarbeitet, wird er immer an Punkt 2 scheitern.
Ich kenne die Plesk-Firewall allerdings nicht, deshalb kann ich dir keine konkreten Tipps geben wo man drücken muss damit es wieder geht - aber die doppelten Regeln sehen ein wenig so aus als wenn die Firewall nicht alleine von Plesk verwaltet wird?
 
Naja, bei IPv4 sieht es eben genauso aus, und funktioniert:

Code:
Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
REJECT     tcp  --  anywhere             anywhere            tcp flags:!FIN,SYN,RST,ACK/SYN state NEW reject-with tcp-reset
DROP       all  --  anywhere             anywhere            state INVALID
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Die doppelte Zeile ist ein Fehler aus dem generierten Script, tut aber nicht wirklich weh.
 
Back
Top