在linux上用arptables配置arp防火墙
操作方法
- 01
局域网里有一台电脑不知道是中了ARP病毒还是用P2P终结者一类的软件 每5秒钟就会对我的主机进行一次ARP攻击。。 弄得我上网奇卡无比。 在WINDOWS下用个金山ARP防火墙就搞定了。 但是在linux下还是有点麻烦 。研究了一个晚上 终于弄好了。原作者写的已经非常详细了。 我加了点注释。为了方便和我一样的小白。。。 红色字体为要在终端上运行的命令。蓝色字体为 终端上的显示结果。绿色字体为我加的注释。 高手飘过。最后特别感谢原作者!!! 原文出自http://ask.phpfans.net/?do=show&id=164893 1. 安装arptablesarptables的下载页面是:http://sourceforge.net/projects/ebtables/files/0.0.3.3版本的下载链接:http://downloads.sourceforge.net/project/ebtables/arptables/arptables-v0.0.3/arptables-v0.0.3-3.tar.gz 下载以后安装:tar zxvf arptables-v0.0.3-3.tar.gzcd arptables-v0.0.3-3/makemake install 生成的命令是/usr/local/sbin/arptables、/usr/local/sbin/arptables-save、/usr /local /sbin/arptables-restore,系统启动脚本/etc/rc.d/init.d/arptables,这个脚本读的配置文件必须放在 /etc/sysconfig/arptables里。 (这一段知道就行了 不用操作) 打开arptables服务:chkconfig arptables on 2. 配置arptableslinux服务器的网关MAC是00:24:51:E9:C7:10,同网段另一台服务器192.168.1.10(主机名是nh-blade-67)的MAC地址是00:17:A4:A8:68:11。 用命令行配置arp防火墙:在eth0上如果源IP是192.168.1.10,并且源MAC不是00:17:A4:A8:68:11的话,就禁止这个数据桢。 /usr/local/sbin/arptables -A INPUT -i eth0 --src-ip 192.168.1.10 --src-mac ! 00:17:A4:A8:68:11 -j DROP(这里把192.168.1.10和00:17:A4:A8:68:11换成你同网段另一台服务器的ip和mac.注意!的前后都有空格) 在eth0上如果源MAC不是00:24:51:E9:C7:10(网关的MAC地址),就禁止这个数据桢,这一条针对外网过来的访问。 /usr/local/sbin/arptables -A INPUT -i eth0 --src-mac ! 00:24:51:E9:C7:10 -j DROP(这里把00:24:51:E9:C7:10换成你网关的mac地址) 注意:添加arp防火墙策略的次序不能错,针对网关MAC地址的语句必须放在最后,否则本网段IP的访问策略不能生效。 把以上策略写入配置文件:/usr/local/sbin/arptables-save > /etc/sysconfig/arptables /etc/sysconfig/arptables文件的内容: (查看方法vi /etc/sysconfig/arptables) *filter:INPUT ACCEPT:OUTPUT ACCEPT:FORWARD ACCEPT-A INPUT -j DROP -i eth0 -o any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11-A INPUT -j DROP -i eth0 -o any ! --src-mac 00:24:51:e9:c7:10 用命令 /etc/init.d/arptables restart重启arptables的时候提示出错: Stopping Arp filtering (arptables): [ OK ]Starting Arp filtering (arptables): arptables v0.0.3-3: Can't use -o with INPUT Try `arptables -h' or 'arptables --help' for more information.ERROR(line 5):[FAILED] 修改/etc/sysconfig/arptables文件以后的内容:(vi /etc/sysconfig/arptables 把-o any删除 :wq保存都退出) *filter:INPUT ACCEPT:OUTPUT ACCEPT:FORWARD ACCEPT-A INPUT -j DROP -i eth0 any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11/' 再重启arp防火墙就没有错误。查看arp防火墙状态 /etc/init.d/arptables status: *filter:INPUT ACCEPT:OUTPUT ACCEPT:FORWARD ACCEPT-A INPUT -j DROP -i eth0 -o any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11-A INPUT -j DROP -i eth0 -o any ! --src-mac 00:24:51:e9:c7:10 注:RHEL5U1自带arptables的版本是0.0.8,命令里不能带--source-ip参数,这个版本不是sourceforge.net上发布的。 ) 重启后生效开启: chkconfig arptables on关闭: chkconfig arptables off 2) 即时生效,重启后失效开启: service arptables start关闭: service arptables stop