Port Security mit Open vSwitch

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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 port4 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=port4,dl_src=08:00:27:86:79:13,actions=normal"

Alle anderen MACs auf port4 verwerfen:

ovs-ofctl add-flow sw0 "in_port=port4,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=port4"

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.

Persistente Konfiguration

post-up in /etc/network/interfaces
auto port4
iface port4 inet manual
    post-up ovs-ofctl add-flow sw0 "in_port=port4,dl_src=08:00:27:86:79:13,actions=normal"
    post-up ovs-ofctl add-flow sw0 "in_port=port4,actions=drop"