(1)WWW服务服务端口为80,采用tcp或udp协议规则为eth0=>;允许目的为内部网WWW服务器的包$IPT -A FORWARD -p tcp -d $WWW-SERVER-dport www -i eth0 -j ACCEPT(2)FTP服务服务端口为21,数据端口20FTP的传输模式有主动和被动之分,FTP服务采用tcp协议规则为:eth0=>;仅允许目的为内部网ftp服务器的包$IPT -A FORWARD -p tcp -d $FTP-SERVER -dport ftp -i eth0 -j ACCEPT(3)EMAIL服务包含两个协议,一个是smtp,另一个是pop3出于安全性考虑,通常只提供对内的pop3服务所以在这里我们只考虑对smtp的安全性问题smtp端口为25,采用tcp协议规则为etho=>;仅允许目的为E-mail服务器的smtp请求$IPT -A FORWARD -p tcp -d $EMAIL-SERVER-dport smtp -i eth0 -j ACCEPT
下面设置针对Internet客户的过滤规则:
本例中防火墙位于网关的位置,所以主要是防止来自Internet的攻击不能防止来自Intranet的攻击假如网络中的服务器都是基于Linux的,也可以在每一部服务器上设置相关的过滤规则来防止来自Internet的攻击
对于Internet对Intranet客户的返回包,定义如下规则:(1)允许Intranet客户采用被动模式访问Internet的FTP服务器$IPT -A FORWARD -p tcp -s 0/0 --sport ftp-data -d $IP_RANGE -i eth0 -j ACCEPT(2)接收来自Internet的非连接请求tcp包$IPT -A FORWARD -p tcp -d 198.168.80.0/24 ! --syn -i eth0 -j ACCEPT(3)接收所有udp包,主要是针对oicq等使用udp的服务$IPT -A FORWARD -p udp -d 198.168.80.0/24 -i eth0 -j ACCEPT
然后接受来自整个Intranet的数据包过滤,我们定义如下规则$IPT -A FORWARD -s 198.168.80.0/24 -i eth1 -j ACCEPT处理ip碎片接受所有的ip碎片,但采用limit匹配扩展对其单位时间可以通过的ip碎片数量进行限制,以防止ip碎片攻击$IPT -A FORWARD -f -m limit-limit 100/s-limit-burst 100 -j ACCEPT说明:对不管来自哪里的ip碎片都进行限制,允许每秒通过100个ip碎片该限制触发的条件是100个ip碎片设置icmp包过滤ipmp包通常用于网络测试等,故允许所有的icmp包通过但是黑客常常采用icmp进行攻击,如ping of death等所以我们采用limit匹配扩展加以限制$IPT -A FORWARD -p icmp -m limit-limit 1/s-limit-burst 10 -j ACCEPT说明:对不管来自哪里的icmp包都进行限制,允许每秒通过一个包该限制触发的条件是10个包
三 结束语:
对防火墙的不当配置可能造成安全漏洞。如处理TCP分段时,Ipchains需要查看包头中的源端口、目的端口、ICMP代码或“TCP SYN”标志等信息,而这些信息只能在TCP分段的第一个IP包中才有。于是从第二个分段开始都不能匹配过滤规则。某些管理者将防火墙配置为仅对第一个分段进行处理。通常,一个TCP连接的第一个TCP分段被防火墙阻挡后,其他的TCP分段被认为不会产生安全性问题,因为在目的主机上由于缺少第一个分段而无法重新组装报文。然而,由于系统缺陷等原因,发送的分段可能使机器瘫痪,甚至人为精心设计的IP包可借此缺陷绕过防火墙。因此配置防火墙需要仔细分析过滤规则如何处理各种类型的分组。对分段的处理最好将系统内核编译为重新组装所有通过的分段,或在应用层另设安全机制。
对基于包过滤防火墙更常见的攻击是利用IP欺骗的方法。IP欺骗是指主机发送自称是另一个主机发送的包。防止IP欺骗的方法是使用源地址确认,它通过配置路由器识别路由代码实现,而不是防火墙。防火墙结合源地址确认能较好地增强系统的安全性
四 参考文献
《Red Hat Linux 9网络服务》机械工业出版社《Turbolinux 网络管理教程》《Turbolinux 系统管理教程》