您需要一个个人防火墙、一个企业internet网关还是这两者之间的什么东西吗?iptables可以完全满足你的需要!
在任何通用的Linux操作系统中,内核包括了一些非常强大且非常灵活的防火墙代码,这个代码叫做Netfilter,不过我们大都通过用户空间命令iptables来引用它,Netfilter/iptables允许你的Linux内核检查所有通过你系统的网络通讯,基于一套非常丰富的标准来判定通讯是做什么的。
用iptables建立Linux防火墙是一个大的话题—已经有完整的书籍介绍它(Suehring, S., and Ziegler, R. Linux Firewalls, 3rd edition. Upper Saddle River, NJ: Novell Press, 2005),事实上,防火墙工程师本身是一个职业(实际上,我就是干这行的),因此,没有人能在一篇杂志文章中告诉你你需要知道的用iptables建立防火墙的每件事情。
但是我能提供iptables能做什么事情的一个概述,一些用于Linux防火墙设计的合理原则,建立不同类型防火墙的方便工具的描述,以及更多关于Linux防火墙的详细信息。
Linux防火墙的类型
防火墙,或更精确地说数据包过滤器,可以用于许多方面,它可以用于本地单独的服务器和桌面系统提供主机级别的保护,阻止基于网络的攻击,用于网络结构层保护整个网络,阻止来自其他网络的攻击,以及重定向甚至改变网络数据包。
Linux防火墙可以做成基于Linux的专用硬件设备,如一台有多个网络接口的PC或一台普通的、单个接口的工作站或服务器。许多商业防火墙设备也是基于Linux/iptables的,与你想象的相反,如果部署在强大的硬件上,基于PC的Linux防火墙也能表现得相当好。
那些组成Linux防火墙的元素,它们为两个不同的角色服务,防火墙装置和基于PC的多接口防火墙被我叫做网络防火墙使用,它们作为专用的网络设备,逻辑上与IP路由器相当,路由器管理不同网络之间的通讯。(技术上,防火墙是路由器,它们仅挑剔路过它们的内容),网络防火墙也常常完成网络地址转换(NAT)功能,典型地,它们允许没有internet ip地址的主机能够访问互联网。
然后,介绍下被我称为本地防火墙—工作站或服务器的主要功能根本不是防火墙,但是它们需要保护它们自己,据我看来,任何连接到互联网的计算机,无论是服务器还是工作站,都应该运行一个本地防火墙策略,至于Linux系统,我们还没有借口不使用Linux内置的Netfilter/iptables功能,而且,这是最容易创建的防火墙脚本类型,本文稍后会进行展示。

