在银河麒麟系统中防ARP欺骗需固化网关IP与真实MAC为永久静态条目,可通过ip neigh replace命令临时设置、/etc/arp-tables+if-up.d脚本实现开机自动加载,或systemd服务方式部署;务必核对MAC来源并验证PERMANENT状态及内核ARP参数。

在银河麒麟操作系统中防止局域网ARP欺骗攻击,关键是要将网关IP地址与真实MAC地址在本地固化为不可更新的静态条目,避免被伪造ARP响应覆盖导致断网或流量劫持。该操作必须在未受攻击时完成,且需确认网关MAC真实有效,否则会直接中断网络通信。
用ip neigh命令添加临时永久ARP条目
这一步适用于快速验证或应急防护,操作后立即生效,但系统重启、网络服务重载(如systemctl restart networking)会清空所有条目。
以root权限打开终端。
执行命令:ip neigh replace 192.168.1.1 lladdr 00:11:22:33:44:55 dev eth0 nud permanent,其中192.168.1.1是你的实际网关IP,00:11:22:33:44:55是其真实MAC地址,eth0需替换为本机实际出接口名(可用ip -br a查看)。
【务必核对MAC地址来源】:该MAC必须来自路由器管理界面“LAN设置→DHCP客户端列表”或“ARP表”页面,不能仅凭arp -a输出——若已受攻击,该命令返回的可能是伪造MAC。
执行ip neigh show 192.168.1.1确认输出中含PERMANENT字样且dev字段与指定接口一致。
通过/etc/arp-tables + if-up.d脚本实现开机自动加载
此方法确保每次开机联网后自动重建静态绑定,消除重启窗口期风险,适合长期部署。
第一步:创建ARP初始化文件:sudo nano /etc/arp-tables。
第二步:在文件中写入一行,格式为“IP地址 MAC地址 接口名”,例如:192.168.1.1 00:e0:fc:12:34:56 eth0。注意MAC地址用冒号分隔,接口名必须与本机实际网卡名完全一致。
第三步:创建网络就绪后执行的脚本:sudo nano /etc/network/if-up.d/arp-static。
第四步:在脚本中填入以下内容(无需修改,可直接复制):
#!/bin/sh<br>if [ "$IFACE" = "lo" ]; then exit 0; fi<br>while read ip mac iface; do<br> [ -n "$ip" ] && ip neigh replace $ip lladdr $mac dev $iface nud permanent 2>/dev/null<br>done < /etc/arp-tables
第五步:赋予脚本可执行权限:sudo chmod +x /etc/network/if-up.d/arp-static。
使用systemd服务方式启动静态ARP绑定
该方式具备启动依赖控制和失败日志追踪能力,适合生产环境,尤其当网络接口名称不固定(如使用Predictable Network Interface Names)时更可靠。
方法一:创建服务文件:sudo nano /etc/systemd/system/static-arp.service。
方法二:填入以下内容(请按实际替换IP、MAC、接口):
[Unit]<br>Description=Static ARP Binding Service<br>After=network-online.target<br>Wants=network-online.target<br><br>[Service]<br>Type=oneshot<br>ExecStart=/usr/bin/bash -c 'ip neigh replace 192.168.1.1 lladdr 00:e0:fc:12:34:56 dev eth0 nud permanent'<br>RemainAfterExit=yes<br><br>[Install]<br>WantedBy=multi-user.target
方法三:重载配置并启用服务:sudo systemctl daemon-reload && sudo systemctl enable --now static-arp.service。
执行sudo systemctl status static-arp.service确认状态为active (exited)。
验证绑定是否真正抗干扰
别只看ip neigh show显示PERMANENT就认为万事大吉——攻击者可能绕过绑定机制。
运行arping -c 2 -I eth0 192.168.1.1(替换eth0为实际接口),观察返回的MAC是否与你绑定的一致;若返回其他MAC,说明绑定未生效或被内核参数抑制。
检查内核ARP防护是否开启:sysctl net.ipv4.conf.all.arp_ignore应为1,net.ipv4.conf.all.arp_announce应为2,否则静态绑定易被动态ARP响应覆盖。
手动触发一次ARP请求后,再执行ip neigh show 192.168.1.1,确认nud字段仍为PERMANENT,且无FAILED或STALE状态。

















