Linux主机如何防范ARP攻击?

Linux主机如何防范ARP攻击?,第1张

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

这样对付那些终结者软件就可以了,但是真的有人 向攻击的话,这样还是不够的,因为攻击者还可以欺骗网关,解决的办法就是在网关和 局域网内机器上做双向绑定,原理方法同上,一般网吧里面也是这样做的。

方法一:

首先安装arptables:

sudo apt-get install arptables

然后定义规则:

sudo arptables -A INPUT --src-mac ! 网关物理地址 -j DROP

sudo arptables -A INPUT -s ! 网关IP -j DROP

sudo arptables -A OUTPUT --destination-mac ff:ff:ff:ff:ff:ff -j ACCEPT

不过这样就有一点不好,局域网内的资源不能用!

sudo arptables -F

当然我们可以做个脚本,每次开机的时候自动运行!~sudo gedit /etc/init.d/arptables,内容如下:

#! /bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

arptables -A INPUT --src-mac ! 网关物理地址 -j DROP

arptables -A INPUT -s ! 网关IP -j DROP

arptables -A OUTPUT --destination-mac ff:ff:ff:ff:ff:ff -j ACCEPT

然后给arptables加个execution的属性,

sudo chmod 755 /etc/init.d/arptables

再把arptables设置自动运行,

sudo update-rc.d arptables start 99 S .

用sysv-rc-conf直接设置

方法二:

1、先使用arp和 arp -a查看一下当前ARP缓存列表

[root@ftpsvr ~]# arp

Address HWtype HWaddress Flags MaskIface

192.168.1.234ether 00:04:61:AE:11:2B C eth0

192.168.1.145ether 00:13:20:E9:11:04 C eth0

192.168.1.1 ether 00:02:B3:38:08:62 C eth0

说明:

Address:主机的IP地址

Hwtype:主机的硬件类型

Hwaddress:主机的硬件地址

Flags Mask:记录标志,”C”表示arp高速缓存中的条目,”M”表示静态的arp条目。

[root@ftpsvr ~]# arp -a

? (192.168.1.234) at 00:04:61:AE:11:2B [ether] on eth0

? (192.168.1.1) at 00:16:76:22:23:86 [ether] on eth0

2、新建一个静态的mac–>ip对应表文件:ip-mac,将要绑定的IP和MAC 地下写入此文件,格式为 ip mac。

[root@ftpsvr ~]# echo ‘192.168.1.1 00:02:B3:38:08:62 ‘ >/etc/ip-mac

[root@ftpsvr ~]# more /etc/ip-mac

192.168.1.1 00:02:B3:38:08:62

3、设置开机自动绑定

[root@ftpsvr ~]# echo ‘arp -f /etc/ip-mac ‘ >>/etc/rc.d/rc.local

4、手动执行一下绑定

[root@ftpsvr ~]# arp -f /etc/ip-mac

5、确认绑定是否成功

[root@ftpsvr ~]# arp

Address HWtype HWaddress Flags MaskIface

192.168.0.205ether 00:02:B3:A7:85:48 C eth0

192.168.1.234ether 00:04:61:AE:11:2B C eth0

192.168.1.1 ether 00:02:B3:38:08:62 CMeth0

[root@ftpsvr ~]# arp -a

? (192.168.0.205) at 00:02:B3:A7:85:48 [ether] on eth0

? (192.168.1.234) at 00:04:61:AE:11:2B [ether] on eth0

? (192.168.1.1) at 00:02:B3:38:08:62 [ether] PERM on eth0

从绑定前后的ARP缓存列表中,可以看到网关(192.168.1.1)的记录标志已经改变,说明绑定成功。

Ubuntu中文论坛的“BigSnake.NET“结合arpalert写了一个脚本来做arp防火墙,我感觉效果不错。(具体请看“参考资料”。)

我这里再稍加概括:

1)安装arpalert和Perl的ARP模块(在Ubuntu中叫libnet-arp-perl软件包)

2)按照参考资料中的说明得到arpdef.pl文件。

3)按照参考资料中的说明修改arpalert.conf。

注:一定要看原文,我这里仅是简单概括。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7375689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存