CentOS防火墙更新指南
导读:CentOS 防火墙更新指南 一 适用范围与准备 适用系统:以 CentOS 7 为主,默认使用 firewalld 管理服务与规则;CentOS 6 及更早版本通常使用 iptables,命令与思路不同。操作前建议先确认系统与防火墙组件...
CentOS 防火墙更新指南
一 适用范围与准备
- 适用系统:以 CentOS 7 为主,默认使用 firewalld 管理服务与规则;CentOS 6 及更早版本通常使用 iptables,命令与思路不同。操作前建议先确认系统与防火墙组件版本:
cat /etc/centos-release、firewall-cmd --version、systemctl status firewalld。为避免锁死远程连接,务必保留一条当前 SSH 会话,必要时通过 控制台/VNC 备用通道操作。
二 更新防火墙规则的标准流程
- 查看状态与现有规则
- 服务状态:
systemctl status firewalld或firewall-cmd --state - 当前生效规则:
firewall-cmd --list-all - 区域与接口:
firewall-cmd --get-active-zones、firewall-cmd --get-zone-of-interface=eth0
- 服务状态:
- 新增或调整规则(永久生效)
- 开放端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent - 关闭端口:
firewall-cmd --zone=public --remove-port=80/tcp --permanent - 按服务开放:
firewall-cmd --permanent --add-service=ssh - 端口区间:
firewall-cmd --zone=public --add-port=10000-20000/tcp --permanent - 特定来源访问某端口(富规则):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port port="3306" protocol="tcp" accept'
- 开放端口:
- 使配置生效
- 热加载(不断开现有连接):
firewall-cmd --reload - 完全重载(类似重启服务,可能中断会话):
firewall-cmd --complete-reload
- 热加载(不断开现有连接):
- 验证
- 端口是否开放:
firewall-cmd --query-port=80/tcp - 查看已开放端口:
firewall-cmd --list-ports - 查看完整规则:
firewall-cmd --list-all
- 端口是否开放:
- 服务管理
- 启动/停止/重启:
systemctl start|stop|restart firewalld - 开机自启/禁用:
systemctl enable|disable firewalld
- 启动/停止/重启:
三 升级 firewalld 软件包
- 在线升级(推荐)
- 执行:
sudo yum update firewalld -y,随后sudo systemctl restart firewalld - 升级后核对版本:
firewall-cmd --version与systemctl status firewalld
- 执行:
- 离线升级(无外网环境)
- 在一台可联网同版本主机下载所需 RPM 包及其依赖,拷贝至目标机
- 安装(示例):
sudo rpm -ivh ebtables-*.rpm libselinux-python-*.rpm python-slip-*.rpm python-slip-dbus-*.rpm firewalld-*.rpm - 重启服务:
sudo systemctl restart firewalld - 注意:离线包需与系统版本、架构匹配,避免依赖冲突;必要时使用
--nodeps --force仅作应急,随后尽快补齐依赖并回归正常安装方式。
四 回滚与应急
- 快速回滚到上次持久化配置
- 重载当前配置:
firewall-cmd --reload - 重启服务以恢复运行时状态:
systemctl restart firewalld
- 重载当前配置:
- 紧急放行与阻断
- 立即拒绝所有包(应急阻断):
firewall-cmd --panic-on - 取消紧急模式:
firewall-cmd --panic-off
- 立即拒绝所有包(应急阻断):
- 版本回退(离线场景)
- 使用已保存的旧版 RPM 包执行
rpm -Uvh --oldpackage firewalld-< 旧版本> .rpm,随后重启服务
- 使用已保存的旧版 RPM 包执行
- 风险提示
- 生产环境变更前先备份规则与关键配置,变更窗口内保持控制台/带外管理可达,避免误删 SSH 导致失联。
五 常见问题与排查
- 规则不生效
- 检查是否加了
--permanent,修改永久配置后需firewall-cmd --reload;区分运行时与持久化配置差异。
- 检查是否加了
- 区域与接口绑定
- 确认接口所属区域:
firewall-cmd --get-zone-of-interface=eth0;必要时在对应区域添加规则或使用--zone=显式指定。
- 确认接口所属区域:
- 端口范围与服务名
- 端口区间:
--add-port=10000-20000/tcp;服务名方式:--add-service=http|https|ssh(可用firewall-cmd --get-services查看可用服务)。
- 端口区间:
- 配置文件路径
- 区域配置示例:
/etc/firewalld/zones/public.xml,变更后可用firewall-cmd --reload使其生效。
- 区域配置示例:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS防火墙更新指南
本文地址: https://pptw.com/jishu/778707.html
