TomL hat geschrieben:
Nein, ICMP mit "echo request" und "echo reply" ist nicht stateless.... 'request' ist NEW, 'reply' ist ESTABLISHED.
Du redest vom Design von ICMP und ich rede vom ip6tables state/conntrack Modul in Bezug auf ICMPv6. Und wie dieser Thread und die Versuche zeigen ist dieser ICMPv6 eben stateless im Sinne der ip6tables Module sonst könnte ich ihn unter Verwendung dieser anhand des jeweiligen Zustandes (NEW,INVALID) in benutzerdefinierte Chains leiten.
Es belibt hier nur die Möglichkeit das in INPUT und OUTPUT Chain zu regeln.
Nein, auch das ist falsch. Du kannst das problemlos in eigenen Chains lösen, genau so, wie Du das vorgesehen hast.
Ja das ist richtig, da habe ich mich falsch ausgedrückt. Ich wollte damit nochmal aufzeigen, daß diese Pakete stateless sind und nicht mit state/conntrack abgefangen werden können.
Dein Setup ist aber nicht generell gültig und abhängig von den Gegebenheiten.
Das verstehe ich nicht. Bitte erkläre mir, bei welchen Gegebenheiten man zwar ein Ping-Handling in der Firewall erreichen möchte, aber keine ICMP-Identifikation durchführen kann.
Die Beantwortung deiner Frage gibst Du Dir im nächsten Absatz selber. In Deinem Setup hattest Du nur icmpv6-type 128 erlaubt. Das ist u.U zuwenig:
Ganz nebenbeibemerkt halte ich den Ansatz generell für nicht durchdacht, weil ICMP unter IPv6 eine andere Bedeutung hat, als unter IPv4. ICMP hat hier eine "höherwertigere" Paketbedeutung, als normale TCP-Pakete und steuert auch den TCP-Pakete-Verkehr. Unter IPv6 ist es falsch, ICMP generell zu blocken. Mehr Infos dazu findest Du in der RFC 4890. So sollten generell die Fehlernachrichten 1-4 explitzit erlaubt werden, ebenso wie das Router- und Neighbour-Advertisement 133-136 (z.B. für SLAAC), dazu noch ein paar weitere Codes.
Und zur Behebung Deines Problems müsstest Du noch kontrollieren, ob das Kernel-Modul "ip_conntrack" überhaupt geladen ist. Aber wie gesagt, der richtige Lösungsansatz ist es, ICMP-Pakete korrekt zu matchen und dann wie gewünscht darauf zu reagieren.
nf_conntrack_ipv6 ist geladen, hilft aber nichts bei ICMPv6. Beim Testen und Lesen zu IPv6 ist mir aber klar geworden, daß dieses Protokoll sehr viel mehr beinhaltet als das bei ICMPv4 der Fall war. So wie Du es gerade eben ja auch beschrieben hast. Ein Vorposter hat das ja auch schon erwähnt, daß hier auch ARP dadurch ersetzt wird. Da wird dann schnell klar, daß es hier nicht stateful geht. Danke für die ganzen Anregungen hier!