静态ARP表项,对抗假路由器和ARP中毒

静态ARP表项,对抗假路由器和ARP中毒

我目前正在研究arp欺骗攻击(mitm)。最常见的 Linux 发行版似乎默认会受到此类攻击。然而,一个简单的解决方案似乎是将网关 arp 条目设置为静态。

有没有办法使用 NetworkManager (dispatcher.d) 自动设置静态网关 arp 条目(或相同效果)?或者sysctl.conf中有一个参数可以设置避免arp中毒?或者也许有另一种方法来实现这一目标?

答案1

从概念上讲是的,固定一些 MAC 地址是一种可能的解决方案(根据上面 @daniel 的回答),但它有很多缺点:

  • 虽然您可以添加静态 ARP 条目,但攻击者仍然可以欺骗网关和您的 MAC,并且两个系统都会解析攻击者的帧;
  • 如果您的系统通过 DHCP 获取其 L3 配置,攻击者可以对其进行攻击,以确保您使用不同的网关,在这种情况下,固定真实网关的 MAC 不会产生任何影响;
  • 您将很难维护静态条目列表,因为所有系统都需要手动配置;

答案2

我建议您首先使用以下方法进行测试:

arp -s router_hostname router_ethernet_addr

其中router_ethernet_addr是路由器的 MAC 地址(以太网或 802.11)。要检查您的特定 Linux 发行版,请阅读:

man arp

如果可以的话,我建议拒绝任何动态添加到您的arp表中:

sysctl 'arp_accept=0'
sysctl 'drop_gratuitous_arp=1'

要检查此语法,请阅读:

man sysctl
man sysctl.conf

然后测试在您的网络中制作一个假路由器回复,并检查其以太网(或 802.11)地址是否被接受。

相关内容