Erstmal Danke für eure Antworten ;).
Was Du nicht möchtest, ist, dass Dein Host als Router fungiert. NDP Types 133,134,137 werden Dich daher besonders interessieren.
Neben diesen kann akzeptiert auch der Linux-Kernel via /proc/sys/net/ipv6/conf/[interfacename] gewisse Einstellungen, sodass es nicht nötig sein wird, das über die Firewall zu lösen - außer für etwaige weitere Hosts.
Ich möchte die Konfiguration(en) so wenig wie möglich verteilen, sollte also nichts gegen nftables-Regeln sprechen bevorzuge ich das aktuell :). Aber zurück zum Thema:
Ich habe mir mal eine Konfiguration erstellt von der ich denke, dass es so passen sollte, es wäre super, wenn du mal drüber schaust. Mein Verständnis schreibe ich darunter, das darf natürlich gerne korrigiert werden :).
table inet filter {
chain output {
type filter hook output priority 0; policy accept;
ip6 nexthdr icmpv6 icmpv6 type {nd-neighbor-solicit, nd-neighbor-advert, nd-router-solicit} ip6 hoplimit!= 255 counter drop comment "drop icmpv6 already passed a router"
ip6 nexthdr icmpv6 icmpv6 type {nd-router-advert, nd-redirect} counter drop comment "do not act as router"
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain input {
type filter hook input priority 0; policy drop;
ip6 nexthdr icmpv6 icmpv6 type {destination-unreachable, packet-too-big, time-exceeded} limit rate 7/second counter accept comment "accept a few problems in life..."
ip6 nexthdr icmpv6 icmpv6 type {echo-request, echo-reply} limit rate 1/second counter accept
ip6 nexthdr icmpv6 icmpv6 type {nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert, nd-redirect} ip6 hoplimit 255 counter accept comment "accept icmpv6 not passed any router yet"
}
}
Display More
Im Input erlaube ich die icmpv6 "Problem"-Pakete und stark limitiert ping/echo. Und ich erlaube neighbor- advert & -solicit, sowieso redirects und router adverts, solange das hoplimit noch 255 ist (soweit ich das verstehe bedeutet es, dass diese Pakete noch keinen Router passiert haben, und somit von meinem ersten Anlaufpunkt (Netcup Gateway?!) kommen und vertrauenswürdig sind). Alles andere wird gedropt.
Im Output erlaube ich alles außer: router-advert und redirect wird immer gedroppt, da ich sonst als router agieren würde. neighbor-solicit & -advert und router-solicit droppe ich, wenn das hoplimit ungleich 255 ist, da sonst die Pakete bereits einen Router passiert hatten (und nicht ... auf meinem Mist gewachsen sind?!). Wenn das hoplimit 255 ist, ist es eine valide Anfrage/Antwort, die mein Server macht.
Ist das so in Ordnung und kann ich das so bedenkenlos lassen?
[...] Bei einem Drop sollte hier nichts auftauchen. [...] tcpdump zeigt dir hier genauere Einblicke tcpdump -nni ens3 icmp
Die Programme bekommen davon nichts mit, [...]. Wenn du allerdings beim Kernel schnorcheln willst, schickt er dir die Duplikate der Pakete bevor sie die Kernelfirewall erreichen.
Ich habe drop als default policy. Allerdings verstehe ich das mit der Kopie und ich vermute jetzt einfach mal solche Sniffer (wie z.B. nethogs) holen einfach alle Pakete beim Kernel ab; anders kann ich es mir zumindest aktuell nicht erklären.
Mit tcpdump sieht es (für mich) soweit okay aus. Ich bekomme hauptsächlich neighor-solicitations mit und diese kommen auch immer von einer fe80 Adresse und gehen zu ff02... Sieht für mich als Laien erstmal nicht verdächtig aus. Das habe ich allerdings erst überprüft nachdem ich oben genannte Änderungen vorgenommen habe.
Es bestätigt auch meine Vermutung, dass die Anzeige in nethogs (Verbindungen gehen von mir aus) einfach nicht stimmt, mit tcpdump sehe ich gut, dass zwar Pakete ankommen aber auf den geblockten Ports nichts raus geht.
So richtig erklären kann ich mir aber den hohen eingehenden Traffic auch mit Hilfe von tcpdump nocht nicht. (Natürlich habe ich den Filter angepasst :).)