本章要点理解 firewalld 防火墙的设计思想与工作机制掌握 firewalld 区域Zone的作用与使用场景熟练使用 firewall-cmd 命令行配置防火墙了解 firewall-config 图形界面基本操作能够完成服务、端口、网卡、ICMP 等规则配置前言在现代 Linux 发行版中firewalld 已成为默认的动态防火墙管理服务。相比于传统 iptablesfirewalld 提供了区域化管理、动态更新规则、运行时 / 永久双配置模式等更加便捷的特性无需重启服务即可生效大幅提升了防火墙管理的灵活性与安全性。本章将从 firewalld 的基础概念入手详细讲解它与 iptables 的关系、区域机制、两种配置工具的使用方法并通过完整实例演示企业环境下的防火墙部署方案。一、firewalld 防火墙基础1. firewalld 简介firewalld 是 Linux 系统下动态管理的防火墙服务用于维护网络访问规则实现数据包过滤、放行、端口映射、地址伪装等安全功能。它的核心特点支持IPv4/IPv6双栈支持区域Zone安全模型支持运行时Runtime和永久Permanent两种配置支持动态更新规则不中断现有连接提供命令行工具firewall-cmd和图形工具firewall-config2. firewalld 与 iptables 的关系netfilter内核层面的数据包过滤框架。iptables / firewalld都是用户态管理工具用来向 netfilter 下发规则。两者不能同时启用同一系统只能选择一种防火墙服务。区别总结iptables 清空后重新加载所有规则容易断开连接。firewalld 只更新变化的规则支持动态加载连接不中断。iptables 配置文件/etc/sysconfig/iptablesfirewalld 配置文件/etc/firewalld/和/usr/lib/firewalld/二、firewalld 网络区域Zonefirewalld 通过区域来划分网络信任级别每个区域拥有独立的放行策略简化管理员配置。1. 区域匹配顺序当数据包进入系统时优先匹配源 IP 绑定的区域其次匹配网卡绑定的区域最后使用默认区域默认是 public2. 常用区域及默认策略表格区域名称安全策略说明trusted放行所有流量internal信任内网仅放行 ssh /mdns/dhcpv6-client 等home家庭网络同 internalwork工作网络仅放行 ssh /ipp-client/dhcpv6-clientpublic公共网络默认仅放行 ssh /dhcpv6-clientexternal网关外部网络开启 SNATdmz非军事区仅放行 sshblock拒绝所有入站流量直接拒绝drop直接丢弃所有入站流量无响应三、图形工具 firewall-config1. 安装与启动bash运行dnf install -y firewall-config启动应用程序 → 防火墙配置2. 界面结构运行时配置Runtime临时生效重启失效永久配置Permanent写入配置文件重启依然有效区域配置服务、端口、协议、伪装、端口转发、ICMP 过滤服务配置预定义服务的端口、模块3. 常用功能切换默认区域为网卡绑定区域放行服务 / 端口配置端口转发启用 IP 伪装过滤 ICMP禁 ping四、命令行工具 firewall-cmd1. 基础信息查询bash运行firewall-cmd --get-zones # 查看所有区域 firewall-cmd --get-services # 查看所有预定义服务 firewall-cmd --get-icmptypes # 查看所有ICMP类型 firewall-cmd --get-default-zone # 查看默认区域 firewall-cmd --get-active-zones # 查看已激活区域2. 区域管理bash运行firewall-cmd --set-default-zonepublic # 设置默认区域 firewall-cmd --zonepublic --add-interfaceens33 # 绑定网卡 firewall-cmd --zonepublic --change-interfaceens33 # 修改网卡区域 firewall-cmd --zonepublic --remove-interfaceens33 # 解绑网卡3. 服务管理bash运行firewall-cmd --add-servicehttp # 放行HTTP服务 firewall-cmd --remove-servicehttp # 移除HTTP服务 firewall-cmd --add-servicehttp --permanent # 永久放行4. 端口管理bash运行firewall-cmd --add-port8080/tcp firewall-cmd --remove-port8080/tcp firewall-cmd --add-port20000-25000/udp5. 禁用 PingICMP 过滤bash运行firewall-cmd --add-icmp-blockecho-request6. 配置模式bash运行firewall-cmd --reload # 加载永久配置到运行时 firewall-cmd --runtime-to-permanent # 保存当前配置为永久五、firewalld 企业应用实例实验环境网关服务器双网卡ens33外网→ external 区域ens37内网→ trusted 区域Web 服务器单网卡 → dmz 区域要求仅开放 HTTPS (443)SSH 端口改为 12345禁止 Ping内网可访问外网受限1. 网关配置bash运行systemctl stop iptables systemctl start firewalld systemctl enable firewalld firewall-cmd --set-default-zoneexternal firewall-cmd --zonetrusted --add-interfaceens37 --permanent firewall-cmd --zoneexternal --add-port12345/tcp --permanent firewall-cmd --zoneexternal --remove-servicessh --permanent firewall-cmd --zoneexternal --add-icmp-blockecho-request --permanent firewall-cmd --reload2. Web 服务器配置bash运行firewall-cmd --set-default-zonedmz firewall-cmd --zonedmz --add-servicehttps --permanent firewall-cmd --zonedmz --add-port12345/tcp --permanent firewall-cmd --zonedmz --remove-servicessh --permanent firewall-cmd --zonedmz --add-icmp-blockecho-request --permanent firewall-cmd --reload本章总结本章系统介绍了firewalld 防火墙的核心知识与配置方法基础架构firewalld 是基于 netfilter 的动态防火墙与 iptables 作用相同但管理方式更灵活支持区域、运行时 / 永久双模式。区域机制区域是 firewalld 的核心通过信任级别划分网络public、dmz、trusted、external是最常用区域。命令管理firewall-cmd掌握区域、服务、端口、网卡、ICMP 等配置是日常运维最常用技能。重点命令--add-service、--add-port、--reload、--permanent。图形工具firewall-config适合快速查看与修改规则支持服务、端口、转发、伪装等功能。企业实战能够完成多区域、多网卡、自定义端口、禁 ping、内网 / 外网隔离等安全部署。