目录

 

用iptables进行IP和mac地址绑定

ARP中毒案例


用iptables进行IP和mac地址绑定

Linux服务器承担整个校园网访问因特网的网关,在Linux环境中,有一个非常灵活的IP过滤工具是iptables,这个工具在使用的时候可以设置多个条件同时满足才允许通过IP数据,利用这个功能就可以实现地址绑定功能。设计理念是只有IP地址和MAC地址同时满足条件时才允许数据转发,命令如下:

iptables -P FORWARD DROP
iptables -A FORWARD -s 192.168.6.200 -m mac --mac-source 00:11:5B:EF:7A:D8 -j ACCEPT
iptables -A FORWARD -s 192.168.6.201 -m mac --mac-source 50:78:4C:4A:46:C0 -j ACCEPT
iptables -A FORWARD -s 192.168.6.202 -m mac --mac-source 00:10:5C:E4:A8:50 -j ACCEPT
    上面第一行是转发策略,意思是没有指定的转发链是禁止转发任何数据的。第二行表示只有满足IP地址是192.168.6.200同时MAC地址为00:11:5B:EF:7A:D8才允许转发,类似的第三、四行分别绑定的是192.168.6.201和192.168.6.202。每台机器对应这样一行,就可以实现所有机器IP地址与MAC地址的绑定。解除绑定状态只要把上面命令行中的-A替换为-D就可以删除本转发链,同时还要把转发策略改为ACCEPT。以上的命令需要配合POSTROUTING链才可以实现上网功能。

 

ARP中毒案例

用户咨询:
    内网有电脑中了ARP病毒,但是网络拓扑比较复杂、电脑数量较多,排查起来很困难。有什么方法可以找出ARP攻击源?

排查方法:
    1.使用Sniffer抓包。在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送请求包,那么这台电脑一般就是病毒源。
    原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内的所有主机。最终的结果是,在网关的ARP缓存表中,网内所有活动主机的MAC地址均为中毒主机的MAC地址;网内所有主机的ARP缓存表中,网关的MAC地址也成为中毒主机的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。
 
    2. 使用arp -a命令。任意选两台不能上网的主机,在DOS命令窗口下运行arp -a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包含了192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。
    原理:一般情况下,网内的主机只和网关通信。正常情况下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机的MAC地址,说明本地主机和这台主机最后有过数据通信发生。如果某台主机(例如上面的192.168.0.186)既不是网关也不是服务器,但和网内的其他主机都有通信活动,且此时又是ARP病毒发作时期,那么,病毒源也就是它了。
 
    3. 使用tracert命令。在任意一台受影响的主机上,在DOS命令窗口下运行如下命令:tracert 61.135.179.148。 假定设置的缺省网关为10.8.6.1,在跟踪一个外网地址时,第一跳却是10.8.6.186,那么,10.8.6.186就是病毒源。
    原理:中毒主机在受影响主机和网关之间,扮演了“中间人”的角色。所有本应该到达网关的数据包,由于错误的MAC地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起了缺省网关的作用。
 
总结:
    使用以上方法找出ARP攻击源后,先将中病毒的电脑杀毒,然后可以使用ARP双向绑定可以有效预防ARP攻击。
    方法:在路由器上扫描绑定所有电脑的IP、MAC地址(REOS和REOS SE设备都可实现):
ReOS的设备可以直接在“网络安全→IP/MAC绑定”里导出“ARP绑定脚本文件”放到内网每个电脑的启动项里。
ReOS-SE设备可以在电脑上使用记事本编辑一个BAT文件,内容是“arp.exe -d 2>nul&arp.exe –s 网关IP 网关MAC”同样放到电脑启动项里。

Logo

更多推荐