Port Guard
os-portguard · Защита
Блокирует устройство по его MAC-адресу на файрволе - первая часть правил второго уровня для портов файрвола.
В меню
- С установленным os-xgs-npu: XGS: Port Guard
- Без os-xgs-npu: Firewall: Port Guard

Заблокированные устройства - это список MAC-адресов, каждый из которых - полный адрес или его первые три-пять байт, то есть все устройства одного производителя. Плагин ведёт по списку один MAC-алиас, portguard_blocked; OPNsense преобразует его в адреса IPv4 и IPv6, которые его таблицы ARP и NDP или обнаружение хостов видели у каждого устройства, и поддерживает их актуальными.
Правила плагин регистрирует при каждой перезагрузке фильтра: ничто от устройства из списка не проходит через файрвол ни на одном интерфейсе, и ничто не доходит до него через файрвол. Они стоят до правил интерфейсов, включая правило anti-lockout, и никогда не добавляются в собственные правила владельца. Ничего не блокируется, пока устройство не внесено в список и не применено.
OPNsense не позволяет плагину регистрировать правила Ethernet, поэтому два устройства за одним коммутатором по-прежнему достигают друг друга - их кадры никогда не доходят до файрвола, - и сопоставить по типу кадра пока нельзя. На Sophos XGS цель - правила в коммутаторе передних портов, чтобы заблокированное устройство останавливалось на порту; они ещё не написаны.
Возможности
-
По адресу или по производителю
Полный MAC-адрес или его первые три-пять байт для всех устройств одного производителя.
-
Один MAC-алиас
portguard_blocked, который OPNsense преобразует в адреса IPv4 и IPv6, использованные каждым устройством, и поддерживает актуальными.
-
Правила раньше остальных
Регистрируются при каждой перезагрузке фильтра, на каждом интерфейсе, до правил интерфейсов и правила anti-lockout; никогда не записываются в правила владельца.
-
Увиденные устройства
Устройства, которые файрвол видел за последние сутки, с интерфейсом, адресом и производителем, каждое - в одном щелчке от блокировки; сначала страница предупреждает, что это может быть используемое сейчас устройство.
-
Сводные карточки
Сколько устройств из списка присутствует, сколько адресов pf блокирует сейчас, заблокированные пакеты и увиденные устройства.
Установка и обновление
Начиная с релиза os-xgs-npu, следующего за 0.1.0-alpha.7.1, XGS: Updates показывает его на вкладке Plugins — установленная копия обновляется там вручную, а отсутствующая там же устанавливается, — и готовые образы, собранные из этого релиза, содержат его; до тех пор он устанавливается и обновляется, как описано ниже. Ни одна запись cron не запускает обновление. Установить его на устройстве XGS или на любом другом OPNsense можно от root: из checkout репозитория командой sh install/install.sh, которая помещает страницу под XGS при os-xgs-npu и под Firewall без него и сохраняет настройки при повторном запуске; или из пакета релиза os-portguard-1.0.0.pkg, проверенного по SHA256SUMS и добавленного через pkg. Установленная так копия обновляется собственным self-update.py. Удаление плагина убирает его правила из pf; алиас portguard_blocked остаётся в Firewall: Aliases и ничего не блокирует. В репозитории плагинов OPNsense его нет.
Ограничения и то, что ещё не проверено
- Запись алиаса со страницы (apply.php, который сохраняет config.xml).
- Устройство, заблокированное через плагин.
- Ещё не написано: блокировка между двумя устройствами за одним коммутатором, сопоставление по типу кадра (EtherType) и правила в коммутаторе Sophos XGS.
- Устройство, меняющее свой MAC-адрес, например с частными адресами Wi-Fi, блокируется только под тем адресом, что внесён в список.
- Пакет, собранный tools/make-package.sh и добавленный через pkg.
- Установка на OPNsense без os-xgs-npu.
- Обновление через вкладку Plugins или self-update.py: 1.0.0 - первый релиз, поэтому ни один ещё не опережал установленную копию.
Репозиторий
Первый выпуск: 2026-10-25