自1995年ipfwadm开始进入1.2.1的核心,linux的防火墙实现有很长的时间了.ipfwadm实现了标准的tcp/ip包过滤功能,比如过滤源地址与目的地址以及端口过滤.早在1999年第一个稳定的2.2.0核心中防火墙的实现被ipchains替代了,ipchains的新功能包括支持规则链,碎片包控制,较好的网络地址翻译功能(nat)以及其他一些有用的改进.我们需要明白linux防火墙包括核心级代码(通常是可加载核心模块或者核心源程序的补丁)与用户级代码(一个配置的工具,比如 /usr/bin/ipchains,这是用来插入包规则到核心空间的)因此无论如何,只要新的linux防火墙代码被引入,核心与用户空间的有关代码都要改写.
【程序编程相关:企业级防火墙日志分析利器-WebTren】 【推荐阅读:个人防火墙的选择及其使用技巧】2001年2.4的核心完成了,iptables出现了.它引入了很多重要的改进,比如基于状态的防火墙,基于任何 tcp标记与mac地址的包过滤,更灵活的配置与记录功能,强大而且简单的nat功能与透明代理功能,通过速度限制实现dos的阻止(更详细的资料请参看 a comparison of iptables automation tools一文). 【扩展信息:Crack CheckPoint ng的】 然而,最重要变化是引入了模块化的架构方式.比如,ipchains与ipfwadm兼容模式是通过一个核心模块的设置实现的,该模块能够在运行的核心中插入,以便提供相应的通讯功能.在附加的变化中,用户自定义编码功能已经成为了可能,比如过滤一定范围的端口,根据ttl值与包的到达时间进行判断,对自定义的协议进行状态监视,对随机的数据包进行监视等,这些目前都还不是iptable的一部分,但是在未来将被实现.很多很有趣的新模块已经完成了.编写一个可加载的核心模块来创建核心级代码,通过用户级代码实现控制过滤器的行为.参见rusty russells linux iptables howto 本文主要关注字符串模式匹配的功能,(显然,是通过模块实现的),该功能可以限制与研究数据包的有效载荷.这是iptable技术的一个非常有意义的突破,它超越了传统的包过滤防火墙的标准tcp/ip标志监视功能.传统的防火墙可以分为包过滤与应用代理两种类型,应用代理防火墙可以分别出应用层的协议比如 telnet,http或者smtp,能够监视这些协议的有效载荷与检查命令,但是应用代理防火墙带来了巨大的性能缺陷:当通过网络协议栈处理上层即应用层的数据包.同时我们需要为每一个要监控的协议编写新的代理程序.包过滤防火墙通常只监视源地址与目的地址,源端口与目的端口,tcp/ip标志等,而完全忽略了高层协议的有效载荷.由于上述原因,包过滤防火墙通常比应用代理防火墙的速度快.应用代理提供了更加有力度的安全控制而包过滤可以用于更高的带宽线路满足更高的吞吐量. 基于以上的情况,iptables的新增功能提供了跨越两种防火墙类型的优势,避免了各自的缺陷,这个功能同时非常清晰的证明了新的模块化的架构较之老的ipchains的优势,它能够使得iptables工作在网络层(osi模型的第三层)不必工作在高层协议,但是却可以监视高层协议的有效载荷,而不必分析应用层的通信结构. 在2001年5月以前,还没有提出字符串模式匹配模块以前.有一个尝试添加内容监控的能力给iptables防火墙的工程:hogwash.... 下一页