Guten Abend,
ich beschäftige mich aktuell mit der Einrichtung von nftables auf einem vServer und stoße dabei auf Probleme mit den ICMP Regeln für IPv6. Mein Setup ist folgendes:
- Debian Stretch
- nftables 0.9.0 aus den Backports
Um IPv4 und IPv6 mit einem Ruleset bedienen zu können nutze ich die inet Familie von nftables. IPv4 bereitet dabei keine Probleme, sowohl Pings als auch SSH funktionieren. Nach aktivieren der Regeln ist mein Server jedoch für ICMPv6 nicht mehr erreichbar. Mit leerem Ruleset arbeiten beide Protokolle wie gewünscht.
Meine Input Chain sieht so aus:
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iif "lo" accept
ct state invalid drop
ip protocol icmp icmp type echo-request ct state new accept
ip6 nexthdr ipv6-icmp icmpv6 type { destination-unreachable, packet-too-big, time-exceeded, parameter-problem, mld-listener-query, mld-listener-report, mld-listener-done, nd-router-solicit, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert, ind-neighbor-solicit, ind-neighbor-advert, mld2-listener-report } accept
ip protocol udp ct state new jump UDP
ip protocol tcp tcp flags & (fin | syn | rst | ack) == syn ct state new jump TCP
ip protocol udp reject
ip protocol tcp reject with tcp reset
meta nfproto ipv4 counter packets 0 bytes 0 reject with icmp type prot-unreachable
}
Alles anzeigen
Zunächst dachte ich, dass ICMPv6 zu stark beschnitten ist, aber selbst wenn (wie oben) alle diesbezüglichen Pakete akzeptiert werden kann mein Server über IPv6 keine Pings beantworten. Versucht habe ich bereits:
- ICMPv4 erweitert (ip protocol icmp icmp type { destination-unreachable, router-solicitation, router-advertisement, time-exceeded, parameter-problem } accept)
- ct state new accept statt nur accept bezogen auf ICMPv6
Grundsätzlich verstehe ich nicht, wo hier der Fehler liegt. Mit iptables und ip6tables gab es keine Probleme. Die nftables Regeln funktionieren mit IPv4. Die IPv6 Adresse ist richtig eingerichtet und pingbar mit leerem nftables Ruleset. Die Regeln für den Umgang mit ICMPv6 sollten eigentlich alles akzeptieren. Trotzdem ist nach aktivieren von nftables keine Verbindung über IPv6 möglich. Leider habe ich selbst keinen IPv6 fähigen Internetanschluss, sodass ich auf die Online Pings diverser Webseiten angewiesen bin.
Sieht jemand von euch den Fehler?
Danke für die Hilfe im Voraus.
Gruß
MaxMusterman