实现Linux网络防火墙
2006-07-04 12:35:49 来源:WEB开发网本文主要介绍Linux提供的IPFW、Ipchains、Iptables这三种非常实用的防火墙和具体实现。
IPFW防火墙
IPFW是比较老的Linux内核版本提供的防火墙软件包。该软件包的全称是Ipfwadm。Ipfwadm程序包提供了建立规则的能力,根据这些规则来确定允许什么样的包进出本网络。简单说来,防火墙就是一对开关,一个开关允许包通过,另一个开关禁止包通过。现代防火墙系统一般都会附加审计跟踪、加密认证、地址伪装和VPN等多种功能。作为一个安全开关,防火墙可定义的安全策略有两个:
(1)一切未被允许的都被禁止;
(2)一切未被禁止的都被允许。
显然,策略1的安全性明显高于策略2,但它是以牺牲灵活性和可访问资源为代价来提高安全性的。Ipfwadm系统同样提供IP封装,它允许用户使用Internet上的一个公共IP地址空间。
下面以Red Hat系统为例,说明Linux系统上IPFW防火墙的实现。
在Red Hat系统上(在其它系统上一样)安装Ipfwadm防火墙,需要以root用户登录,然后执行如下命令:
#rpm -ivh /mnt/cdrom/RedHat/RPMS/ Ipfwadm-2.3.0-5.i386.rpm
在安装好Ipfwadm后,就可以交互方式指定Ipfwadm的包过滤规则。过滤规则对每一个进入系统的IP包进行检查,从而决定哪些包允许通过防火墙,哪些包则禁止通过。Ipfwadm命令的一般格式为:
/sbin/ ipfwadm category commands parameters [options]
Ipchains(IP链)和IP伪装
在更新版本的Linux内核中,Ipchains替代Ipfwadm,提供了更为严格的包过滤控制机制。Ipchains提供完整的防火墙功能,包括包过滤、地址伪装、透明代理。
Linux 2.2内核中提供的Ipchains,通过四类防火墙规则列表来提供防火墙规则控制,这些列表称为防火墙链。它们分别是IP input链(IP输入链)、IP output链(IP输出链)、IP forward链(IP转发链)和user defined链(用户定义链)。一个链实际上就是一个规则表。所谓规则,即当被检测的包头符合规则的定义时,就按预先的设定对该包进行某种处理。输入链是指对内连接请求的过滤规则;输出链是对外连接请求的过滤规则;转发链是对内部与外部通信包转发的过滤规则;用户定义链是用户自己定义的规则。
更多精彩
赞助商链接