MAC によるトラフィックのフィルタリング - nftables

MAC によるトラフィックのフィルタリング - nftables

要約:: 私はラズベリーパイでネットワークタップを構築していますが、ステルス橋があります(br0)とスイッチインターフェース(eth0) とワークステーション (eth1)。

これが私が構築している方法です(あらゆる提案を歓迎します):

# Create a bridge with the name br0
ip link add "$BRIDGE_INT" type bridge 
# Add the eth0 interface to the bridge
ip link set "$WORKSTATION_INT" master "$BRIDGE_INT" 
# Add the eth1 interface to the bridge
ip link set "$SWITCH_INT" master "$BRIDGE_INT" 

このプロセスが完了したら、ネットワークケーブルを接続すると、eth0複数のプロトコルで MAC が漏洩しています。

私がテストしたもの:

nft add table inet filter
nft add chain inet filter output { type filter hook output priority 0 \; }
nft add rule inet filter output ether saddr "$SWITCH_MAC" drop

それでも、eth0 DHCP -> ARP -> MDNS でリークが発生します。

そこで、DHCP 静的アドレスを設定することにしました。何度か試した結果、適切な設定が見つかりました (あらゆる提案を歓迎します):

/etc/network/interfaces
auto eth0
    iface eth0 inet manual
    address 192.168.0.10
    netmask 255.255.255.0
    gateway 192.168.0.254

/etc/dhcpcd.conf
interface eth0
    static ip_address=192.168.0.10/24
    static routers=192.168.0.1
    static domain_name_servers=192.168.0.1 8.8.8.8

この構成では、ネットワークに対して DHCP のクエリは実行されません。ただし、ARP -> MDNS は依然としてリークしています。

このプロジェクトは適応性を重視しているため、SWITCH_MAC を持つものをすべて削除するのが最善の解決策だと思います。ただし、これではトラフィックの流出が止まりません。

私が気づいたのは、私のルールでは、意図的に送信した SWITCH_MAC を含むパケットは正しくドロップされているが、OS によって発行されたものはドロップされていないということです。

結論 テスト トラフィックがドロップされているにもかかわらず、OS は不要なトラフィックを漏らしています。私の問題はこれと似ているのではないかと思います:nftables を使用した MAC アドレスによるトラフィックのフィルタリング 非常によく説明されていますが、解決策はまだ見つかっていません。

関連情報