防火墙作为一种网络或系统之间强制实行访问控制的机制,是确保网络安全的重要手段。针对不同的需求和应用环境,可以量身定制出不同的防火墙系统。防火墙大到可由若干路由器和堡垒主机构成,也可小到仅仅是网络操作系统上一个防火墙软件包所提供的包过滤功能。
在众多网络防火墙产品中,Linux操作系统上的防火墙软件特点显著。首先是Linux操作系统作为一个类Unix网络操作系统,在系统的稳定性、健壮性及价格的低廉性方面都独具优势。更为重要的是,Linux不但本身的源代码完全开放,而且系统包含了建立Internet网络环境所需要的所有服务软件包,如Apache Web服务器、DNS服务器、Mail服务器、Database服务器等。同样,基于Linux的防火墙软件不但具有强大的功能,而且大部分都是开放软件。
随着Internet的飞速发展,安全问题越来越重要。利用Linux构建企业网深受中小企业的青睐,而利用Linux构建企业网的防火墙系统也成为众多中小企业的理想选择。
Linux内核从1.1版本开始,就已经具备包过滤功能。在2.0内核中,开始采用Ipfwadm来操作内核的包过滤规则。到2.2版本时,Linux内核采用了Ipchains来控制内核的包过滤规则。发展到2.4.x时,Ipchains被一个全新的包过滤管理工具Iptables所替代。新发布的 2.6版内核也在安全方面进行了改进。因此,无论拥有哪个版本的Linux内核,无论选择哪个版本的Linux来构建自己的企业网,都可以利用现有的系统构建出一个理想实用的防火墙。
防火墙系统可分为包过滤型、应用级网关(也叫代理服务器型防火墙)和电路级网关三种基本类型。Linux提供的防火墙软件包内置于Linux内核中,是一种基于包过滤型的防火墙实现技术。其中心思想是根据网络层IP包头中的源地址、目的地址及包类型等信息来控制包的流向。更彻底的过滤则是检查包中的源端口、目的端口以及连接状态等信息。
本文主要介绍Linux提供的IPFW、Ipchains、Iptables这三种非常实用的防火墙和具体实现。
IPFW防火墙
IPFW是比较老的Linux内核版本提供的防火墙软件包。该软件包的全称是Ipfwadm。Ipfwadm程序包提供了建立规则的能力,根据这些规则来确定允许什么样的包进出本网络。简单说来,防火墙就是一对开关,一个开关允许包通过,另一个开关禁止包通过。现代防火墙系统一般都会附加审计跟踪、加密认证、地址伪装和VPN等多种功能。作为一个安全开关,防火墙可定义的安全策略有两个:
(1)一切未被允许的都被禁止;