直接进入主题,在底层禁止arp通信是解决arp欺骗的根本方法。为了不使设备对某个地址进尽arp广播查询,需要将ip->mac这个对应 关系的记录以“静态”的属性写进“arp table”里。在Windows/Linux系统里,可以使用以下命令进行静态arp table记录的添加:
arp -s 网关ip地址 网关mac地址
应该有不少系统管理员已经知道通过绑定静太MAC地址,可以防止arp欺骗,但是这种绑定必须是双方的,需要进行二层通信的双方都进行mac绑定, 一般为:在服务器上绑定网关的ip->mac为静态,在网关上绑定服务器的ip->mac为静态。通过绑定网关地址的mac为静态,只可以保 证从服务器到网关(路由器)之间不会被欺骗、被插入,从网关(路由器)到服务器仍然是可以被插入或者被欺骗的,要做到in和out两路都受到保护,就需要 在网关上同样地绑定服务器的mac地址为静态(这个对于大多数服务器的ISP来说,可能都不愿意做——因为合同上并没有要求要做这些,多一事不如少一事, 更有管理员认为做这些配置会增加路由器的负载——貌似没有什么根据)。
现在的问题是,第一,如何让ISP给我们的服务器ip地址的mac绑定成静态,貌似有点难度,在管理不是很严格的机房,跟管理人员搞好关系应该就可 以做到。或者直接找业务部门,要求他们提供这样的服务。第二,对于Windows系统,每次重启系统都要手动绑定一次,真的很不方便。有人把这些操作写成 批处理加到autorun.bat里,但是似乎起不了作用。加到“开始/程序/启动”里,貌似也不行,这些都是需要管理员登录进系统才能运行的,况且将 arp登录写入批处理,不知道为什么总是返回不了。我的做法是,把这个绑定操作设置成计划任务,设备成开机运行。计划任务是做为后台服务在运行的,所以用 户不登录系统,这个操作依然可以完成。这个操作已经经过测试,可以正常运行:大致上,任务的命令行为:C:\windows\system32 \arp.exe -s 网关ip地址 网关mac