在局域网中,通信前必须通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,对网络的正常传输和安全都是一个很严峻的考验。
“又掉线了!!!”每当听到客户的抱怨声一片响起,网管员就坐立不安。其实,此起彼伏的瞬间掉线或大面积的断网大都是ARP欺骗在作怪。ARP欺骗攻击已经成了破坏网吧经营的罪魁祸首,是网吧老板和网管员的心腹大患。
目前知道的带有ARP欺骗功能的软件有“QQ第六感”、“网络执法官”、“P2P终结者”、“网吧传奇杀手”等,这些软件中,有些是人为手工操作来破坏网络的,有些是做为病毒或者木马出现,使用者可能根本不知道它的存在,所以更加扩大了ARP攻击的杀伤力。
从影响网络连接通畅的方式来看,ARP欺骗有两种攻击可能,一种是对路由器ARP表的欺骗;另一种是对内网电脑ARP表的欺骗,当然也可能两种攻击同时进行。不管理怎么样,欺骗发送后,电脑和路由器之间发送的数据可能就被送到错误的MAC地址上,从表面上来看,就是“上不了网”,“访问不了路由器”,“路由器死机了”,因为一重启路由器,ARP表会重建,如果ARP攻击不是一直存在,就会表现为网络正常,所以网吧业主会更加确定是路由器“死机”了,而不会想到其他原因。为此,宽带路由器背了不少“黑锅”,但实际上应该ARP协议本身的问题。好了,其他话就不多说,让我们来看看如何来防止ARP的欺骗吧。
上面也已经说了,欺骗形式有欺骗路由器ARP表和欺骗电脑ARP两种,我们的防护当然也是两个方面的,首先在路由器上进行设置,来防止路由器的ARP表被恶意的ARP数据包更改;其次,我们也会在电脑上进行一下设置,来防止电脑的ARP表受恶意更改。两个方面的设置都是必须的,不然,如果您只设置了路由器的防止ARP欺骗功能而没有设置电脑,电脑被欺骗后就不会把数据包发送到路由器上,而是发送到一个错误的地方,当然无法上网和访问路由器了。
一、设置前准备
当使用了防止ARP欺骗功能(IP和MAC绑定功能)后,最好是不要使用动态IP,因为电脑可能获取到和IP与MAC绑定条目不同的IP,这时候可能会无法上网,通过下面的步骤来避免这一情况发生吧。
1.把路由器的DHCP功能关闭:打开路由器管理界面,“DHCP服务器”->“DHCP服务”,把状态由默认的“启用”更改为“不启用”,保存并重启路由器。
2.给电脑手工指定IP地址、网关、DNS服务器地址,如果您不是很清楚当地的DNS地址,可以咨询您的网络服务商。
二、设置路由器防止ARP欺骗
目前这一功能只有在R480T的最新Beta版升级程序中有,公测正常后会在所有企业级路由器上增加这一功能。打开路由器的管理界面可以看到如下的左侧窗口:
可以看到比之前的版本多出了“IP与MAC绑定”的功能,这个功能除了可以实现IP和MAC绑定外,还可以实现防止ARP欺骗功能。
打开“静态ARP绑定设置”窗口如下:
注意,默认情况下ARP绑定功能是关闭,请选中启用后,点击保存来启用。
打开“ARP映射表”窗口如下:
这是路由器动态学习到的ARP表,可以看到状态这一栏显示为“未绑定”。如果确认这一个动态学习的表没有错误(如果网络是正常运行的,而且不同IP对应的MAC不一样,一般就没有错误)。我们把这一个表进行绑定,并且保存为静态表,这样路由器重启后这些条目都会存在,达到一劳永逸的效果。
点击“全部绑定”,可以看到下面界面:
可以看到状态中已经为已绑定,这时候,路由器已经具备了防止ARP欺骗的功能,上面的示范中只有三个条目,如果您的电脑多,操作过程也是类似的。有些条目如果没有添加,也可以下次补充上去。除了这种利用动态学习到的ARP表来导入外,也可以使用手工添加的方式,只要知道电脑的MAC地址,手工添加相应条目就可。
为了让下一次路由器重新启动后这些条目仍然存在,我们点击了“全部导入”,然后再次打开“静态ARP绑定设置”窗口:
可以看到静态条目已经添加,而且在绑定这一栏已经打上勾,表示启用相应条目的绑定。到此,我们已经成功设置路由器来防止192.168.1.111、192.168.1.112、222.77.77.1这三个IP受ARP欺骗的攻击,如果有更多的电脑,只是条目数不同,设置过程当然是一样的,不是很难吧?
三、设置电脑防止ARP欺骗
路由器已经设置了防止ARP欺骗功能,接下来我们就来设置电脑的防止ARP欺骗了。微软的操作系统中都带有ARP这一命令行程序,我们可以在windows的命令行界面来使用它。打开windows的命令行提示符如下:
通过“arp-s +路由器IP如192.168.1.1+路由器的MAC地址”这一条命令来实现对路由器的ARP条目的静态绑定,可以看到在arp -a 命令的输出中,已经有了我们刚才添加的条目,Type类型为static表示是静态添加的。至此,我们也已经设置了电脑的静态ARP条目,这样电脑发送到路由器的数据包就不会发送到错误的地方去了。
怎么知道路由器的MAC地址是多少呢?可以打开路由器的管理界面,进入“网络参数”->“LAN口设置”:
LAN口的MAC地址就是电脑的网关的MAC地址。
细心的人可能已经发现了,如果使用上面的方法,电脑每次在重启后都需要输入上面的命令来实现防止ARP欺骗,有没有更简单的方法自动来完成,不用手工输入呢?有!
我们可以新建一个批处理文件如static_arp.bat,注意后缀名为bat。编辑它,在里面加入我们刚才的命令:
保存就可以了,以后可以通过双击它来执行这条命令,还可以把它放置到系统的启动目录下来实现启动时自己执行。打开电脑“开始”->“程序”,双击“启动”打开启动的文件夹目录,把刚才建立的static_arp.bat复制到里面去:
好了,以后电脑每次启动时就会自己执行arp –s命令了,网吧网管和老板终于可以好好休息一下,不再受到ARP攻击的干扰。
[此帖子已被 superpch 在 2006-11-1 21:44:42 编辑过]