直接敲个sudo arp -s就能绑定IP和MAC,这事儿谁都会。但问题在于,这操作只管当前这一次,机器一重启,绑定就没了。真要防住ARP欺骗,得让这个绑定在重启后依然坚挺,并且还得配合内核层面的防护和验证机制,才算把漏洞堵严实了。

linux系统如何配置静态arp绑定 防止局域网arp欺骗攻击【教程】

用 arp -s 添加静态ARP条目

这是最基础的一步,命令格式固定:sudo arp -s 。比如,你想把网关192.168.1.1和它的真实MAC地址00:1a:2b:3c:4d:5e锁死,就这么敲:

sudo arp -s 192.168.1.1 00:1a:2b:3c:4d:5e

命令执行后立刻生效,但有几个关键点得注意:

让静态ARP绑定开机自动加载

靠手动执行命令肯定不行,必须得让绑定持久化,开机自动加载。这里推荐两种主流方法:

方法一:写入/etc/ethers文件 + arp -f加载

创建一个/etc/ethers文件,里面每行写一个 对,例如:

192.168.1.1 00:1a:2b:3c:4d:5e

然后运行sudo arp -f就能加载文件里的所有绑定。不过要注意,arp -f不指定设备,它会尝试在所有接口上加载绑定。如果同一个IP地址在多个子网里都存在,可能会绑定到错误的网卡上。

方法二:使用systemd服务启动脚本(更可靠)

这个方法更稳妥。先创建一个脚本,比如/usr/local/bin/configure-static-arp.sh,里面用arp -s或者更推荐的ip neigh add命令,并且明确指定dev参数。然后,再配置一个对应的static-arp.service服务单元,确保它在network-online.target之后运行。这样做的好处是能完美避开网络还没就绪时就执行绑定命令导致失败的问题。

验证绑定是否真正生效且抗干扰

别光看到arp -n里显示PERM就以为万事大吉了。在实际的攻击场景下,你得确认三件事:

  1. 运行ip neigh show,检查对应的条目是否包含PERMANENT字样,并且dev字段显示的网卡(比如eth0)和你预期的完全一致。
  2. 主动触发一次ARP请求:执行arping -c 2 -I eth0 192.168.1.1,看看返回的MAC地址是不是和你绑定的那个一致。如果返回了别的MAC,说明绑定可能被绕过了,或者根本没生效。
  3. 有条件的话,可以做一次模拟欺骗测试:用另一台机器发送伪造的ARP响应(例如使用arpspoof工具),然后再查一下arp -n | grep 192.168.1.1——在绑定和防护都生效的情况下,显示的MAC地址应该纹丝不动。

必须同步开启的内核级防护

光靠静态绑定,只能算“堵”了一个漏洞。如果不开内核防护,攻击者仍然可能通过其他路径污染你的ARP邻居表。下面这几个内核参数,几乎是必选项:

敲黑板了:这些设置必须写入/etc/sysctl.conf配置文件,然后执行sudo sysctl -p使其生效并持久化,否则重启后就会失效。如果只做了arp -s绑定,却忽略了这三项内核防护,那就好比把大门锁好了,却留着窗户大敞四开,攻击者照样能登堂入室。

本文转载于:https://www.php.cn/faq/2358414.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。