在CentOS系统中,为了确保iptables规则在系统重启后仍然有效,可以采用以下几种方法进行持久化:
iptables-services 和 firewalld安装 iptables-services 和 firewalld:
sudo yum install iptables-services firewalld
启动并启用 firewalld 服务:
sudo systemctl start firewalld
sudo systemctl enable firewalld
使用 firewall-cmd 命令添加防火墙规则:
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
重新加载防火墙配置:
sudo firewall-cmd --reload
禁用并停止 iptables 服务(可选):
sudo systemctl stop iptables
sudo systemctl disable iptables
通过以上步骤,firewalld 服务管理的iptables规则将会持久化,系统重启后规则仍然有效。
保存当前的iptables规则到文件:
sudo iptables-save > /etc/sysconfig/iptables
创建一个脚本文件,例如 /etc/rc.d/rc.local,并在其中添加以下内容:
#!/bin/sh
/sbin/iptables-restore < /etc/sysconfig/iptables
exit 0
赋予脚本执行权限:
sudo chmod +x /etc/rc.d/rc.local
确保 /etc/rc.d/rc.local 在系统启动时执行(通常默认启用)。
iptables-persistent 包安装 iptables-persistent 包:
sudo yum install iptables-persistent
保存当前的iptables规则:
sudo service iptables save
查看保存的规则文件:
默认情况下,规则会被保存到 /etc/sysconfig/iptables 文件中。
重启系统后,规则会自动加载。
firewalld 服务的额外说明(适用于CentOS 7及以上版本)firewalld 服务会自动管理防火墙规则,并将它们保存到配置文件中,这些文件通常位于 /etc/firewalld/zones/ 目录下。firewall-cmd 命令可以添加、删除或修改规则,并使用 firewall-cmd --runtime-to-permanent 命令将当前运行时的规则保存为永久规则。通过以上方法,你可以确保iptables规则在CentOS系统中生效并持久化。在进行任何防火墙规则的更改之前,请确保你了解这些更改的影响,并备份现有的规则。