brctl 網橋將數據包轉發到混雜介面
我的 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