動作しない ebtables ルールについて混乱: ローカル LAN トラフィックのみを許可

動作しない ebtables ルールについて混乱: ローカル LAN トラフィックのみを許可

特定のMACがローカルLAN上のデバイスとのみ通信するように制限したいと思います。私の試みは次のとおりです("ebtables -t nat -L"コマンド出力)。

Bridge table: nat

Bridge chain: PREROUTING, entries: 0, policy: ACCEPT

Bridge chain: OUTPUT, entries: 0, policy: ACCEPT

Bridge chain: POSTROUTING, entries: 1, policy: ACCEPT
-d f0:de:f1:1e:e4:83 -j LOCAL

Bridge chain: LOCAL, entries: 1, policy: DROP
-p IPv4 --ip-src 192.168.6.0/24 -j OKAY

Bridge chain: OKAY, entries: 1, policy: ACCEPT
-j ACCEPT

これらのルールが適用されると、LinuxルーターはIPアドレス192.168.6.70を使用してf0:de:f1:1e:e4:83デバイスからアクセスできなくなります。 ICMP ping は他のすべてのサービスで停止します。

LOCAL というチェーンのポリシーを「ACCEPT」に変更すると、すべてのサービスが f0:de:f1:1e:e4:83 の操作に戻ります。これは、POSTROUTINGルールが実行中であり、LAN内のパケットのみを通過させるローカルルールを評価していることを示しています。

それでは、"-p IPv4 --ip-src 192.168.6.0/24 -j OKAY"192.168.6.70と192.168.6.254の間のICMP ping交換を許可しないのはなぜですか?

ベストアンサー1

イーサネット(ebtablesによって制御される)は、IPV4に加えて多くのプロトコルをサポートしていることがわかりました。決定的に、ARPパケットは上記のLOCALチェーンのデフォルトポリシーによって破棄されます。

修正は、POSTROUTING から IPv4 パケットを LOCAL チェーンにのみ送信し、POSTROUTING でデフォルトの ACCEPT を許可して、ブリッジを介して ARP イーサネット フレームを許可することです。

Bridge chain: POSTROUTING, entries: 1, policy: ACCEPT
-p IPv4 -d f0:de:f1:1e:e4:83 -j LOCAL

おすすめ記事