iptables 是 Linux 系统中用于配置内核防火墙的一个命令行工具。它允许系统管理员定义规则,这些规则决定了如何处理经过网络接口的数据包。iptables 规则被组织成不同的链(chains),每个链包含一系列的规则,这些规则匹配特定的数据包并对其进行相应的处理。
以下是 iptables 中常见的链:
要管理这些链,你可以使用 iptables 命令及其各种选项。以下是一些基本的 iptables 命令示例:
iptables -L [chain]
例如,要查看 INPUT 链中的规则,可以使用:
iptables -L INPUT
iptables -A chain rule-specification
例如,要在 INPUT 链中添加一条拒绝所有来自特定 IP 地址的数据包的规则,可以使用:
iptables -A INPUT -s 192.168.1.100 -j DROP
iptables -D chain rule-specification
例如,要从 INPUT 链中删除之前添加的拒绝特定 IP 地址的规则,可以使用:
iptables -D INPUT -s 192.168.1.100 -j DROP
修改规则通常需要先删除旧规则,然后再添加新规则。
iptables -F [chain]
例如,要清空 INPUT 链中的所有规则,可以使用:
iptables -F INPUT
iptables -P chain policy
例如,要将 INPUT 链的默认策略设置为 DROP,可以使用:
iptables -P INPUT DROP
在某些 Linux 发行版中,iptables 规则在系统重启后不会自动保存。你可以使用 iptables-save 和 iptables-restore 命令来保存和恢复规则。
保存规则:
iptables-save > /etc/iptables/rules.v4
恢复规则:
iptables-restore < /etc/iptables/rules.v4
请注意,具体的命令和文件路径可能会因不同的 Linux 发行版而异。在使用 iptables 时,请确保你有足够的权限(通常需要 root 权限),并且在进行任何更改之前备份现有的规则。