Port Security mit Open vSwitch
Was ist Port Security?
Port Security ist eine Sicherheitsfunktion auf Layer 2, die festlegt welche MAC-Adressen an einem Switch-Port kommunizieren dürfen. Meldet sich ein unbekanntes Gerät an einem geschützten Port, wird der Traffic einfach verworfen.
Auf einem Cisco-Switch heißt das Feature switchport port-security. Mit Open vSwitch erreichen wir dasselbe über OpenFlow-Regeln.
Funktionsweise
OpenFlow erlaubt es, den Switch-Traffic anhand von Regeln zu steuern. Jede Regel definiert:
- eine Bedingung — z. B. eingehender Port + MAC-Adresse
- eine Aktion — z. B. weiterleiten (normal) oder verwerfen (drop)
Die Regeln werden der Reihe nach geprüft. Die erste passende Regel gewinnt.
Port Security konfigurieren
Im folgenden Beispiel wird eth2 abgesichert. Nur die MAC-Adresse 08:00:27:86:79:13 darf kommunizieren, alles andere wird verworfen.
Erlaubte MAC-Adresse eintragen:
ovs-ofctl add-flow sw0 "in_port=eth2,dl_src=08:00:27:86:79:13,actions=normal"
Alle anderen MACs auf eth2 verwerfen:
ovs-ofctl add-flow sw0 "in_port=eth2,actions=drop"
Kontrolle
Aktive OpenFlow-Regeln anzeigen:
ovs-ofctl dump-flows sw0
Port Security entfernen
Alle Regeln für eth2 löschen:
ovs-ofctl del-flows sw0 "in_port=eth2"
Hinweis
OpenFlow-Regeln sind nicht persistent — nach einem Reboot sind sie weg. Für eine dauerhafte Konfiguration müssen die Befehle beim Start automatisch ausgeführt werden, z. B. per Systemd-Service oder Skript.
Fix
- post-up in /etc/network/interfaces
auto eth2
iface eth2 inet manual
post-up ovs-ofctl add-flow sw0 "in_port=eth2,dl_src=08:00:27:86:79:13,actions=normal"
post-up ovs-ofctl add-flow sw0 "in_port=eth2,actions=drop"