7.2. 使用 iptables

使用 iptables 的第一步是启动 iptables 服务。这可以使用以下命令进行:

service iptables start

警告警告
 

你应该使用以下命令关闭 ip6tables 服务才能使用 iptables 服务:

service ip6tables stop
chkconfig ip6tables off

要使 iptables 在系统引导时默认启动,你必须使用 chkconfig 来改变服务的运行级别状态。

chkconfig --level 345 iptables on

iptables 的语法被分成几个层次。主要层次为“链”(chain)。“链”指定处理分组的状态。其用法为:

iptables -A chain -j target

-A 在现存的规则集合内后补一条规则。chain 是规则所在“链”的名称。iptables 中有三个内建的链(即影响每一个在网络中经过的分组的链):INPUT、OUTPUT、和 FORWARD。这些链是永久性的,不能被删除。-j target 选项指定 iptables 应该“跳”(jump)到规则集中的哪条规则。内建的目标有:ACCEPT、DROP、和 REJECT。

-N 选项可以被用来创建新链(又称用户定义链)。创建新链在定制详尽或复杂规则方面很有用。

7.2.1. 基本防火墙政策

在一开始就建立的某些基本政策为建构更详细的用户定义的规则奠定了基础。iptables 使用政策(policy, -P)来创建默认规则。对安全敏感的管理员通常想采取放弃所有分组的政策,只逐一允许指定分组。以下规则阻塞网络上所有的出入分组。

iptables -P INPUT DROP
iptables -P OUTPUT DROP

此外,还推荐你拒绝所有转发分组(forwarded packets) — 要从防火墙被选路发送到它的目标节点的网络交通 — 以便限制内部客户对互联网的无心暴露。要达到这个目的,使用以下规则:

iptables -P FORWARD DROP 

设置了政策链后,为你的特定网络和安全需要创建新规则。以下各节概述了一些你在建构 iptables 防火墙时可能要实现的规则。

7.2.2. 保存和恢复 iptables 规则

防火墙规则只在计算机处于开启状态时才有效。如果系统被重新引导,这些规则就会自动被清除并重设。要保存规则以便今后载入,请使用以下命令:

/sbin/service iptables save

保存在 /etc/sysconfig/iptables 文件中的规则会在服务启动或重新启动时(包括机器被重新引导时)被应用。