1. 了解iptables基本概念

iptables是Linux系统中用于配置网络防火墙规则的工具。它通过定义一系列的规则来控制进入和离开系统的数据包。iptables可以对数据包进行过滤、转发、重定向等操作。iptables规则基于表(table)、链(chain)和规则(rule)三个概念。常见的表有filter(默认表,用于控制数据包是否被接受或丢弃)、nat(网络地址转换表,用于修改数据包的源或目的地址)、mangle(修改数据包的内容)等。

2. 基本命令与操作

iptables的基本命令包括:

  • iptables -L:列出当前的iptables规则
  • iptables -A:添加一条规则到指定的链中
  • iptables -I:在指定链的指定位置插入一条规则
  • iptables -D:删除指定的规则
  • iptables -F:清空指定表中的所有规则
  • iptables -P:设置默认策略,即当没有匹配的规则时采取的行动

3. 实际配置示例

下面是一个实际配置iptables的示例,假设我们需要允许所有来自192.168.1.0/24子网的流量,并且阻止所有其他IP的访问。


iptables -P INPUT DROP  # 设置默认策略为丢弃所有进入的流量
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT  # 允许192.168.1.0/24子网的流量
iptables -A INPUT -j DROP  # 丢弃所有其他IP的流量

在这个示例中,我们首先设置了默认策略为丢弃所有进入的流量,然后添加了一条规则允许特定子网的流量,最后添加了一条规则丢弃所有其他IP的流量。

4. 保存iptables规则

iptables规则在重启后默认不会保留,需要使用iptables-save和iptables-restore工具来保存和恢复规则。保存规则的命令如下:


iptables-save > /etc/iptables/rules.v4

在系统启动时,可以通过iptables-restore工具来恢复规则:


iptables-restore < /etc/iptables/rules.v4

确保iptables-restore命令在启动脚本中被调用,以便在系统启动时自动恢复规则。

5. 注意事项

配置iptables时需要注意以下几点:

  • 在添加规则时,规则是按照顺序匹配的,一旦匹配到规则,后续规则将不再检查。
  • 默认策略非常重要,它决定了当没有匹配到任何规则时的行为。
  • 在修改防火墙规则时,建议先在测试环境中进行,避免对生产环境造成不必要的影响。
  • 使用iptables-save和iptables-restore工具来保存和恢复规则,确保规则的持久性。