如何防止ARP欺骗

如何防止ARP欺骗和中间人攻击? 我需要一个简单的解决方案。在网络中,我们有几台工作站、交换机和路由器。
1个回答

防止ARP欺骗的方法是在设备上创建一个静态ARP表,每次操作系统加载时都会将其加载到RAM中,并且每当设备需要向局域网上的某个设备发送帧时,无需发送ARP请求就可访问该表。
对于不在本地局域网内的IP地址,每个数据包都将通过默认网关发送。如果您不使用本地DNS、邮件服务器等,我们不需要在ARP表中添加太多永久条目。
您可以使用命令添加静态ARP条目。
sudo arp -i eth0 -s 192.168.1.1 00:e0:1e:b4:12:42

但是这将在重新启动后消失。为了永久保存,我们需要创建一个包含IP地址到MAC地址映射的文件。
 sudo nano /etc/network/if-up.d/static-arp

我们添加了网关的MAC地址和IP地址。将“eth0”替换为您当前的接口名称,将IP字段替换为您的网关的IP和MAC地址。
 #!/bin/sh
 arp -i eth0 -s 192.168.1.1 00:e0:1e:b4:12:42

保存并退出
更改权限
 sudo chmod 755 /etc/network/if-up.d/static-arp 

重启后,映射将显示如下:
 host1@mydomain:~$ arp -va

 host1.mydomain (192.168.1.1) at XX:XX:XX:XX:XX:XX [ether] PERM on eth0
 Entries: 1 Skipped: 0  Found: 1

请注意ARP表中的PERM条目。

有没有办法在一个小的sh或bash脚本中编写这个脚本,以便您可以根据加入的网络和使用的接口来切换ARP表项以反映正确的网络拓扑和接口?也许有一些自动检测您所在网络和连接到该网络的接口的脚本吗?编辑:抱歉,我没有注意到另一个线程中已经有一个满足需求的应用程序。 - SimbaClaws
静态ARP是否可以在不重新启动计算机的情况下进行更改? - acgbox