ARP攻击算得上局域网里最经典的威胁之一,尤其在宿舍网、企业办公网这种共享网络环境中,一旦有人中了ARP病毒或者恶意运行攻击工具,整个网段的用户都会出现掉线、网页被劫持、网速骤降等问题。很多初次遇到这种情况的人会误以为是运营商或者路由器坏了,折腾半天重装系统、换网线,结果问题依旧。其实要理解并防御ARP攻击并不难,关键是搞清楚它的原理,再配合正确的防护手段,基本可以做到药到病除。

一、ARP攻击到底是怎么发生的
ARP(Address Resolution Protocol,地址解析协议)负责在局域网内把IP地址翻译成MAC地址。当你的电脑要访问网关时,会先在局域网内广播一个ARP请求,询问某个IP对应的MAC地址是多少,拥有该IP的设备会回应自己的MAC,双方把这条映射关系缓存到本地的ARP表中,后续通信就直接查表进行。
问题就出在这个协议设计的年代太早,完全没有考虑安全验证。任何人都可以主动发送ARP应答,而接收方会无条件信任并更新自己的缓存。攻击者正是利用这一点,向局域网内不断发送伪造的ARP应答,把自己的MAC地址冒充成网关的MAC地址。受害者的流量于是全部发往攻击者的机器,攻击者既可以窃听数据,也可以篡改后转发,甚至直接丢弃造成断网。
典型的ARP攻击有两种形式:一种是单向欺骗,只欺骗主机端,让主机误认为攻击者就是网关;另一种是双向欺骗,同时欺骗主机和网关,在中间形成转发链路,这种方式的隐蔽性更强,受害者往往只感觉到网络变慢,根本意识不到流量已经被劫持。此外还有一种ARP泛洪攻击,通过发送大量伪造报文填满交换机的MAC地址表,让交换机退化为广播模式,进而嗅探全网流量。
二、如何判断网络中存在ARP攻击
ARP攻击的症状比较有辨识度。最常见的就是网络时通时断,PING网关时延迟忽高忽低甚至完全不通,但局域网内其他机器可以互相访问;其次是网页经常弹出异常广告或者被重定向到陌生页面,这往往是流量被劫持插入恶意脚本的迹象;再就是整个网段同时出现类似故障,而不是单一设备的问题。
确认是否遭受ARP欺骗,最直接的办法是检查ARP缓存表。在Windows下打开命令提示窗,执行arp -a命令,查看网关IP对应的MAC地址是否和真实的网关MAC一致。如果发现同一个网关IP对应了多个MAC地址,或者MAC地址频繁变化,基本可以断定存在欺骗行为。Mac地址可以在路由器管理界面或者设备背面标签上核对。
C:\Users\admin> arp -a 接口: 192.168.1.100 --- 0x5 Internet 地址 物理地址 类型 192.168.1.1 a4-2b-b0-5c-11-22 动态 192.168.1.1 00-0c-29-8d-44-af 动态 <-- 出现重复且异常的网关映射
另外一个实用技巧是利用抓包工具。安装Wireshark后过滤arp协议,观察是否存在大量未经请求的免费ARP应答(Gratuitous ARP)。正常网络中ARP应答只在有请求时出现,如果某台机器持续主动广播自己是网关,那它就是攻击源,记下它的MAC地址便于后续处理。
三、防护ARP攻击的实用方案
1. 主机端绑定静态ARP
最简单也最立竿见影的方法,是在本机把网关IP和真实MAC做静态绑定。绑定后系统不再接受针对该条目的动态更新,伪造的ARP应答自然失效。Windows下需要先用管理员权限执行绑定命令,注意新版系统要用netsh方式,传统的arp -s在某些环境下会失败。
netsh interface ipv4 add neighbors "以太网" 192.168.1.1 a4-2b-b0-5c-11-22 netsh interface ipv4 show neighbors "以太网"
Linux下的做法类似,执行arp -s 192.168.1.1 aa:bb:cc:dd:ee:ff即可,也可以把静态条目写入/etc/ethers文件配合arp -f开机加载。这种方案的缺点是主机数量多时逐台配置比较繁琐,而且网关更换后需要重新绑定,适合小规模环境或者应急处理。
2. 网关端开启ARP双向绑定
在企业网络中,更规范的做法是在路由器或三层交换机上把下面所有主机的IP和MAC也绑定起来,形成主机和网关的双向绑定。这样一来,攻击者既骗不了主机,也骗不了网关,双向欺骗的路径被彻底堵死。多数企业级路由器都提供IP-MAC绑定功能,可以在管理界面批量导入,也可以通过DHCP保留地址的方式自动维护映射关系。
3. 交换机启用DAI动态ARP检测
如果交换机支持,开启DAI(Dynamic ARP Inspection)是最专业的方案。DAI会检查进入端口的ARP报文,只有与DHCP Snooping绑定表中记录一致的合法报文才被放行,其余一律丢弃,从链路层面拦截欺骗行为。典型配置如下:
Switch(config)# ip dhcp snooping Switch(config)# ip dhcp snooping vlan 10 Switch(config)# interface gigabitethernet 0/1 Switch(config-if)# ip dhcp snooping trust ! 上联DHCP服务器的端口设为信任口 Switch(config)# ip arp inspection vlan 10 Switch(config-if)# ip arp inspection trust ! 信任口不检测ARP报文
需要注意的是,配置DHCP Snooping时一定要把连接DHCP服务器或上联链路的端口设为trust,否则全网主机将无法获取IP地址。对于使用静态IP的环境,还需要手工添加ARP访问控制列表来放行合法条目。
4. 部署防护软件与及时打补丁
主机侧可以安装具备ARP防火墙功能的安全软件,例如360局域网防护、彩影ARP防火墙等,它们通过主动发送正确的网关通告、拦截可疑ARP报文来保护本机。这类工具对个人用户比较友好,但属于被动防御,不能替代网络层面的治理。同时不要忽视根源排查:很多ARP攻击来自中了毒的内网机器,全网杀毒、修复系统漏洞、关闭不必要的远程管理端口,才能避免攻击反复发生。
四、常见问题与注意事项
问题一:绑定静态ARP后还是掉线怎么办?先确认绑定的网关MAC是否正确,可以登录路由器管理界面核对。其次检查是否有多层网络设备,比如光猫加路由器的环境,实际网关可能是光猫而不是路由器。另外部分网卡驱动和虚拟网卡会干扰静态绑定,必要时先禁用虚拟网卡再测试。
问题二:攻击源怎么定位?用Wireshark抓包找到发送伪造ARP的源MAC,再到交换机上执行display mac-address或show mac address-table,根据MAC地址反查所在端口,顺着线缆就能找到发起攻击的那台机器。如果是在无线网络中,还要考虑是否有人伪造了同名热点实施欺骗。
问题三:无线网络为什么也受影响?Wi-Fi本质上也是局域网,ARP协议同样在无线环境中工作,而且无线网络接入门槛更低,攻击者甚至不需要物理接入就能发起欺骗。因此家庭无线网络务必使用WPA2或更高强度的加密方式,隐藏SSID并定期修改密码,能显著降低被攻击的概率。
最后提醒几点:静态绑定要全网统一规划,避免只做一半导致排查困难;交换机配置DAI前先在测试环境验证,防止误杀正常报文造成业务中断;日常维护中建立IP-MAC资产清单,出现异常时能快速比对定位。ARP攻击虽然原理简单,但只要防护思路清晰、方案落地到位,完全可以把它挡在网络之外。