在 CentOS 系统中,使用 iptables 添加自定义链的步骤如下:
查看现有链:
首先,你可以查看当前的 iptables 规则链,以确定你想要插入新链的位置。
sudo iptables -L --line-numbers
插入新链:
使用 iptables 的 -N 选项来创建一个新的链。例如,创建一个名为 my_new_chain 的新链:
sudo iptables -N my_new_chain
定义新链的行为: 为新链定义默认策略(例如,接受或拒绝流量)。
sudo iptables -A my_new_chain -j DROP # 拒绝所有流量
将新链插入到现有链中:
使用 -A 选项将新链插入到现有的某个链中。例如,将 my_new_chain 插入到 INPUT 链的第 3 条规则之后:
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -I INPUT 3 -j my_new_chain
在新链中添加规则: 现在你可以在新链中添加具体的规则。例如:
sudo iptables -A my_new_chain -p tcp --dport 80 -j ACCEPT # 允许 HTTP 流量
sudo iptables -A my_new_chain -p tcp --dport 443 -j ACCEPT # 允许 HTTPS 流量
保存规则:
为了确保在系统重启后规则仍然有效,你需要保存 iptables 规则。CentOS 7 及以上版本使用 firewalld 服务来管理防火墙规则,因此你需要使用 firewall-cmd 来保存规则。
sudo firewall-cmd --runtime-to-permanent
sudo firewall-cmd --reload
如果你使用的是 CentOS 6 或其他不支持 firewalld 的版本,可以使用 service iptables save 命令来保存规则:
sudo service iptables save
通过以上步骤,你就可以在 CentOS 系统中使用 iptables 添加自定义链并配置相应的规则。