从我们的 Linux 笔记本电脑和 VMware 客户端检测到 ARP 中毒

从我们的 Linux 笔记本电脑和 VMware 客户端检测到 ARP 中毒

我们的办公网络经常出现一个问题,防火墙会报告 ARP 中毒攻击。攻击源通常是我们的 Ubuntu 14.04 笔记本电脑,或在这些笔记本电脑上运行的 vmware 虚拟机。


编辑,更多信息:

我们在每台笔记本电脑上运行 ESET 防病毒软件和本地防火墙,这通常会触发 ARP 中毒警告。所有 Windows 笔记本电脑都处于域控制之下,而 Linux 计算机则不在。


有什么好的策略可以让这些机器重新排队并防止进一步的 ARP 攻击警告?

ARP 警告

答案1

如果这些设备有多个网络接口,并且这些接口的 IP 地址位于同一子网中,那么你的设备可能会遇到ARP 流量

当 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

使用以下命令加载新的配置文件sysctl -p /etc/sysctl.d/90-no-arp-flux.conf

相关内容