在 CentOS 系统中,使用 iptables
添加自定义链的步骤如下:
查看现有链:
首先,你可以查看当前的 iptables
规则和链,以了解现有的配置。
sudo iptables -L -n -v
创建自定义链:
使用 iptables
的 -N
选项来创建一个新的自定义链。例如,创建一个名为 my_custom_chain
的链:
sudo iptables -N my_custom_chain
将自定义链插入到现有链中:
你可以将自定义链插入到 INPUT
、OUTPUT
或 FORWARD
链中的某个位置。例如,将 my_custom_chain
插入到 INPUT
链中:
sudo iptables -I INPUT 3 my_custom_chain
这里的 3
表示将自定义链插入到 INPUT
链的第 3 个位置。
向自定义链添加规则: 现在你可以向自定义链中添加规则。例如,拒绝来自特定 IP 地址的所有流量:
sudo iptables -A my_custom_chain -s 192.168.1.100 -j DROP
将自定义链与现有规则关联:
确保自定义链与现有的规则关联起来。例如,如果你在 INPUT
链中插入了自定义链,那么 INPUT
链中的规则会调用 my_custom_chain
。
保存规则:
为了确保在系统重启后规则仍然有效,你需要保存 iptables
规则。CentOS 7 及以上版本使用 firewalld
作为默认防火墙管理工具,因此你需要使用 firewall-cmd
来保存规则:
sudo firewall-cmd --runtime-to-permanent
如果你使用的是 CentOS 6 或其他不支持 firewall-cmd
的版本,可以使用 service iptables save
命令来保存规则:
sudo service iptables save
以下是一个完整的示例:
# 创建自定义链
sudo iptables -N my_custom_chain
# 将自定义链插入到 INPUT 链的第 3 个位置
sudo iptables -I INPUT 3 my_custom_chain
# 向自定义链添加规则
sudo iptables -A my_custom_chain -s 192.168.1.100 -j DROP
# 保存规则(CentOS 7 及以上)
sudo firewall-cmd --runtime-to-permanent
# 保存规则(CentOS 6)
sudo service iptables save
通过这些步骤,你可以在 CentOS 系统中成功添加和使用自定义链。