Linux一
netfilter/iptabels 应用程序,被认为是 Linux中实现包过滤功能的第四代应用程序。netfilter/iptables包含在2.4以后的内核中,它可以实现防火墙、NAT(网络地址翻 译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。netfilter/iptables 从ipchains和ipwadfm(IP防火墙管理)演化而来,功能更加强大。下文将netfilter/iptabels统一称为iptables。
可 以用iptables为Unix、Linux和BSD个人工作 站创建一个防火墙,也可以为一个子网创建防火墙以保护其它的系统平台。iptales只读取数据包头,不会给信息流增加负担,也无需进行验证。要想获得更 好的安全性,可以将其和一个代理服务器(比如squid)相结合。
基本概念
典型的防火墙设置有两个网卡:一个流入,一个流出。iptables读取流入和流出数据包的报头,将它们与规则集(Ruleset)相比较,将可接受的数据包从一个网卡转发至另一个网卡,对被拒绝的数据包,可以丢弃或按照所定义的方式来处理。
通 过向防火墙提供有关对来自某个源地址、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤。通过使用iptables系统 提供的特殊命令iptables建立这些规则,并将其添加到内核空间特定信息包过滤表内的链中。关于添加、去除、编辑规则的命令,一般语法如下:
iptables [-t table] command [match] [target]
[-t table]选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。有三个可用的表选项:filter、nat和mangle。该选项不是必需的,如果未指定,则filter作为缺省表。各表实现的功能如表1所示。
表1 三种表实现的功能
2.命令(command)
command部分是iptables命令最重要的部分。它告诉iptables命令要做什么,例如插入规则、将规则添加到链的末尾或删除规则。表2是最常用的一些命令及例子。
表2 命令的功能和样例
3.匹配(match)
iptables命令的可选match部分指定信息包与规则匹配所应具有的特征(如源地址、目的地址、协议等)。匹配分为通用匹配和特定于协议的匹配两大类。这里将介绍可用于采用任何协议的信息包的通用匹配。表3是一些重要且常用的通用匹配及示例说明。
表3 通用匹配及示例说明
4.目标(target)
目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项。表4是常用的一些目标及示例说明。
除表4外,还有许多用于建立高级规则的其它目标,如LOG、REDIRECT、MARK、MIRROR和MASQUERADE等。
1.启动和停止
service iptables start/stop/restart/status
/etc/rc.d/init.d/iptables start
2.配置文件
iptables 初始脚本是由 /etc/sysconfig/iptables-config 配置文件所控制的
IPTABLES_MODULES — 在防火墙被激活时,指定一组空间独立的额外 iptables 模块来加载。这可以包括 connection tracking 和 NAT helper。
IPTABLES_MODULES_UNLOAD — 在重新启动和停止时卸载的模块。这个项接受以下值:
yes — 默认的值。这个选项必须被设置来在启动和停止一个防火墙时达到一个正确的状态。
no — 这个选项只有在卸载 netfilter 模块出现问题时才应该设置。
yes — 当防火墙停止时把现存的规则保存到 /etc/sysconfig/iptables,而以前的版本被保存为 /etc/sysconfig/iptables.save。
no — 默认值。当防火墙停止时不保存当前的规则。- IPTABLES_SAVE_ON_RESTART — 当防火墙重新启动时,保存当前的防火墙规则。这个项接受以下值:
-
- yes — 当防火墙重新启动时,保存现存的规则到 /etc/sysconfig/iptables,而以前的版本被存为 /etc/sysconfig/iptables.save。
no — 默认值。防火墙重新启动时,不保存现存的规则。- IPTABLES_SAVE_COUNTER — 保存并恢复所有chain 和规则中的数据包和字节计数器。这个项接受以下值:
yes — 保存计数器的值。
no — 默认值。不保存计数器值。
yes — 默认的值。在状态输出中只包括IP地址。
no — 在状态输出中返回域名或主机名。
- yes — 当防火墙重新启动时,保存现存的规则到 /etc/sysconfig/iptables,而以前的版本被存为 /etc/sysconfig/iptables.save。
呵呵,还找到一个方便的图形界面工具
在/usr/bin/下有个叫system-config-firewall-tui的工具