linux下防御arp***的策略(转帖)

linux下防御arp***的策略
1./*找出ARP***的机器*/
获取同一网段下所有机器MAC地址的办法
        
机房有机器中毒,发arp包,通过arpspoof虽然可以解决,也可以找到中毒机器的mac地址,但在机房设备不足的情况下,很难查到mac地址对应的 IP。然后我们可以通过一个循环,使用arping来对整个子网下面的机器发一个包,这样就可以在arp下面查看到相应的mac缓存,进而得到对

应的IP地址。

1.#!/bin/sh  
2.   for ((i = 1; i < 254; i++))  
3.   do 
4.   arping -I eth0 60.191.82.$i -c 1 
5.   done  
6.   arp -a > mac_table</SPAN> 
   #!/bin/sh
   for ((i = 1; i < 254; i++))
   do
   arping -I eth0 60.191.82.$i -c 1
   done
   arp -a > mac_table

 
脚本 跑完后,查看当前目录生成的mac_table。
#arp -a 查找你中毒时网关的MAC地址,并记录下来在mac_table里寻找到相对应的机器,仍后就可以找出那台机器感染了ARP病毒。
2./*使用arpspoof抵御ARP****/
#提供方案原创者:yk103,在此表示感谢!
先安装libnet
http://www.packetfactory.net/libnet/dist/libnet.tar.gz
tar -xvzf libnet.tar.gz
cd libnet
./configure
make
make install

安装arpoison
http://www.arpoison.net/arpoison-0.6.tar.gz
tar -xvzf arpoison-0.6.tar.gz
cd arpoison
gcc arpoison.c /usr/lib/libnet.a -o arpoison
mv arpoison /usr/sbin

编写arpDefend.sh脚本.

1. #!bash  
2.   2. #arpDefend.sh  
3.   3. #yk103  
4.   4. #网关mac地址  
5.   5. GATEWAY_MAC=00:11:BB:A5:D2:40 
6.   6. #目的mac地址  
7.   7. DEST_MAC=ff:ff:ff:ff:ff:ff  
8.   8. #目的ip地址(网段广播地址)  
9.   9. DEST_IP=60.191.82.254 
10.  10.  
11. 
12.  11. #本地网卡接口  
13.  12. INTERFACE=eth0  
14.  13. #$INTERFACE的mac地址  
15.  14. MY_MAC=00:30:48:33:F0:BA  
16.  15. #$INTERFACE的ip地址  
17.  16. MY_IP=60.191.82.247 
18.  17.  
19. 
20.  18. #在本机建立静态ip/mac入口 $DEST_IP–$GATEWAY_MAC  
21.  19. arp -s $DEST_IP $GATEWAY_MAC  
22.  20.  
23. 
24.  21. #发送arp reply ,使$DEST_IP更新$MY_IP的mac地址为$MY_MAC  
25.  22. arpoison -i $INTERFACE -d $DEST_IP -s $MY_IP -t $DEST_MAC -r $MY_MAC 1>/dev/null &