arp欺骗

arp欺骗

/sbin/arping -q -A -c 1 -I eth0 202.104.19.40 1>/dev/null 2>&1
/sbin/arping -q -A -c 1 -I eth0 219.136.248.120 1>/dev/null 2>&1

代码如下,把这段代码保存在某个目录下,比如/sbin下,文件名可以为sendarp,保存完了chmod 755 sendarp ,给它可执行权限,然后就可以执行了。 LAN="eth0 eth1" 里的eth0、eth1是子网的网卡号,请根据自己情况改下。<!-- more --> 代码:

#!/bin/sh
LAN="eth0 eth1"
while :
do
      for i in $LAN
      do
      IP=`/sbin/ip addr show $i|awk '/inet /{split($2,x,"/");print x[1]}'`
      if [ ! -z $IP ]
      then
      /sbin/arping -A -c 1 -I $i $IP
      fi
      done
      sleep 1
done

这个shell脚本是用来每秒广播一次内网网卡的正确MAC地址(sleep 1 就是间隔1秒),用来对抗子网里的ARP欺骗,可以有效抑制内网客户机上ARP类破坏程序发作对整个局域网络的影响。 这个脚本是个循环,执行过后就一直循环下去,如果要退出就按CTRL+C。 如果想让它开机就自动运行,可以在/etc/rc.d/rc.local里加一句: /sbin/sendarp 如果不想让它显示消息,就把/sbin/arping -A -c 1 -I $i $IP 一行改成: /sbin/arping -A -c 1 -I $i $IP >/dev/null 如果想不重新启动服务器直接运行它,可以执行: nohup /sbin/sendarp & 注: 这里本机ip为192.168.15.249 在本机执行 /sbin/arping -A -c 1 -I eth0 192.168.15.249 命令实际在广播如下数据包 17:50:17.154171 arp reply 192.168.15.249 is-at 0:c:29:6b:57:d8    ( -A : ARP answer mode)

如果arping命令后面接的ip不是本机真实ip则会出现bind:Cannot assign requested address错误

参考:1.