利用 FreeBSD 组建安全的网关(1) FreeBSD在网络服务器的领域里占有一席之地,不管是在高端应用,还是小型企业里,使用FreeBSD做服务器都是不错的选择,但是如何才能建立一个安全的网络呢? 首先我们来做一个这样的假设,某公司有两台服务器,需要建立一个以FreeBSD为平台的网关,并且还能提供电子邮件、DNS、WEB等服务,看起来好象这是一个很简单的事情,然而要建立一个安全性高的却不简单,在此我将为大家介绍如何去做,首先我凭着自己对FreeBSD的熟练程度,做了以下设计:
以上是我为该公司设计的网络结构图,首先我们来分析一下这个图,由于Gateway是一个与Internet直接连接的服务器,糟受的攻击自然也是最多的,所以也是最危险了。而且由于该服务器担任着公司的网关,该服务器只要一出问题,也将影响到全公司。为了稳定性、安全性,我考虑该服务器要跑的服务越少越好。服务越少,那么漏洞出现的可能性也越少。而WWW服务器由于放在了Gateway里面,受Gateway的保护,所以一般来说遭受的攻击比较少,所以一般可以满足足够多的服务,但是这些服务怎么样才能让Internet上的人访问呢?这就会在下面我们详细介绍了。 首先我们来安装Gateway,Gateway要使用的Internet的IP为x.x.x.x网卡为xl0,内部IP为192.168.0.1网卡为xl1,由于Gateway起到网关的作用,所以为了安全性,在该服务器上做安全是非常重要的,FreeBSD有自带了一个ipfirewall防火墙,既然有,我们当然要利用上了,首先编译内核: cd /sys/i386/conf cp GENERIC ./kernel_IPFW 用编辑器打开kernel_IPFW这个文本文件,在该文件里加入以下内容: Options IPFIREWALL //通知操作系统的内核检查每个IP数据包,将它们与规则集进行比较 Options IPDIVERT //启用由ipfw divert使用的转向IP套接字。这一选项需要与natd联合使用。 Options IPFIREWALL_VERBOSE //向系统的注册程序发送注册信息包。 Options IPFIREWALL_VERBOSE_LIMIT=100 //限制一台机器注册的次数。 Options IPSTEALTH //启动支持秘密转发的代码,这一选项在使防火墙不被traceroute和类似工具发现时很有用。 Options ACCEPT_FILTER_DATA Options ACCEPT_FILTER_HTTP //接受过滤器中的静态连接 Options ICMP_BANDLIM //ICMP_BANDLIM根据带宽限制产生icmp错误。一般情况下我们需要这个选项,它有助于你的系统免受D.O.S.攻击。
把以上参数加入以后保存kernel_IPFW文件。 make depend cd ../../compile/kernel_IPFW make make install (注意!!!!!请不要使用远程方式来设置服务器!为什么?等下你就能知道了。)