在 CentOS 系统中,使用 iptables
自定义链可以帮助你更好地组织和管理防火墙规则。以下是自定义链的基本步骤:
查看现有链: 首先,你可以查看当前的链,以确保你不会创建一个已经存在的链。
iptables -L --line-numbers
创建自定义链:
使用 iptables
命令创建一个新的自定义链。例如,创建一个名为 MY_CUSTOM_CHAIN
的链:
iptables -N MY_CUSTOM_CHAIN
添加规则到自定义链:
你可以向自定义链中添加规则。例如,向 MY_CUSTOM_CHAIN
中添加一条规则,拒绝来自特定 IP 地址的流量:
iptables -A MY_CUSTOM_CHAIN -s 192.168.1.100 -j DROP
将自定义链应用到现有链:
你需要将自定义链应用到现有的链中。例如,将 MY_CUSTOM_CHAIN
应用到 INPUT
链:
iptables -A INPUT -j MY_CUSTOM_CHAIN
这样,所有进入 INPUT
链的流量都会被跳转到 MY_CUSTOM_CHAIN
进行处理。
查看自定义链: 你可以查看自定义链中的规则,以确保它们已经正确添加:
iptables -L MY_CUSTOM_CHAIN --line-numbers
保存规则:
为了确保在系统重启后规则仍然有效,你需要保存 iptables
规则。CentOS 7 及以上版本使用 firewalld
服务来管理防火墙规则,因此你需要使用 firewall-cmd
命令来保存规则。
firewall-cmd --runtime-to-permanent
如果你使用的是 CentOS 6 或其他不支持 firewalld
的版本,可以使用 service iptables save
命令来保存规则:
service iptables save
以下是一个完整的示例:
# 创建自定义链
iptables -N MY_CUSTOM_CHAIN
# 向自定义链添加规则
iptables -A MY_CUSTOM_CHAIN -s 192.168.1.100 -j DROP
# 将自定义链应用到 INPUT 链
iptables -A INPUT -j MY_CUSTOM_CHAIN
# 查看自定义链中的规则
iptables -L MY_CUSTOM_CHAIN --line-numbers
# 保存规则(CentOS 7 及以上)
firewall-cmd --runtime-to-permanent
# 保存规则(CentOS 6)
service iptables save
通过这些步骤,你可以在 CentOS 系统中成功创建和应用自定义的 iptables
链。