基于iptables的网桥防火墙的搭建
目标: 在不改变网络拓补结构的前提下,实现一个防火墙,对经过该防火墙的数据进行过滤。在此,我们主要是想对所有与服务器进行通信的数据进行过滤。结构图如下:
服务器和左边的Internet可以处于同一个局域网,比如网段都为: 192.168.1.0。另外可以增加一个网卡作为管理,这个管理的口可以不必接入Internet中,这样可以达到无法对网桥进行攻击的目的。由上图可以看出我们使用了三块网卡,其实只用两块网卡也可以实现,只是需要给网桥设置一个IP,然后通过这个IP登录。
实现这个系统的环境:
系统: ubuntu9.04 内核版本:2.6.28
防火墙: iptables,版本:1.4.16.3 (用1.4.13的时候出过问题)
编译器:4.3.3
原理简介:在linux 2.6的内核中已经自带有netfilter可以对网络数据包进行过滤,只是如果要设置过滤规则,那必须安装用户端管理软件,这就是ebtables和iptables,其中ebtables工作于数据链路层,而iptables既可以工作于数据链路层也能工作于网络层,如果同时使用了ebtables和iptables那ebtables的过滤总是在iptables的过滤之前执行。
具体原理可以参考:http://bbs.kylin-linux.com/htm_data/55/1012/716.html(差不多是官方文档来源于http://www.linuxsecurity.com/)
Linux内核bridge浅析:http://www.360doc.com/content/11/0211/12/5708196_92110977.shtml