huaisu 2010-06-09
在我们使用局域网的时候很容易受到ARP协议欺骗攻击。那么如何有效防止这个问题的发生呢?本文就将为大家阐述一下这方面的原理。那么,其实防止攻击的方法有很多。本文根据笔者的经验为大家介绍如何来防止ARP欺骗,文章所说的这些方法对网吧或普通局域网都是适用的。企业可以通过发布网络管理制度来禁止ARP欺骗问题的发生,发现有欺骗者和奖金等效益挂钩。但是网吧不同于企业,来使用计算机和网络的都是顾客,也就是“上帝",我们不可能对他们的行为做过多的约束,所以唯一能做的就是从技术上尽最大可能约束和检查ARP欺骗的来源。
一,sniffer检测法:
sniffer是网络管理的好工具,网络中传输的所有数据包都可以通过sniffer来检测。同样ARP协议欺骗攻击数据包也逃不出sniffer的监测范围。
一般来说ARP欺骗数据包没有留下发送虚假信息的主机地址,但是承载这个ARP包的ethernet帧却包含了他的源地址。而且正常情况下ethernet数据帧中,帧头里的MAC源地址/目标地址应该和帧数据包中ARP信息配对,这样的ARP包才算是正确的。如果不正确,肯定是假冒的包,当然如果匹配的话,我们也不能过于放松,一样不能代表是正确的,另外通过检测到的数据包再结合网关这里拥有的本网段所有MAC地址网卡数据库,看看哪个和Mac数据库中数据不匹配,这样就可以找到假冒的ARP数据包,并进一步找到凶手了。
关于MAC地址网卡数据库可以在第一次装系统的时候进行记录,将网吧座位号与MAC地址等信息做一个对应表格。查看MAC地址的方法是通过“开始->运行",进入命令提示窗口,然后输入ipconfig /all。在physical address的右边就是相应网卡的MAC地址。
二,DHCP结合静态捆绑法:
要想彻底避免ARP协议欺骗攻击的发生,我们需要让各个计算机的MAC地址与IP地址唯一且相对应。虽然我们可以通过为每台计算机设置IP地址的方法来管理网络,但是遇到那些通过ARP欺骗非法攻击的用户来说,他可以事先自己手动更改IP地址,这样检查起来就更加复杂了,所以说保证每台计算机的MAC地址与IP地址唯一是避免ARP欺骗现象发生的前提。
(1)建立DHCP服务器保证MAC地址与IP地址唯一性:
首先我们可以在windows 2000 server或其他服务器版操作系统上启用DHCP服务,为网吧建立一个DHCP服务器,一般来说建议在网关上搭建。因为DHCP不占用多少CPU,而且ARP协议欺骗攻击一般总是先攻击网关,攻击网关的同时由于网关这里有监控程序,所以可以在第一时间发现攻击行为。当然为了减少攻击的发生机率我们也可以把网关地址设置为网段的第二个地址,例如192.168.1.2,把192.168.1.另外所有客户机的IP地址及其相关主机信息,只能由网关这里取得,网关这里开通DHCP服务,但是要给每个网卡,绑定固定唯一IP地址。一定要保持网内的机器IP/MAC一一对应的关系。这样客户机虽然是DHCP取地址,但每次开机的IP地址都是一样的。以上这些绑定关系可以通过DHCP的地址池来解决,或者将客户端获得IP等网络参数信息的租约设置为一个非常长的时间,例如一年或者无限时间,这样在此时间段里只要MAC地址不变,客户端获得的IP地址也是不变的。
(2)建立MAC地址数据库:
把网吧内所有网卡的MAC地址记录下来,每个MAC和IP、地理位置统统装入数据库,以便及时查询备案。可以以EXCEL表格的形式,也可是保存成数据库文件。
(3)禁止ARP动态更新:
为了防止网关被随意攻击,我们还需要在网关机器上关闭ARP动态刷新功能,这样的话,即使非法用户使用ARP协议欺骗攻击网关的话,对网关是无效的,从而确保主机安全。在网关上建立静态IP/MAC捆绑的方法如下。
第一步:建立/etc/ethers文件,其中包含正确的IP/MAC对应关系,格式为192.168.2.32 08:00:4E:B0:24:47。
第二步:然后在/etc/rc.d/rc.local最后添加arp -f生效即可。
上面这个禁止ARP动态更新的方法是针对Linux系统而言的。
(4)网关监测:
在网关上面使用TCPDUMP程序截取每个ARP程序包,弄一个脚本分析软件分析这些ARP协议。ARP欺骗攻击的包一般有以下两个特点,满足之一就可以视为攻击包报警,第一是以太网数据包头的源地址、目标地址和ARP数据包的协议地址不匹配。第二是ARP数据包的发送和目标地址不在自己网络网卡MAC数据库内,或者与自己网络MAC数据库MAC/IP不匹配。我们也可以通过脚本分析软件实现自动报警功能,最后查这些数据包(以太网数据包)的源地址就大致知道那台机器在发起攻击了。