在局域网中,通信前必须通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,对网络的正常传输和安全都是一个很严峻的考验。
目前知道的带有ARP欺骗功能的软件有“QQ第六感”、“网络执法官”、“P2P终结者”、“网吧传奇杀手”等,这些软件中,有些是人为手工操作来破坏网络的,有些是作为病毒或者木马出现,使用者可能根本不知道它的存在,所以更加扩大了ARP攻击的杀伤力。
从影响网络连接通畅的方式来看,ARP欺骗有两种攻击可能,一种是对路由器ARP表的欺骗;另一种是对内网电脑ARP表的欺骗,当然也可能两种攻击同时进行。不管怎么样,欺骗发送后,电脑和路由器之间发送的数据可能就被送到错误的MAC地址上,从表面上来看,就是“上不了网”,“访问不了路由器”,“路由器死机了”,因为一重启路由器,ARP表会重建,如果ARP攻击不是一直存在,就会表现为网络正常,所以网吧业主会更加确定是路由器“死机”了,而不会想到其他原因。为此,宽带路由器背了不少“黑锅”,但实际上应该ARP协议本身的问题。我们来看看如何来防止ARP欺骗。
上面也已经说了,欺骗形式有欺骗路由器ARP表和欺骗电脑ARP两种,我们的防护当然也是两个方面的,首先在路由器上进行设置,来防止路由器的ARP表被恶意的ARP数据包更改;其次,我们也会在电脑上进行一下设置,来防止电脑的ARP表受恶意更改。两个方面的设置都是必须的,不然,如果您只设置了路由器的防止ARP欺骗功能而没有设置电脑,电脑被欺骗后就不会把数据包发送到路由器上,而是发送到一个错误的地方,当然无法上网和访问路由器了。
我司路由器上主要的IP与MAC地址绑定的方式有两种,普通绑定与强制绑定。SOHO级路由器上主要进行的是普通绑定,企业级的路由器上有普通绑定,也有强制绑定。
普通绑定是在路由器上记录了局域网内计算机MAC地址对应的IP地址,建立了一个对应关系,不会受到ARP欺骗,导致无法正常通讯。对于没有进行IP与MAC地址绑定的计算机就可能受到ARP攻击。SOHO级路由器普通绑定只是设置了一个IP与MAC的对应关系,若计算机更改了其IP地址,路由器仍然能进行ARP映射表自动学习,扫描到计算机新的对应关系,该计算机仍能与路由器进行通讯;而企业级路由器在普通绑定之后IP和MAC地址就是一一对应的关系了,若计算机更改了其IP地址,路由器会认为其IP地址错误,从而不能与路由器进行通信。
强制绑定:是指关闭路由器的学习IP与MAC地址能力,手动在路由器中添加计算机IP与MAC地址。所以在设置了强制绑定后,新接入路由器的计算机,若没有添加IP与MAC地址对应关系,该计算机是不能与路由器进行通讯的。或者路由器下的计算机更改了其IP地址,导致与路由器上记录的IP与MAC对应关系不一致,也无法进行通讯。
下面就以TL-4299G为例对企业级级路由器上的普通绑定和强制绑定的设置,进行详细地介绍,以及如何设置来防止ARP欺骗。
一、设置前准备
当使用了防止ARP欺骗功能(IP和MAC绑定功能)后,最好是不要使用动态IP,因为电脑可能获取到和IP与MAC绑定条目不同的IP,这时候可能会无法上网,通过下面的步骤来避免这一情况发生吧。
1)把路由器的DHCP功能关闭:打开路由器管理界面,“DHCP服务器”->“DHCP服务”,把状态由默认的“启用”更改为“不启用”,保存并重启路由器。
2)给电脑手工指定IP地址、网关、DNS服务器地址,如果您不是很清楚当地的DNS地址,可以咨询您的网络服务商。
二、设置路由器防止ARP欺骗
打开路由器的管理界面,在左侧的菜单中可以看到:
“IP与MAC绑定”的功能,这个功能除了可以实现IP和MAC绑定外,还可以实现防止ARP欺骗功能。
打开“静态ARP绑定设置”窗口如下:
注意,默认情况下ARP绑定功能是关闭,请选中启用后,点击保存来启用。
在添加IP与MAC地址绑定的时候,可以手工进行条目的添加,也可以通过“ARP映射表”查看IP与MAC地址的对应关系,通过导入后,进行绑定。
1、手工进行添加,单击“增加单个条目”。
填入电脑的MAC地址与对应的IP地址,然后保存,就实现了IP与MAC地址绑定。
2、通过“ARP映射表”,导入条目,进行绑定。
打开“ARP映射表”窗口如下:
这是路由器动态学习到的ARP表,可以看到状态这一栏显示为“未绑定”。如果确认这一个动态学习的表没有错误,也就是说当时不存在arp欺骗的情况下,把条目导入,并且保存为静态表,这样路由器重启后这些条目都会存在,实现绑定的效果。
若存在许多计算机,可以点击“全部导入”,自动导入所有计算机的IP与MAC信息。
导入成功以后,即已完成IP与MAC绑定的设置。如下:
可以看到状态中已经为已绑定,这时候,路由器已经具备了防止ARP欺骗的功能,上面的示范中只有一个条目,如果您的电脑多,操作过程也是类似的。有些条目如果没有添加,也可以下次补充上去。除了这种利用动态学习到的ARP表来导入外,也可以使用手工添加的方式,只要知道电脑的MAC地址,手工添加相应条目就可。
在“ARP映射表”中可以看到,此计算机的IP地址与MAC地址已经绑定,在路由器重启以后,该条目仍然生效
三、设置电脑防止ARP欺骗
路由器已经设置了防止ARP欺骗功能,接下来我们就来设置电脑的防止ARP欺骗了。微软的操作系统中都带有ARP这一命令行程序,我们可以在windows的命令行界面来进行配置。
Windows XP系统的设置方法:
点击“开始”,选择“运行”,输入“cmd”,打开windows的命令行提示符如下:
通过“arp –s 路由器IP+路由器MAC”这一条命令来实现对路由器的ARP条目的静态绑定,如:arp –s 192.168.1.1 00-0a-eb-d5-60-80;可以看到在arp -a 命令的输出中,已经有了我们刚才添加的条目,Type类型为static表示是静态添加的。至此,我们也已经设置了电脑的静态ARP条目,这样电脑发送到路由器的数据包就不会发送到错误的地方去了。
怎么知道路由器的MAC地址是多少呢?可以打开路由器的管理界面,进入“网络参数”->“LAN口设置”:
LAN口的MAC地址就是电脑的网关的MAC地址。
细心的人可能已经发现了,如果使用上面的方法,电脑每次在重启后都需要输入上面的命令来实现防止ARP欺骗,有没有更简单的方法自动来完成,不用手工输入呢?有!
我们可以新建一个批处理文件如static_arp.bat,注意后缀名为bat。编辑它,在里面加入我们刚才的命令:
保存就可以了,以后可以通过双击它来执行这条命令,还可以把它放置到系统的启动目录下来实现启动时自己执行。打开电脑“开始”->“程序”,双击“启动”打开启动的文件夹目录,把刚才建立的static_arp.bat复制到里面去:
好了,以后电脑每次启动时就会自己执行arp –s命令了,在以后使用网络的时候,不再受到ARP攻击的干扰。
Windows Vista和Windows 7系统的设置方法:
1、管理员身份运行命令提示符。
2、命令:netsh -c i i show in 查看网络连接准确名称。如:本地连接、无线网络连接。
3、执行绑定:netsh -c i i add neighbors “网络连接名称” “IP地址” “MAC地址”。
4、绑定完成,电脑重启静态ARP不失效,不用像XP一样建批处理文件。
如图所示: