分享

【原创】如何使用华为(H3C)3600、3900交换机阻止ARP病毒。

 tcwl123 2011-07-29
ARP病毒会在LAN中宣告自己是网关,具体做法找到局域网网关的IP,然后发送ARP广播,宣称网关IP对应的MAC地址是自己的网卡MAC地址。局域网中其他计算机在收到这个广播后,会更新自己的ARP缓存列表,以后的其他计算机原本发往网关的数据包将会发送到中了ARP病毒的计算机。该中毒计算机将会分析这些数据包,从中获取如邮箱账号密码、QQ登录账号密码等敏感信息,并且因中毒计算机要分析这些信息,可能来不及将数据包全部转发到真正的网关去(或许根本就不转发),从而造成其他计算机上网缓慢(甚至中断)。

解决这个问题的方法是阻止中了ARP病毒的计算机发送宣称自己是网关的ARP广播,这样就不能对局域网中的其他计算机造成危害了。

只有智能的交换机才有这样的功能,下面是在H3C的S3900和S3600系列的交换机上实现的例子(本人测试通过):

环境描述:局域网IP地址范围:192.168.2.0/24,网关是192.168.2.254
交换机:H3C S3952,端口48上接的是网关,

定义自定义的ACL:

acl number 5000
rule 0 deny 0806 ffff 16 c0a802fe ffffffff 32

解释:
rule 0 :规则序号为0,当规则下发到硬件中执行时,序号不起作用;

deny :禁止;

0806 ffff :IP数据包中的协议号,0806表示ARP广播。其中ffff是掩码,“0806 ffff”的意思是只有目标区域等于0806才算是匹配,如果掩码是fff0,则目标区域是0805、0806、0807等都可以匹配;

16 :协议号0806在数据包中的偏移地址。此偏移量根据不同的交换机型号、不同的交换板型号、不同的配置(VLAN,VPN等)的配置有所不同。根据网上的资料,可能的值会有:16、20、24、40,并且肯定是偶数。

c0a802fe ffffffff:前者“c0a802fe”是网关的IP地址“192.168.2.254”的十六进制表达方式(192=0xc0,168=0xa0,02=0x02,254=0xfe),后者是掩码,ffffffff表示每一位都要比较,必须全部相等才是匹配;

32 :IP地址在数据包中的偏移量,和协议号的偏移量一样,要根据不同的交换机型、交换板型号、配置等来确定,可能的值有32(协议号偏移量16时)、36(协议号偏移量20)、40(协议号偏移量24)、56(协议号偏移量40)。

下发到端口中(除了48号端口外):

[H3C_3952]int e1/0/40
[H3C_3952-Ethernet1/0/40]packet-filter inbound user-group 5000

规则下发后,接在此端口上的计算机发送的ARP广播包中,如果其源地址是192.168.2.254时,则此数据包就会被丢弃。

当不知道自己的交换机上ARP协议号的偏移量时,可以用此以下方法进行测试。

1.找到位于同一交换机下的两台计算机A、B,在正常情况下A可以Ping通B。
2.当利用上述规则禁止B计算机发送宣称自己MAC地址的正常ARP广播后,在A计算机上仍可Ping通B计算机(此时A计算机中仍有B计算机的MAC地址缓存)。
3.当在A计算机上执行ARP -d的命令后(或者等2分钟后A计算机上的B计算机MAC地址缓存过期),A计算机上不能Ping通B。
4.当A计算机仍可Ping通B计算机时,重新定义规则,修改偏移量,重新下发规则,直到不能Ping通为止。


2009-04-13

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多