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 的流量
Shell

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

4. 保存 iptables 规则

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


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

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


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

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

5. 注意事项

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

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