Port Guard
os-portguard · Schutz
Sperrt ein Gerät an der Firewall anhand seiner MAC-Adresse - der erste Teil von Layer-2-Regeln für die Ports der Firewall.
Im Menü
- Mit installiertem os-xgs-npu: XGS: Port Guard
- Ohne os-xgs-npu: Firewall: Port Guard

Gesperrte Geräte sind eine Liste von MAC-Adressen, jede eine ganze Adresse oder ihre ersten drei bis fünf Bytes - alle Geräte eines Herstellers. Das Plugin führt aus der Liste einen MAC-Alias, portguard_blocked; OPNsense löst ihn in die IPv4- und IPv6-Adressen auf, die seine ARP- und NDP-Tabellen oder seine Host-Erkennung jedes Gerät haben nutzen sehen, und hält sie aktuell.
Die Regeln registriert das Plugin bei jedem Neuladen des Filters: Nichts von einem gelisteten Gerät passiert die Firewall, auf keinem Interface, und nichts erreicht es durch die Firewall. Sie kommen vor den Interface-Regeln, die Anti-Lockout-Regel eingeschlossen, und werden nie zu den eigenen Regeln des Besitzers hinzugefügt. Gesperrt wird nichts, bis ein Gerät gelistet und angewendet ist.
OPNsense lässt ein Plugin keine Ethernet-Regeln registrieren, daher erreichen sich zwei Geräte hinter demselben Switch weiterhin - ihre Frames kommen nie zur Firewall -, und ein Frame-Typ lässt sich noch nicht abgleichen. Auf einer Sophos XGS sind Regeln im Switch der Front-Ports, damit ein gesperrtes Gerät schon am Port gestoppt wird, das Ziel; sie sind noch nicht geschrieben.
Funktionen
-
Nach Adresse oder Hersteller
Eine ganze MAC-Adresse oder ihre ersten drei bis fünf Bytes für alle Geräte eines Herstellers.
-
Ein MAC-Alias
portguard_blocked, den OPNsense in die IPv4- und IPv6-Adressen auflöst, die jedes Gerät genutzt hat, und aktuell hält.
-
Regeln vor allen anderen
Bei jedem Neuladen des Filters registriert, auf jedem Interface, vor den Interface-Regeln und der Anti-Lockout-Regel; nie in die Regeln des Besitzers geschrieben.
-
Gesehene Geräte
Die Geräte, die die Firewall am letzten Tag gesehen hat, mit Interface, Adresse und Hersteller, jedes einen Klick vom Sperren entfernt; die Seite warnt zuerst, dass es das gerade genutzte Gerät sein kann.
-
Übersichtskarten
Wie viele gelistete Geräte anwesend sind, wie viele Adressen pf gerade sperrt, die gesperrten Pakete und die gesehenen Geräte.
Installieren und aktualisieren
Ab dem Release von os-xgs-npu nach 0.1.0-alpha.7.1 steht es in XGS: Updates im Reiter Plugins – eine installierte Kopie wird dort von Hand aktualisiert, eine fehlende dort installiert –, und die fertigen Images aus diesem Release enthalten es; bis dahin wird es wie unten beschrieben installiert und aktualisiert. Kein Cron-Eintrag führt das Update aus. Installiert wird es auf einer XGS-Appliance und auf jedem anderen OPNsense als root: aus einem Checkout des Repositorys mit sh install/install.sh, das die Seite mit os-xgs-npu unter XGS und ohne es unter Firewall einordnet und bei erneutem Lauf die Einstellungen behält; oder aus dem Paket des Releases, os-portguard-1.0.0.pkg, geprüft gegen SHA256SUMS und mit pkg hinzugefügt. Eine so installierte Kopie wird über ihr eigenes self-update.py aktualisiert. Das Entfernen des Plugins nimmt seine Regeln aus pf; der Alias portguard_blocked bleibt in Firewall: Aliases und sperrt nichts. Es ist nicht im Plugin-Repository von OPNsense.
Grenzen, und was noch nicht getestet ist
- Das Schreiben des Alias von der Seite aus (apply.php, das config.xml speichert).
- Ein darüber gesperrtes Gerät.
- Noch nicht geschrieben: das Sperren zwischen zwei Geräten hinter demselben Switch, ein Abgleich nach Frame-Typ (EtherType) und Regeln im Switch einer Sophos XGS.
- Ein Gerät, das seine MAC-Adresse wechselt, etwa mit privaten WLAN-Adressen, ist nur unter der gelisteten gesperrt.
- Das Paket, gebaut von tools/make-package.sh und mit pkg hinzugefügt.
- Eine Installation auf OPNsense ohne os-xgs-npu.
- Ein Update über den Reiter Plugins oder self-update.py: 1.0.0 ist das erste Release, also war noch keines einer installierten Kopie voraus.
Repository
Erste Veröffentlichung: 2026-10-25