CentOS防火墙恢复配置的方法
导读:CentOS 防火墙恢复配置的方法 一、先确认防火墙栈与当前状态 查看 firewalld 服务状态:sudo systemctl status firewalld(Active 为 active (running 表示运行中,inac...
CentOS 防火墙恢复配置的方法
一、先确认防火墙栈与当前状态
- 查看 firewalld 服务状态:
sudo systemctl status firewalld(Active 为 active (running) 表示运行中,inactive (dead) 表示已停止)。 - 查看 firewalld 运行状态:
firewall-cmd --state(返回 running/not running)。 - 查看当前生效规则:
sudo firewall-cmd --list-all(按区域展示,如 public 区域)。 - 若为 CentOS 6 或使用 iptables 的场景:
sudo service iptables status。
以上命令用于判断当前使用的是 firewalld 还是 iptables,从而选择对应的恢复路径。
二、使用 firewalld 的恢复路径
- 重启服务以恢复运行态配置:
sudo systemctl restart firewalld(适用于规则已变更但未生效或出现异常时)。 - 完全重置为默认区域与空规则(会清空现有规则,谨慎):
- 将默认区域设为 public:
sudo firewall-cmd --set-default-zone=public - 获取当前区域:
cur_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=all - 使重置生效:
sudo firewall-cmd --reload
- 将默认区域设为 public:
- 确保开机自启处于期望状态:
sudo 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 -Z - 允许回环:
sudo iptables -I INPUT 1 -i lo -j ACCEPT - 允许已建立连接:
sudo iptables -I INPUT 2 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT - 允许 SSH(示例端口 22):
sudo iptables -I INPUT 3 -p tcp --dport 22 -j ACCEPT - 默认拒绝入站:
sudo iptables -A INPUT -j DROP
- 清空:
- 保存为默认配置:
sudo service iptables save
- 保存现有规则(可选,备份):
- 确保开机自启:
sudo chkconfig iptables on;如需临时放行某端口,可在规则中插入相应 ACCEPT 规则后再保存。
四、回滚到已备份配置
- firewalld:
- 若之前导出了规则:
sudo firewall-cmd --permanent --new-zone=backup - 导入到备份区域:
sudo firewall-cmd --permanent --zone=backup --load-zone-from-file=/path/backup.xml - 切换默认区域或复制规则回默认区域,然后
sudo firewall-cmd --reload。
- 若之前导出了规则:
- iptables:
- 直接使用备份文件覆盖:
sudo cp /path/iptables.bak /etc/sysconfig/iptables & & sudo service iptables restart(路径与文件名以实际备份为准)。
- 直接使用备份文件覆盖:
五、验证与注意事项
- 验证:
- firewalld:
firewall-cmd --state应为 running;firewall-cmd --list-all应显示预期的服务/端口;必要时sudo firewall-cmd --reload。 - iptables:
sudo service iptables status显示规则已加载;sudo iptables -L -n可查看链规则。
- firewalld:
- 注意事项:
- 执行清空或重置规则前,务必保留一份当前规则备份,并确保 SSH(22/TCP) 等关键通道在重置后仍然可达,避免被锁死。
- 修改规则后,firewalld 需要
firewall-cmd --reload或重启服务;iptables 需要service iptables restart才会生效。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS防火墙恢复配置的方法
本文地址: https://pptw.com/jishu/788028.html
