首先设定内核的IP Forwarding功能,系统应开始转送每一信息。路径表(routing table)应已设定,因此应该可以通往任何地点,从网内可以联到网外,从网外也可进到网内。 但是防火墙的作用是不让任何人可以随便进出网路。 在示范系统中设定了两套指令(script),对防火墙的forwarding和accounting作了规定。系统在运行/etc/rc.d时取用这两套指令,因此在系统启动时就对系统作了设置。 Linux的内核自设转送一切信息的IP Forwarding系统。因此,防火墙的指令应首先禁止一切进入系统的权利,清除上次运行后留下的任何ipfw规则。下面的指令应能达到这项目的。
# # setup IP packet Accounting and Forwarding # # Forwarding # # By default DENY all services ipfwadm -F -p deny # Flush all commands ipfwadm -F -f ipfwadm -I -f ipfwadm -O -f好了,现在有了绝对保险的防火墙。一切都被屏挡在外面,无法穿越防火墙一步。当然,有些功能还是需要的,下面的一些例子可作参考。
# Forward email to your server ︰转送电子邮件到伺服器 ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10 25 # Forward email connections to outside email servers ︰将电子邮件连到网路外的电子邮件伺服器 ipfwadm -F -a accept -b -P tcp -S 196.1.2.10 25 -D 0.0.0.0/0 1024:65535 # Forward Web connections to your Web Server︰将Web连到Web伺服器 /sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 196.1.2.11 80 # Forward Web connections to outside Web Server︰将Web连到外界Web伺服器 /sbin/ipfwadm -F -a accept -b -P tcp -S 196.1.2.* 80 -D 0.0.0.0/0 1024:65535 # Forward DNS traffic︰转送DNS信息 /sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 -D 196.1.2.0/24如果想知道通过防火墙的信息来往情况,下列指令会统计所有数据包。
# Flush the current accounting rules ipfwadm -A -f # Accounting /sbin/ipfwadm -A -f /sbin/ipfwadm -A out -i -S 196.1.2.0/24 -D 0.0.0.0/0 /sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 196.1.2.0/24 /sbin/ipfwadm -A in -i -S 196.1.2.0/24 -D 0.0.0.0/0 /sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 196.1.2.0/24
如果只把电脑设为过滤防火墙,到这里就大功告成了﹗