最近经常接到用户电话抱怨,上网时断时续,反映有时系统还会提示连接受限、根本就无法获得IP,网关交换机无法ping通,而指示灯状态正常。重启交换机后客户机可以上网,但很快又涛声依旧!严重影响了企业网络正常使用,还有可能造成经济损失。
根据用户描述的情形和我们多次处理的经验,可以肯定是ARP攻击(ARP欺骗)所致。知道了问题所在,但如何解决呢?
虽然可以采用在交换机绑定MAC地址和端口、在客户机绑定网关IP和MAC地址的“双绑”办法预防,但由于网管的工作量太大,且不能保证所有的用户都在自己的电脑上绑定网关IP和MAC地址,所以我们采取以下措施来预防和查找ARP攻击。
这里推荐用户在自己的电脑上安装第三方工具软件:ColorSoft开发的ARP防火墙(原名Anti ARP Sniffer)。该软件最大的特点是在系统内核层拦截虚假ARP数据包,并且主动通告网关本机正确的MAC地址,这样可以保障安装该软件的电脑正常上网,并且拦截外部对本机的ARP攻击。
如果发现内部ARP攻击,直接处理本机就行了;如果发现外部ARP攻击,则根据实际情况通过攻击者的IP地址和/或MAC地址查找该攻击者电脑。下面就以实例介绍一下该软件的详细使用方法:
1、在同一网段的电脑上下载ARP防火墙、安装、运行。第一天,一切正常,没发现攻击行为。第二天,开机不到半小时就发现了ARP攻击,如图1
498)this.style.width=498;"> |
图1 ARP防火墙发现外部ARP攻击 |
2、为了不冤枉好人,进一步确认攻击者的MAC地址。进入核心交换机,查看该网段的MAC地址表。我们的核心交换机是华为的,键入命令“Display arp vlan xx”(xx为所要查找ARP攻击网段的VLAN号),回车。显示如图2所示结果。
498)this.style.width=498;" border=0> |
图2 核心交换机上显示的MAC地址表 |
为了方便查看,我们将该数据拷贝到Word中并按MAC地址排序。在Word中,选中该数据,从“表格”菜单中选择“排序”菜单项,弹出“排序文字”窗口,“主要关键字”选“域 3”即MAC地址,如图3
498)this.style.width=498;" border=0> |
图3 排序MAC地址表 |
排序后很容易就可以看到有四个IP地址对应于同一个MAC地址(如表1)!我们知道MAC地址是全球唯一的,这与ARP防火墙检测到的结果相吻合,现在MAC地址0011-5b2d-5c03所对应的电脑肯定有问题了。这些IP中应该只有xxx. xxx. xx.92是真实的,其余的都是伪造的。由于我们的电脑一直在监测,该攻击者电脑刚对外攻击,就被检测到了,所以它伪造的IP地址还不多,我曾经发现过伪造了近10个IP地址的情形,而该网段总共有二十多台电脑。
表1 伪造的IP地址
xxx. xxx. xx.178 | 0011-5b9d-7246 |
xxx. xxx. xx.188 | 0011-5b9d-7246 |
xxx. xxx. xx.197 | 0011-5b9d-7246 |
xxx. xxx. xx.92 | 0011-5b9d-7246 |
3、查找ARP攻击者
如果是静态IP,找出IP地址登记表,很容易就可找到发送ARP攻击的电脑。由于我们用的是动态IP,又没有每台电脑的MAC地址,所以虽然知道了攻击者的IP地址和MAC地址,但是万里长征还只迈出了第一步。
我们的DHCP服务器是基于Microsoft Windows 2003的,打开DHCP管理器,从地址租约里查看IP地址xxx. xxx. xx.92对应的计算机名,是随机的,没什么意义。
登录到有所要查找网段VLAN的各接入层交换机上,逐一查看该交换机上的MAC地址表。我们用的是安奈特的交换机,在Web界面下按VLAN查询MAC地址表,看是否有MAC地址为0011-5b9d-7246的记录。一直查到第15台交换机,才终于找到罪魁祸首,结果如图4,可以看出该MAC地址对应于交换机的第16口。别的厂家的可网管交换机也都有查看MAC地址的功能。
498)this.style.width=498;" border=0> |
图4 接入层交换机上的MAC地址表 |
4、剩下工作的就简单了,先将该交换机的第16口Disable,然后查找用户上网登记信息,通知该用户处理自己的电脑。
最后,推荐几点防范ARP攻击的措施:
1、在交换机上划分VLAN,这样即使网络中存在ARP攻击,也仅影响该VLAN的用户,缩小受影响范围和查找范围。
2、要求用户安装ARP防火墙。既可防止来自外部的ARP攻击,也可防止本机向外发送ARP攻击。一旦发现攻击及时与网管联系。
(截至本文完稿,ARP防火墙的最新版本是v4.3.1,下载地址为http://www.antiarp.com/download.htm。)