CentOS 防火墙恢复配置的方法
一、先确认防火墙栈与当前状态
sudo systemctl status firewalld(Active 为 active (running) 表示运行中,inactive (dead) 表示已停止)。firewall-cmd --state(返回 running/not running)。sudo firewall-cmd --list-all(按区域展示,如 public 区域)。sudo service iptables status。二、使用 firewalld 的恢复路径
sudo systemctl restart firewalld(适用于规则已变更但未生效或出现异常时)。sudo firewall-cmd --set-default-zone=publiccur_zone=$(firewall-cmd --get-default-zone)sudo firewall-cmd --permanent --zone=$cur_zone --remove-service=all && sudo firewall-cmd --permanent --zone=$cur_zone --remove-port=all && sudo firewall-cmd --permanent --zone=$cur_zone --remove-forward-port=all && sudo firewall-cmd --permanent --zone=$cur_zone --remove-rich-rule=allsudo firewall-cmd --reloadsudo systemctl enable --now firewalld(开启并立即启动),或 sudo systemctl disable firewalld(禁止开机自启)。firewall-cmd --list-all 应仅保留默认区域的基础设置。三、使用 iptables 的恢复路径(CentOS 6 或已切换到 iptables 的场景)
sudo service iptables restart(读取 /etc/sysconfig/iptables 的当前配置)。sudo service iptables save(写入 /etc/sysconfig/iptables)sudo iptables -F && sudo iptables -X && sudo iptables -Zsudo iptables -I INPUT 1 -i lo -j ACCEPTsudo iptables -I INPUT 2 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTsudo iptables -I INPUT 3 -p tcp --dport 22 -j ACCEPTsudo iptables -A INPUT -j DROPsudo service iptables savesudo chkconfig iptables on;如需临时放行某端口,可在规则中插入相应 ACCEPT 规则后再保存。四、回滚到已备份配置
sudo firewall-cmd --permanent --new-zone=backupsudo firewall-cmd --permanent --zone=backup --load-zone-from-file=/path/backup.xmlsudo firewall-cmd --reload。sudo cp /path/iptables.bak /etc/sysconfig/iptables && sudo service iptables restart(路径与文件名以实际备份为准)。五、验证与注意事项
firewall-cmd --state 应为 running;firewall-cmd --list-all 应显示预期的服务/端口;必要时 sudo firewall-cmd --reload。sudo service iptables status 显示规则已加载;sudo iptables -L -n 可查看链规则。firewall-cmd --reload 或重启服务;iptables 需要 service iptables restart 才会生效。