Blockieren Sie IPv6-Datenverkehr mithilfe von iptables unter Linux mithilfe von Layer 2-Informationen

3

Ich habe ein einfaches isoliertes Netzwerk eingerichtet, das aus folgenden Linux-basierten Computern besteht: Node1 <----> Router <----> Node2

Das eth0 des Routers ist mit dem eth0 von Node1 verbunden. Das eth1 des Routers ist mit dem eth0 des Node2 verbunden.

Alle drei Systeme sind mit einer IPv6-Adresse konfiguriert und ich kann mich gegenseitig erfolgreich anpingen. Ich verwende iptables / ip6tables auf dem Router und möchte den gesamten IPv6-Datenverkehr von Node2 in Richtung Node1 (über den Router) blockieren.

Wie wir wissen, hat der gesamte IPv6-Verkehr die Ethernet-Pakettyp-Signatur 0x86dd, und ich möchte den Verkehr mit ip6tables nur mit dieser speziellen Signatur blockieren. Nachdem ich die Manpage von ip6tables gelesen und im Internet gesucht hatte, konnte ich keine geeignete Option (wie Ether-Type) finden, um den Datenverkehr zu blockieren.

Kann ich das überhaupt über ip6tables machen?

BEARBEITEN: Ich suche speziell nach einer Möglichkeit, Daten aus Schicht 2 (0x86dd) zum Blockieren des Datenverkehrs zu verwenden. Grundsätzlich läuft die Frage darauf hinaus, ob iptables / ip6tables auf Layer 2 funktioniert oder nicht.

bescheiden
quelle
Warum versuchen Sie, auf Ebene 2 zu filtern, wenn Sie IPv6 mithilfe von ip6tables problemlos filtern können? Mit IPv4 oder etwas anderem machen Sie das (im Allgemeinen) nicht so.
Michael Hampton

Antworten:

3
ip6tables -I FORWARD -o eth0 -j REJECT

Dadurch wird der gesamte IPv6-Verkehr abgelehnt, der nicht vom Router ausgeht und eth0 verlässt. Sie können auch ein -i eth1einfügen, um die Eingabeschnittstelle anzugeben. Zusätzlich könnte es Ihnen auch gefallen

ip6tables -I FORWARD -d ${IP(Node1)} -j REJECT

Dadurch wird der gesamte Datenverkehr blockiert, der an die IP-Adresse von Node1 gesendet wird, der nicht vom Router stammt, oder möglicherweise

ip6tables -I FORWARD -s ${IP(Node2)} -d ${IP(Node1)} -j REJECT

Dadurch wird der gesamte Datenverkehr von Node2 zu Node1 basierend auf den jeweiligen IP-Adressen blockiert.

Beachten Sie, dass die letzten beiden nur funktionieren, wenn Knoten1 und / oder Knoten2 feste IP-Adressen haben. Fühlen Sie sich frei zu ersetzen REJECTdurch DROP, sondern REJECTist in der Regel die schönere Art und Weise , Dinge zu tun (vor allem in einer ‚freundlichen‘ Umwelt).

Claudius
quelle
Ich habe speziell versucht, Layer 2-Informationen (Ethernet Packet Type 0x86dd) zu verwenden, um dies zu erreichen. Ich werde meine Frage aktualisieren, damit sie genauer ist.
bescheiden
ip (6) tables funktioniert nicht auf Layer 2.
Claudius
Danke für die Bestätigung. Weiß jemand, ob es in Linux ein Tool gibt, das dies erreichen kann?
bescheiden
0

Ich weiß, das ist alt, aber ich schaue mir etwas Ähnliches an. Eine Möglichkeit besteht darin, ebtables auf einer Bridge mit der Option -p ip6 zu verwenden. Ich habe es "voll" zum Laufen gebracht, aber es ist mir (noch) nicht gelungen, Ausnahmen für bestimmte Dinge durchzubringen.

Brian Chrisman
quelle