在 Ubuntu 中,使用 iptables 设置自定义链可以帮助你更好地组织和管理防火墙规则。以下是创建和使用自定义链的步骤:
首先,你可以查看当前的 iptables 链,以了解可用的默认链和它们的功能。
sudo iptables -L --line-numbers
使用 iptables 命令创建一个新的自定义链。例如,创建一个名为 MY_CUSTOM_CHAIN 的链:
sudo iptables -N MY_CUSTOM_CHAIN
你可以向自定义链添加规则。例如,拒绝所有进入自定义链的 TCP 连接:
sudo iptables -A MY_CUSTOM_CHAIN -p tcp -j DROP
你可以将自定义链插入到现有的链中,例如 INPUT 链。假设你想在 INPUT 链的第 3 条规则之后插入自定义链:
sudo iptables -I INPUT 3 -j MY_CUSTOM_CHAIN
你可以通过发送一些网络流量来测试自定义链是否按预期工作。例如,尝试连接到你的服务器上的某个端口,看看是否被拒绝。
默认情况下,iptables 规则在重启后会丢失。你可以使用 iptables-persistent 工具来保存规则。
首先,安装 iptables-persistent:
sudo apt-get update
sudo apt-get install iptables-persistent
在安装过程中,选择保存当前规则。
以下是一个完整的示例,展示了如何创建和使用自定义链:
# 创建自定义链
sudo iptables -N MY_CUSTOM_CHAIN
# 向自定义链添加规则
sudo iptables -A MY_CUSTOM_CHAIN -p tcp --dport 80 -j DROP
# 将自定义链插入到 INPUT 链的第 3 条规则之后
sudo iptables -I INPUT 3 -j MY_CUSTOM_CHAIN
# 查看规则以确认
sudo iptables -L --line-numbers
通过这些步骤,你可以在 Ubuntu 中成功创建和使用自定义链来管理你的防火墙规则。