局域网ARP解决方案---ARP攻击解决方案

局域网ARP解决方案

目前有一种网络破坏行为很常见,主要发生在局域网中,这种破坏行为利用了ARP地址解析协议的工作过程,故障现象是:忽然整个内部网络的电脑全部不能上网了、或者一台一台掉线。发生故障以后,只需要将电脑重新启动或者交换机重新启动就可以恢复正常。这种破坏行为利用了ARP协议的工作过程,一般是内网某台电脑中了病毒,病毒无规律的自动进行破坏,或者是内网某台电脑的操作者故意发起攻击。

一 攻击原理分析



在局域网里每个节点都有自己的IP地址和MAC地址。如上图是一个局域网示意图,图中给出了三对IP地址和MAC地址的组合,如下表格:




IP 地址

MAC 地址


网关路由器

192.168.1.1

00-00-00-00-00-01


电脑A

192.168.1.20

00-00-00-00-00-20


电脑B

192.168.1.30

00-00-00-00-00-30



如果电脑A需要上网,电脑A就需要将数据包发送给局域网网关路由器,那么电脑A必须知道网关路由器的MAC地址,所以电脑A就会发出询问的广播包,询问网络里网关路由器的MAC地址是多少(如上图绿色线条)?

网关路由器收到电脑A的询问广播包后,获知并记录了电脑A的MAC地址,然后回复电脑A(蓝色线条所示),告知电脑A自己的MAC地址是多少?这样电脑A就获知了网关路由器的MAC地址,在相互获知并记录了对方的MAC地址这个基础上两者才开始正常收发数据包。

电脑A获知网关路由器的MAC地址后,将这样一个信息动态保存在自己的ARP地址表中,可以动态即时更新。另外单位时间内电脑A和网关路由器之间没有传输数据包的话,电脑A和网关路由器都会将保存的相应的ARP表条目删除掉。等到有需要的时候,再次通过上面询问的方式重新获取对方的MAC地址就可以了。

上面这样一个询问对方MAC地址,然后相互发送数据包的过程一直正常运转着。忽然,ARP攻击发生了,示意图如下:



如上图所示,局域网中某台电脑(IP地址为192.168.1.30)发起ARP攻击,它向局域网中发送了一个ARP广播包(红色线条所示),告诉所有的电脑:“现在进行广播,局域网的网关路由器MAC地址已经不是以前的00-00-00-00-00-01了,而是新的MAC地址00-00-00-00-00-30 ,请各位更新自己的ARP表。”

就这样所有的电脑都被欺骗了,将自己的ARP条目条中对应网关路由器的MAC地址更新为这个假网关的MAC地址,更新过以后,这些电脑凡是发往网关的数据包都不再发向00-00-00-00-00-01这个正确的MAC地址,而是发往了错误的MAC地址00-00-00-00-00-30(绿色线条所示),因为所有电脑都被欺骗并更新了自己的ARP条目。

根据上面的演示,所有本应发送到正确网关路由器MAC地址的数据包,都发往错误的假网关MAC地址了,而一般发往网关路由器的数据包都是去往互联网的,所以发生ARP攻击最常见的现象是:瞬间所有需要上网的电脑,都无法上网!这个时候无论是PING网关路由器的IP地址或是尝试登录网关路由器的管理界面,都是失败的,因为所有的数据包都发向了错误的00-00-00-00-00-30而不是真实的网关路由器的MAC地址。

上面我们简明扼要的分析了ARP攻击发生的过程,既然找到了病因,就可以对症下药了。从上面的分析可以得出,故障出现的原因:是因为每台电脑上记录真实网关路由器MAC地址的ARP表是动态的,是允许被动态更新的。如果在每台电脑上采用固定的ARP表条目,不允许动态更新,这样即使有恶意的ARP欺骗包在网络里面进行广播,因为每台电脑的ARP表中都采用静态绑定的方式,将真实网关的MAC地址固定了下来,这样就可以应对ARP攻击的发生。


二,ARP攻击判断

如何判断网络里面发生了ARP攻击呢?

登录路由器管理界面“运行状态”页面可以看到类似下图的信息:


在上面这幅图片中,可以看到网关路由器的IP地址和MAC地址分别是多少?图中显示网关路由器的MAC地址是00-0A-EB-B9-5C-CE ,那么正常上网的时候,在内网任意一台电脑的DOS界面运行 arp –a 这个命令,可以看到类似下图的信息:


可以看到,任意一台电脑arp –a 的回显信息中,都有一条对应网关路由器的IP地址和MAC地址的条目,可以看到其中的Physical Address就是前面在路由器“运行状态”页面看到的LAN口MAC地址00-0a-eb-b9-5c-ce ,当发生ARP攻击的时候,这个Physical Address就变为另一个MAC地址了,而不是00-0a-eb-b9-5c-ce 。

所以说,判断是否发生ARP攻击的办法就是:

正常情况下,登录网关路由器管理界面并记录网关面向局域网接口(LAN口)的MAC地址。发生异常情况的时候,在内网发生故障的电脑(/或任意一台电脑)上运行 arp –a 命令,在回显的信息中查看对应网关IP的MAC地址,还是不是之前记录的网关的MAC地址?如果不是,则说明局域网发生了ARP攻击。


三,基本配置步骤

在第一步“攻击原理分析”里我们从理论上简要描述了ARP攻击的发生过程。在第二步“ARP攻击判断”里又引入了实际的参数界面,如何察看参数?看到了正常情况的参数都应该是怎样的?

我们以第二步“ARP攻击判断”里面的参数为例,来说明基本的防护配置方法:

1 电脑端进行ARP条目绑定

下面以Microsoft Windows2000操作系统为例,来说明如何在电脑上绑定静态的ARP条目:(1)“开始”-“程序”-“附件”-“记事本”,打开“记事本”以后在里面输入命令,如下图所示:



在上图中输入的参数分为四部分,分别是:“arp”、“–s”、“网关IP地址”和“网关MAC地址”,这四个参数中间以“空格”隔离开。

可以看到“网关IP地址”和“网关MAC地址”这两个参数分别就是路由器的“LAN口IP地址”和“LAN口MAC地址”,那么对于内网所有电脑来说,它们的“网关IP地址”就是路由器的“LAN口IP地址”,“网关MAC地址”就是LAN口的MAC地址。输入完成后点击记事本菜单栏“文件”-“另存为(A)…”,

“文件名(N)”这一栏需要注意,这里举例取名为“protection.bat”。您可以随便取名为别的文件名 *.bat ,这里“ bat ”是文件名后缀,“ * ”可以输入任意数字或者字母或者两者的组合,但是不能取为“ arp ”或者“ ARP ”,否则会和系统参数冲突而不能生效。

填入了文件名以后,就可以点击“保存”按钮。

“开始”-“程序”-“启动”,对着“启动”单击鼠标右键,选择“打开”。

单击后可以将“启动”文件夹打开,然后将刚才建立的“protection.bat”文件复制进去。

复制完成后,重新启动电脑,上面那个protection.bat文件将会被操作系统自动执行一次,执行的结果就是电脑上记录网关路由器MAC地址的ARP条目成为静态的,不会动态改变,这样就确保了这台电脑不会因为受到ARP欺骗而动态修改自己的ARP表,导致上不了网。在这台电脑DOS界面运行arp –a 可以看到ARP表条目已经由以前的动态(Dynamic)变为静态(Static)。

上面的配置只是在一台电脑上进行了ARP绑定,实际上在局域网里,并不仅仅是电脑A和网关路由器之间有一个询问MAC地址的过程,而是任意两台电脑之间通讯之前,都有一个询问对方MAC地址的过程,所以实际上内网所有的电脑都需要进行上面第1步“电脑端进行ARP条目绑定”的操作。

2         网关路由器端进行ARP绑定

在上面第1步操作里,对所有电脑的ARP表进行了静态绑定,绑定后确保了电脑上面记录的网关路由器的地址信息正确不会改变,那么也就确保了电脑可以将数据包正常发送到路由器。

实际情况是,网关路由器也有一张ARP表格,用来记录内网某台主机的IP和MAC地址,如果网关路由器受到ARP欺骗,那么网关路由器将不能把数据包发送到正确的主机而是发送到了错误的假MAC地址去了。网关路由器为了防止受到ARP欺骗,也需要具备IP和MAC绑定的功能,也就是说在网关路由器上进行配置,将内网每台电脑的IP地址和MAC地址组合体现出来,绑定以后确保了网关路由器知道内网每台电脑正确的IP地址和MAC地址。

浏览器中输入路由器地址192.168.1.1进入到路由器管理界面,选择DHCP服务器——静态地址分配;将你电脑的MAC地址和IP地址填写进去,点击保存就把你电脑的信息保存在了路由器上。点击客户端列表,能看到你所绑定的客户端所对应的IP和MAC地址。

查询本机IP和MAC地址方法如下:CMD中输入 ipconfig /all


经过上面的方法操作,偶把路由器和电脑都进行了相互绑定,当机一个星期没有再发生过断网情况。说明网连着突然断网需要重新启动的问题是ARP造成,将其IP地址和MAC地址绑定能得到解决。

[本日志由 hwarker 于 2009-07-13 09:00 AM 编辑]

引用通告: 查看所有引用 | 我要引用此文章
Tags: 局域网ARP解决方案
收藏到网摘:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.