arp缓存就是IP地址和MAC地址关系缓存列表。在Windows下 arp -d [$ip] 不指定IP地址时清除所有arp缓存。在Linux下 arp -d $ip 必须指定IP地址才能执行这条命令的此参数,所有在Linux系统下 arp -d $ip 命令只能清除一个IP地址的对应MAC地址缓存,当然可以使用组合命令 *** 作,这也算是Linux的一个优点吧。
组合命令清除所有arp缓存:arp -n|awk '/^[1-9]/{system("arp -d "$1)}'其实Linux也有内部命令清除所有arp缓存,但是不太好记忆,用的人很少。以下命令清除eth0接口的所有arp缓存。ip neigh flush dev eth0
arp欺骗的原理不多述,基本就是利用发 送假的arp数据包,冒充网关。一般在网上通讯的时候网关的IP和MAC的绑定是放在arp 缓存里面的,假的arp包就会刷新这个缓存,导致本该发送到网关的数据包发到了欺骗 者那里。解决的办法就是静态arp。假设网关的IP是192.168.0.1,我们要 先得到网关的正确MAC,先ping一下网关:
ping 192.168.0.1
然后运行arp查看arp缓存中的网关MAC:
localhost~$ arp
Address HWtype HWaddressFlags MaskInterface
192.168.0.1 ether 00:12:34:56:78:9AC eth0
、这里得到的网关MAC假定 为00:12:34:56:78:9A,C代表这个绑定是保存在缓冲里的,我们要做的就是把这个IP和 MAC静态的绑定在一起,首先建立/etc/ethers文件,输入以下内容:
192.168.0.1 00:12:34:56:78:9A
保存退出,之后便是应 用这个静态绑定:
localhost~$ arp -f
再运行arp查看:
localhost~$ arp
Address HWtype HWaddressFlags MaskInterface
192.168.0.1 ether 00:12:34:56:78:9ACMeth0
多了个M,表示静态网关 ~
另外,如果你不会和局域网内的用户通讯的话,那么可以干脆 把arp解析关掉,假定你的网卡是eth0,那么可以运行:
localhost~$ ifconfig eth0 -arp
这样对付那些终结者软件就可以了,但是真的有人 向攻击的话,这样还是不够的,因为攻击者还可以欺骗网关,解决的办法就是在网关和 局域网内机器上做双向绑定,原理方法同上,一般网吧里面也是这样做的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)