Arp-Poisoning

從我們的 linux 筆記型電腦和 vmware 客戶端檢測到 ARP 中毒

  • August 25, 2016

我們的辦公網路經常出現問題,防火牆報告 ARP 中毒攻擊。攻擊的來源通常是我們的 Ubuntu 14.04 筆記型電腦,或在這些筆記型電腦上執行的 vmware 虛擬機。


編輯,更多資訊:

我們在每台筆記型電腦上執行 ESET 防病毒軟體和本地防火牆,這通常會觸發 ARP 中毒警告。所有 Windows 筆記型電腦都受域控制,而 linux 機器則不受域控制。


什麼是讓這些機器再次上線並防止進一步的 ARP 攻擊警告的好策略?

ARP 警告

如果這些設備有多個網路介面,它們的 IP 地址位於同一子網中,那麼您可能正在遭受ARP Flux的影響:

當一個 linux 機器連接到具有多個網卡的網段時,可能會出現鏈路層地址到 IP 地址映射的潛在問題。機器可以響應來自兩個乙太網介面的 ARP 請求。

在創建 ARP 請求的機器上,這些多個答案可能會導致混亂,或者更糟糕的是,ARP 記憶體的不確定性填充。稱為 ARP 通量

$$ 13 $$,這可能會導致 IP 不確定地通過多個鏈路層地址遷移的令人費解的效果。 重要的是要了解 ARP 通量通常只影響與同一媒體或廣播域具有多個物理連接的主機。

如果您的系統檢測到 IP > MAC 地址映射何時發生變化,則宣布同一 IP 地址的兩個不同 MAC 地址的設備可能會導致該系統觸發。

作為測試,您可以修改介面上的arp_ignore sysctl 變數,看看是否會停止警告。將該變數的值設置為 1(預設為 0)將確保只有持有 ARP 請求的目標 IP 地址的介面才會響應。

要臨時修改該值,請為每個介面設置變數。例如:

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/default/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
...
echo 1 > /proc/sys/net/ipv4/conf/eth6/arp_ignore

上述更改將在重新啟動時恢復,因此如果它解決了您的問題,您可以通過添加新的 sysctl conf 文件使更改持久化:

user@host: ~$ cat /etc/sysctl.d/90-no-arp-flux.conf 
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.eth0.arp_ignore=1
net.ipv4.conf.eth1.arp_ignore=1

載入新的conf文件sysctl -p /etc/sysctl.d/90-no-arp-flux.conf

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