(用于所有协议)。ALL 是缺省匹配。可以使用 ! 符号,它表示不与该项匹配。 示例:
$ iptables -A INPUT -p TCP, UDP $ iptables -A INPUT -p ! ICMP 在上述示例中,这两条命令都执行同一任务 — 它们指定所有 TCP 和 UDP 信息包都将与该规则匹配。通过指定 ! ICMP ,我们打算允许所有其它协议(在这种情况下是 TCP 和 UDP ),而将 ICMP 排除在外。
-s 或 --source :该源匹配用于根据信息包的源 IP 地址来与它们匹配。该匹配还允许对某一范围内的 IP 地址进行匹配,可以使用 ! 符号,表示不与该项匹配。缺省源匹配与所有 IP 地址匹配。 示例:
$ iptables -A OUTPUT -s 192.168.1.1 $ iptables -A OUTPUT -s 192.168.0.0/24 $ iptables -A OUTPUT -s ! 203.16.1.89 第二条命令指定该规则与所有来自 192.168.0.0 到 192.168.0.24 的 IP 地址范围的信息包匹配。第三条命令指定该规则将与除来自源地址 203.16.1.89 外的任何信息包匹配。
-d 或 --destination :该目的地匹配用于根据信息包的目的地 IP 地址来与它们匹配。该匹配还允许对某一范围内 IP 地址进行匹配,可以使用 ! 符号,表示不与该项匹配。 示例:
$ iptables -A INPUT -d 192.168.1.1 $ iptables -A INPUT -d 192.168.0.0/24 $ iptables -A OUTPUT -d ! 203.16.1.89
目标(target) 我们已经知道,目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项。下面是常用的一些目标及其示例和说明:
还有许多用于建立高级规则的其它目标,如 LOG 、REDIRECT 、MARK 、MIRROR 和 MASQUERADE 等。
保存规则 现在,您已经学习了如何建立基本的规则和链以及如何从信息包过滤表中添加或删除它们。但是,您应该记住:用上述方法所建立的规则会被保存到内核中,当重新引导系统时,会丢失这些规则。所以,如果您将没有错误的且有效的规则集添加到信息包过滤表,同时希望在重新引导之后再次使用这些规则,那么必须将该规则集保存在文件中。可以使用 iptables-save 命令来做到这一点:
$ iptables-save > iptables-script
现在,信息包过滤表中的所有规则都被保存在文件 iptables-script 中。无论何时再次引导系统,都可以使用 iptables-restore 命令将规则集从该脚本文件恢复到信息包过滤表,如下所示:
$ iptables-restore iptables-script
如果您愿意在每次引导系统时自动恢复该规则集,则可以将上面指定的这条命令放到任何一个初始化 shell 脚本中。
netfilter/iptables 系统的优点 netfilter/iptables 的最大优点是它可以配置有状态的防火墙,这是 ipfwadm 和 ipchains 等以前的工具都无法提供的一种重要功能。有状态的防火墙能够指定并记住为发送或接收信息包所建立的连接的状态。防火墙可以从信息包的连接跟踪状态获得该信息。在决定新的信息包过滤时,防火墙所使用的这些状态信息可以增加其效率和速度。这里有四种有效状态,名称分别为 ESTABLISHED 、INVALID 、NEW 和 RELATED 。
状态 ESTABLISHED 指出该信息包属于已建立的连接,该连接一直用于发送和接收信息包并且完全有效。INVALID 状态指出该信息包与任何已知的流或连接都不相关联,它可能包含错误的数据或头。状态 NEW 意味着该信息包已经或将启动新的连接,或者它与尚未用于发送和接收信息包的连接相关联。最后,RELATED 表示该信息包正在启动新连接,以及它与已建立的连接相关联。
netfilter/iptables 的另一个重要优点是,它使用户可以完全控制防火墙配置和信息包过滤。您可以定制自己的规则来满足您的特定需求,从而只允许您想要的网络流量进入系统。
另外,netfilter/iptables 是免费的,这对于那些想要节省费用的人来说十分理想,它可以代替昂贵的防火墙解决方案。
结束语 最新的 Linux 内核 2.4.x 具有 netfilter/iptables 系统这种内置的 IP 信息包过滤工具,它使配置防火墙和信息包过滤变得便宜且方便。netfilter/iptables 系统使其用户可以完全控制防火墙配置和信息包过滤。它允许为防火墙建立可定制化的规则来控制信息包过滤。它还允许配置有状态的防火墙。
参考资料
- 从 Netfilter 网站获取有关 netfilter/iptables 系统的最新信息并下载 iptables 用户空间工具。
- 请访问 Linux 2.4 Packet Filtering HOWTO Web 页面,以获取关于 netfilter/iptables 的快速参考。
- 请参考这篇有关 netfilter/iptables 的详细教程(Iptables Tutorial 1.1.9)。
- 请从 netfilter/iptables FAQ 获取任何有关 netfilter/iptables 问题的答案。
关于作者 Mugdha Vairagade 是一名开发人员,有在多个组织中工作的经验。在无线应用程序开发方面,她拥有相当丰富的经验,而且专长于组件体系结构方面的工作。她对开放源码(Open Source)项目特别感兴趣,并且参与了 Linux Documentation Project、Forum Nokia(WAP 开发人员论坛)和 W3C 的工作。她还编写了有关 Linux 和 XML 技术的技术性文章。可以通过 vmugdha@indiatimes.com 与 Mugdha 联系。
上一页 [1] [2] [Delphi程序]用 DELPHI 为 WINDOWS 做一个带声音的模拟闹钟 [网页制作]为 DBA 推荐几个邮件列表 [MySql]使用 netfilter/iptables 为 Linux(内核 2.4.x)… [MySql]使用 netfilter/iptables 为 Linux(内核 2.4.x )…
|