温馨提示×

CentOS防火墙安装教程

小樊
47
2025-11-27 18:27:00
栏目: 智能运维

CentOS 防火墙安装与配置教程

一 环境说明与准备

  • 本教程面向 CentOS 7/8(使用 firewalld 管理服务),默认包管理器为 YUM/DNF
  • 操作前建议先更新索引并确认系统版本:
    • 更新索引:sudo yum update -y
    • 查看版本:cat /etc/centos-release
  • 若通过 SSH 远程操作,务必先放行 SSH 端口(默认 22/TCP),避免启用防火墙后断开连接。

二 安装与启动 firewalld

  • 检查是否已安装/运行:
    • 状态:sudo systemctl status firewalld
    • 运行状态简查:firewall-cmd --state
  • 安装(如未安装):sudo yum install -y firewalld
  • 启动并设置开机自启:
    • 启动:sudo systemctl start firewalld
    • 开机自启:sudo systemctl enable firewalld
  • 常用服务管理:
    • 重启:sudo systemctl restart firewalld
    • 停止:sudo systemctl stop firewalld
    • 禁用:sudo systemctl disable firewalld
  • 说明:CentOS 7 通常默认已安装 firewalld,可直接启动与启用。

三 常用配置命令

  • 查看与选择区域(zone):
    • 查看所有区域:sudo firewall-cmd --get-zones
    • 查看某区域配置:sudo firewall-cmd --zone=public --list-all
    • 设置默认区域:sudo firewall-cmd --set-default-zone=public
  • 端口管理(永久生效需加 –permanent,修改后执行 sudo firewall-cmd --reload 使生效):
    • 放行端口:sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
    • 放行端口区间:sudo firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent
    • 关闭端口:sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
    • 查询端口是否放行:sudo firewall-cmd --query-port=80/tcp
  • 服务管理(基于预定义服务名,便于与系统服务保持一致):
    • 放行服务:sudo firewall-cmd --zone=public --add-service=http --permanent
    • 关闭服务:sudo firewall-cmd --zone=public --remove-service=http --permanent
  • 运行时与永久规则查看:
    • 查看运行时端口:sudo firewall-cmd --list-ports
    • 查看永久端口:sudo firewall-cmd --permanent --list-ports
  • 重新加载配置:sudo firewall-cmd --reload
  • 远程维护时务必先放行 SSH(22/TCP),再启用或重载规则,避免被锁。

四 安全与验证建议

  • 最小暴露原则:仅放行业务必需端口(如 80/443/22),避免使用过于宽松的策略。
  • 变更可回滚:所有带 –permanent 的规则修改后执行 sudo firewall-cmd --reload;重要变更建议先记录当前规则以便回滚。
  • 连接验证:在本地或跳板机测试端口连通性,例如 curl -I http://服务器IPnc -vz 服务器IP 端口
  • 高安全场景:可将默认区域设为 drop(丢弃未匹配流量),仅对白名单来源/IP 开放必要端口,并严格审计规则。

0