Bridge

brctl 網橋將數據包轉發到混雜介面

  • February 27, 2014

我的 linux 機器上有兩個混雜的嗅探介面:

eth0 連接到外部 vlan 網橋

eth1 連接到內部 vlan 網橋

使用 eth0 我可以嗅探我的“外部網路”上的所有流量 使用 eth1 我可以嗅探我的“內部網路”上的所有流量

然後,我使用 brctl (br0) 創建了一個網橋,並將兩個介面都添加到了這個網橋中。

現在我可以直接從 br0 嗅探出現在 eth1 和 eth2 上的所有數據包,從而不必啟動兩個 snort 實例。

我的問題是現在出現在 eth0 上的 arp 和多播數據包被複製到 br0 並轉發到 eth1。

有沒有辦法讓這兩個介面都將所有數據包複製到 br0 但不允許 br0 轉發任何數據包,也不允許 eth0 或 eth1 響應它們?

根據它的設計,Linux 網橋的行為與普通的 NWay 乙太網交換機完全一樣。它擁有自己的 ARP/MAC 地址表,並根據該表轉發數據包。因此,組播和 ARP 就像在普通網路交換機中一樣,會發送到每個埠,而不管它們的來源是什麼。

為了防止這種行為,您應該設置防火牆,而不是使用iptables,它負責 OSI 模型中的第 3 層+,但ebtables負責第 2 層流量。

假設您使用的是基於 Debian/Debian 的發行版,您可以執行:

apt-get install ebtables

apt-get install arptables

如需其他文件,請執行:

man 8 ebtables

下面是一個使用ebtables多播的簡短範例:

ebtables -A FORWARD -o eth0 --pkttype-type multicast -j DROP
ebtables -A OUTPUT -o eth0 --pkttype-type multicast -j DROP
ebtables -A FORWARD -o eth1 --pkttype-type multicast -j DROP
ebtables -A OUTPUT -o eth1 --pkttype-type multicast -j DROP

作為 learnig 的一個很好的起點ebtables,它實際上複製iptables了語法,這裡是官方文件:http ://ebtables.sourceforge.net/documentation/docs.html

引用自:https://serverfault.com/questions/578695