|
利用 FreeBSD 组建安全的网关(3) add 20001 allow udp from any 53 to me in recv xl0 //允许其他DNS服务器的信息进入该服务器,因为自己要进行DNS解析嘛~ add 20002 allow udp from any to x.x.x.x 53 in recv xl0 //向整个Internet开放DNS服务。 add 29999 allow udp from any to any out //允许自己的UDP包往外发送。 ######icmp######### add 30000 allow icmp from any to any icmptypes 3 add 30001 allow icmp from any to any icmptypes 4 add 30002 allow icmp from any to any icmptypes 8 out add 30003 allow icmp from any to any icmptypes 0 in add 30004 allow icmp from any to any icmptypes 11 in //允许自己ping别人的服务器。也允许内部网络用router命令进行路由跟踪。 #######lan########## add 40000 allow all from 192.168.0.0/16 to any add 40001 allow all from any to 192.168.0.0/16 //允许内部网络访问Internet。
好了,还有natd没设置了,我们再次添加/etc/natd.conf这个文件,其内容如下:
log yes //启动natd的log记录。
redirect_port tcp 192.168.0.2:25 x.x.x.x:25 //把对服务器IP为x.x.x.x的smtp访问转到192.168.0.2的25上去。
redirect_port tcp 192.168.0.2:80 x.x.x.x:80 //把对服务器IP为x.x.x.x的http访问转到192.168.0.2的80上去。
redirect_port tcp 192.168.0.2:110 x.x.x.x:110 //把对服务器IP为x.x.x.x的pop3访问转到192.168.0.2的110上去。
好了,natd也设置完了~重新启动一下系统让防火墙和natd生效,现在就是该装的服务没装了,虽然防火墙已经让这些服务通行。
我们现在在Gateway上安装DNS服务,我现在选择的是bind 9.2.0,安装过程不是我们的重点,所以这里就不详细介绍了,我这里只对bind的安全设置做一个说明,假设bind的工作目录是/etc/namedb现在我们对bind设置一下,因为bind的大多数版本都存在问题,这个版本虽然目前没有,但还是提防为好,我在这里建议使用chroot技术来增强bind的安全,假设我们把chroot目录设在/chroot,我们做以下事情:
pw useradd bind -g 53 -u 53 -d /nologin -s /nologin mkdir /chroot mkdir /chroot/etc mkdir /chroot/var mkdir /chroot/var/run cp -rp /etc/namedb /chroot/etc/namedb //建立bind的工作环境和目录。
然后再运行
$PATH/sbin/named -t /chroot -u bind
这样做了后运行ps -ax grep named会发现bind是以bind这个权限很底的身份运行,我们到/chroot/var/run目录下看,会发现有named.pid这个文件,表示bind已经很成功的被chroot在/chroot这个目录里了,就算被"黑客"利用bind入侵了,由于权限很底,而且被限制在/chroot这个目录里,并且里面没有任何的shell,不给"黑客"任何的破坏条件。所以说bind这时已经相当安全了。
|