Port Guard
os-portguard · 保護
ファイアウォールでデバイスを MAC アドレスによってブロックします。ファイアウォールのポート向けレイヤー 2 ルールの最初の部分です。
メニューの場所
- os-xgs-npu をインストールした場合: XGS: Port Guard
- os-xgs-npu がない場合: Firewall: Port Guard

ブロックするデバイスは MAC アドレスのリストで、それぞれ完全なアドレスか、先頭 3〜5 バイト(同じメーカーのすべてのデバイス)です。プラグインはリストから 1 つの MAC エイリアス portguard_blocked を維持し、OPNsense がそれを、ARP と NDP のテーブルまたはホスト検出で各デバイスが使っていると確認された IPv4 と IPv6 のアドレスに解決し、最新に保ちます。
ルールはフィルターの再読み込みのたびにプラグインが登録します。リストにあるデバイスからのものは、どのインターフェイスでもファイアウォールを通過せず、ファイアウォールを通ってそのデバイスに届くものもありません。ルールはインターフェイスのルール(アンチロックアウトルールを含む)より前に置かれ、所有者自身のルールには決して追加されません。デバイスをリストに入れて適用するまでは何もブロックされません。
OPNsense はプラグインに Ethernet ルールの登録を許していないため、同じスイッチの後ろにある 2 台のデバイスは今も互いに通信できます(そのフレームはファイアウォールに届かないからです)。フレームタイプでの照合もまだできません。Sophos XGS では、前面ポートのスイッチにルールを保持して、ブロックしたデバイスをポートで止めることを目指していますが、まだ書かれていません。
機能
-
アドレスでもメーカーでも
完全な MAC アドレス、または同じメーカーのすべてのデバイスを対象にする先頭 3〜5 バイト。
-
1 つの MAC エイリアス
portguard_blocked。OPNsense が各デバイスの使った IPv4 と IPv6 のアドレスに解決し、最新に保ちます。
-
ほかより先に効くルール
フィルターの再読み込みのたびに、すべてのインターフェイスで、インターフェイスのルールとアンチロックアウトルールより前に登録されます。所有者のルールには決して書き込まれません。
-
検出されたデバイス
ファイアウォールがこの 1 日に見たデバイスを、インターフェイス、アドレス、メーカーとともに一覧し、それぞれワンクリックでブロックできます。その前に、今使っているデバイスかもしれないとページが警告します。
-
概要カード
リストにあるデバイスのうち存在する台数、pf が今ブロックしているアドレス数、ブロックしたパケット数、検出されたデバイス数。
インストールと更新
0.1.0-alpha.7.1 の次の os-xgs-npu リリースからは、XGS: Updates の Plugins タブにこのプラグインが表示され、インストール済みのコピーはそこで手動で更新でき、未インストールの環境ではそこからインストールできます。そのリリースから作られる完成済みイメージにも含まれます。それまでは、以下のとおりインストールと更新を行います。更新を実行する cron エントリーはありません。XGS アプライアンスでもほかの OPNsense でも、インストールは root で行います。リポジトリのチェックアウトから sh install/install.sh を実行する方法(ページは os-xgs-npu があれば XGS の下、なければ Firewall の下に置かれ、再実行しても設定は保たれます)と、リリースのパッケージ os-portguard-1.0.0.pkg を SHA256SUMS で確認して pkg で追加する方法があります。この方法でインストールしたコピーは、自身の self-update.py で更新します。プラグインを削除するとそのルールは pf から外れ、エイリアス portguard_blocked は何もブロックしないまま Firewall: Aliases に残ります。OPNsense のプラグインリポジトリには含まれていません。
制限と、まだテストされていないこと
- ページからのエイリアスの書き込み(config.xml を保存する apply.php)。
- このプラグインによるデバイスのブロック。
- 未実装:同じスイッチの後ろにある 2 台のデバイス間のブロック、フレームタイプ(EtherType)による照合、Sophos XGS のスイッチに保持するルール。
- MAC アドレスを変えるデバイス(プライベート Wi-Fi アドレスなど)は、リストにあるアドレスでしかブロックされません。
- tools/make-package.sh でビルドし pkg で追加するパッケージ。
- os-xgs-npu のない OPNsense へのインストール。
- Plugins タブまたは self-update.py による更新。1.0.0 が最初のリリースなので、インストール済みのコピーより新しいリリースはまだありません。
リポジトリ
最初のリリース: 2026-10-25