原创:在linux上用arptables配置arp防火墙

发布于 2022-09-18 01:57:44 字数 3778 浏览 6 评论 0

在linux上可以用arptables配置arp防火墙,网上google了一下,关于arptables的文章没几篇,都是抄来抄去,这两天把arptables研究了一把,发现还是很简单的,把配置过程给大家共享一下。实验环境是rhel5u1 32位。

1. 安装arptables
arptables的下载页面是:http://sourceforge.net/projects/ebtables/files/
0.0.3.3版本的下载链接:http://downloads.sourceforge.net ... les-v0.0.3-3.tar.gz

下载以后安装:
tar zxvf arptables-v0.0.3-3.tar.gz
cd arptables-v0.0.3-3/
make
make 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. 配置arptables
linux服务器的网关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的话,就禁止这个数据桢。

  1. /usr/local/sbin/arptables -A INPUT -i eth0 --src-ip 192.168.1.10 --src-mac ! 00:17:A4:A8:68:11 -j DROP

复制代码

在eth0上如果源MAC不是00:24:51:E9:C7:10(网关的MAC地址),就禁止这个数据桢,这一条针对外网过来的访问。

  1. /usr/local/sbin/arptables -A INPUT -i eth0 --src-mac ! 00:24:51:E9:C7:10 -j DROP

复制代码

注意:添加arp防火墙策略的次序不能错,针对网关MAC地址的语句必须放在最后,否则本网段IP的访问策略不能生效。

把以上策略写入配置文件:
/usr/local/sbin/arptables-save > /etc/sysconfig/arptables

/etc/sysconfig/arptables文件的内容:

  1. *filter
  2. :INPUT ACCEPT
  3. :OUTPUT ACCEPT
  4. :FORWARD ACCEPT
  5. -A INPUT -j DROP -i eth0 -o any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11
  6. -A INPUT -j DROP -i eth0 -o any ! --src-mac 00:24:51:e9:c7:10

复制代码

用命令/etc/init.d/arptables restart重启arptables的时候提示出错:

  1. Stopping Arp filtering (arptables):                        [  OK  ]
  2. Starting Arp filtering (arptables): arptables v0.0.3-3: Can't use -o with INPUT
  3. Try `arptables -h' or 'arptables --help' for more information.
  4. ERROR(line 5):
  5.                                                            [FAILED]

复制代码

修改/etc/sysconfig/arptables文件以后的内容:

  1. *filter
  2. :INPUT ACCEPT
  3. :OUTPUT ACCEPT
  4. :FORWARD ACCEPT
  5. -A INPUT -j DROP -i eth0 any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11
  6. -A INPUT -j DROP -i eth0 any ! --src-mac 00:24:51:e9:c7:10

复制代码

再重启arp防火墙就没有错误。查看arp防火墙状态/etc/init.d/arptables status:

  1. *filter
  2. :INPUT ACCEPT
  3. :OUTPUT ACCEPT
  4. :FORWARD ACCEPT
  5. -A INPUT -j DROP -i eth0 -o any -s nh-blade-67 ! --src-mac 00:17:a4:a8:68:11
  6. -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上发布的。

[ 本帖最后由 sailer_sh 于 2009-8-11 11:52 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ゝ杯具 2022-09-25 01:57:44

多谢LZ分享啊。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文