首先确定FreeBSD防火墙是作为企业连接到Internet服务器的唯一途径,然后对FreeBSD进行一定的设置,开启它的ipfirewall以及NATD功能,上图告诉了我们现在是把WWW、BBS、DNS等服务器都放在内部进行保护,所以在防火墙要开启NATD的反向代理功能,首先我们把xxx.xxx.xxx.001,xxx.xxx.xxx.002,xxx.xxx.xxx.003,绑定在FreeBSD外部网卡上,假设外部网卡号为fxp0,在rc.conf里我们需要设置如下:
ifconfig_fxp0="inet xxx.xxx.xxx.001 netmask 255.255.255.0"
ifconfig_fxp0_alias0="inet xxx.xxx.xxx.002 netmask 255.255.255.0"
ifconfig_fxp0_alias1="inet xxx.xxx.xxx.003 netmask 255.255.255.0"
绑好之后我们现在就开始分析了,首先我们来看看内部网络,内部要上Internet就必须要有一个网关,并且让他们正常的使用网络,假设FreeBSD内部网卡编号为fxp1,那么我们还要在rc.conf里加入:
ifconfig_fxp1="inet 10.125.0.1 netmask 255.255.0.0"
然后在防火墙规则里加上:
divert 8668 ip from any to any via fxp0
这条规则,允许NATD服务,仅允许NATD服务还不行,还要设置内部网络能连接到Internet,我们再加上:
allow ip from any to 10.125.0.0/16
allow ip from 10.125.0.0/16 to any
内部网络设置Gateway为10.125.0.1,这样企业的内部网络就能正常连接到Internet了。
然后我们来看看WWW服务器,这个服务器一般来说只要开放三个端口就够了,第一个端口自然是HTTP端口不用说了,第二个端口那就是ftp端口以及ftp数据端口,其中HTTP端口自然是让Internet上以及企业内部访问的端口,而FTP端口是用来更新主页或做别的事的,并且只须要企业内部人员访问就足够了,当然有必要的话还要开telnet或ssh端口,这是方便企业内部系统管理员远程管理的,这里我建议使用ssh,并且为了防止万一入侵者进来了,他可能要对其他机器进行攻击,我决定对WWW服务器进行单独分离,现在假设FreeBSD的内部网卡编号为fxp1,我们编辑rc.conf文件,加上:
ifconfig_fxp1_alias0 ="inet 10.80.0.1 netmask 255.255.255.0"
然后我们把WWW的服务器设置成10.80这个网段,网关为10.80.0.1,这样就把WWW服务器单独划在了一个特殊的区域里了,假设我们设置WWW的IP为10.80.0.80现在我们再设置防火墙规则:
allow tcp from any to xxx.xxx.xxx.001 80 in
allow tcp from xxx.xxx.xxx.001 80 to any out //允许任意地方能访问防火墙的80
allow tcp from 10.80.0.80 80 to any out
allow tcp from any to 10.80.0.80 80 in //允许任意地方访问WWW服务器的80端口
allow tcp from 10.125.0.0/16 to 10.80.0.80 21 in
allow tcp from 10.125.0.0/16 to 10.80.0.80 20 in
allow tcp from 10.80.0.80 21 to 10.125.0.0/16 out
allow tcp from 10.80.0.80 20 to 10.125.0.0/16 out //允许内部网络使用FTP服务器连接WWW服务器
设置完成防火墙规则还不行还需要设置NATD,我们设置NATD为:
redirect_port tcp 10.80.0.80:80 xxx.xxx.xxx.001:80
这样设置以后,WWW服务器就可以允许企业内部人员顺利的更新主页和浏览主页了,而Internet却只能浏览WWW服务器上的主页,就算万一WWW服务器利用HTTP服务器入侵了该机器,由于该服务器的各种连接都被放火墙阻断,而无法对企业内部网络进行入侵和破坏,达到充分保护WWW服务器以及内部网络的目的。
现在我们再来分析DNS服务器,由于BBS服务器和WWW服务器实质上都一样这里就不讨论了,DNS服务器自然要提供DNS服务器,也就是UDP53端口,由于同时还带MAIL功能,所以还要开放SMTP端口以及POP3端口,而POP3服务器同样只允许内部企业访问,所以我们给rc.conf加入:
ifconfig_fxp1_alias0="inet 10.80.2.1 netmask 255.255.255.0"
然后给DNS服务器设置IP为10.80.2.53,设置防火墙规则为:
allow udp from any to xxx.xxx.xxx.003 53 in
allow udp from xxx.xxx.xxx.003 53 to any out //允许任意地方能访问防火墙的53端口
allow tcp from any to xxx.xxx.xxx.003 25 in
allow tcp from xxx.xxx.xxx.003 25 to any out //允许任意地方能访问防火墙的smtp端口
allow udp from 10.80.2.53 53 to any out
allow udp from any to 10.80.2.53 53 in //允许任意地方访问DNS服务器的53端口
allow tcp from any to 10.80.2.53 25 in
allow tcp from 10.80.2.53 25 to any out //允许任意地方访问DNS的SMTP端口
allow tcp from 10.125.0.0/16 to 10.80.2.53 110 in
allow tcp from 10.80.2.53 110 to 10.125.0.0/16 out //允许企业内部访问DNS的POP3端口
NATD设置为:
redirect_port udp 10.80.2.53:53 xxx.xxx.xxx.003:53 //把10.80.2.53的53转到xxx.xxx.xxx.003的53上,使用的UDP。
redirect_port tcp 10.80.2.53:25 xxx.xxx.xxx.003:25 //把10.80.2.53的25转到xxx.xxx.xxx.003的25上,使用的TCP。
按照上面的规则设置好企业网络后,使得企业网络保护更加的严密,服务器和服务器之间以及服务器和企业内部网络之间进行了严格控制。当然这里没有考虑内部入侵,以及内部IP盗用行为,这也就是FreeBSD防火墙的局限性。不过可以添加一块网卡,把企业内部人员的网络单独用一个网卡来进行隔离,达到弥补的办法。
好了,以上为我使用FreeBSD防火墙保护企业网络的个人做法,希望能给一部分企业网管有所帮助。
转截请注明:文章来自 pc捍卫者 http://www.pchwz.com
本站发布此文为传递更多信息之目的,不表明pc捍卫者赞同其观点