企业级Linux服务器防火墙配置核心是“默认拒绝、按需放行、精准控制”,须设public为默认区域并设目标为DROP,按网络平面划分区域绑定接口,用预定义或自定义服务替代裸端口,SSH和Web后台必须结合富规则限制源IP并拒绝非白名单连接。

企业级Linux服务器防火墙配置,核心是“默认拒绝、按需放行、精准控制”。不能只开几个端口就完事,必须结合区域划分、服务抽象和富规则,形成可落地、可审计、可自动化的防护基线。
明确默认区域与基础策略
firewalld默认区域应设为public或更严格等级(如drop),避免使用trusted等高信任区域用于公网接口。生产环境推荐:
- 执行
firewall-cmd --set-default-zone=public --permanent,再firewall-cmd --reload - 立即设置该区域默认目标为
DROP:firewall-cmd --zone=public --set-target=DROP --permanent - 禁用所有预设服务,只显式添加业务必需项,例如仅允许
ssh、https,不开放http或dhcpv6-client
按业务场景划分区域并绑定接口
单一区域无法满足混合网络环境需求。应将不同网络平面隔离管理:
- 公网网卡(如ens3)绑定
public区域,仅放行运维SSH和业务HTTPS - 内网管理网卡(如ens4)绑定
internal区域,允许ssh、mysql、rsync等内部服务 - 数据库后端通信网段(如10.10.20.0/24)通过
firewall-cmd --zone=internal --add-source=10.10.20.0/24 --permanent精确授权 - 禁止跨区混用,例如不得在
public区域直接添加mysql服务
用服务名代替端口号,禁用裸端口操作
直接写--add-port=8080/tcp易出错且难审计。应优先使用firewalld内置服务定义:
- 查看可用服务:
firewall-cmd --get-services - 启用标准服务:
firewall-cmd --zone=public --add-service=https --permanent - 自定义服务(如API网关端口9090):在
/etc/firewalld/services/api-gateway.xml中定义,再firewall-cmd --reload-services - 禁用
--add-port类命令,统一纳入CI/CD配置模板管控
关键服务加白+源IP限制(富规则)
SSH和Web管理后台必须做二次收敛,不能仅靠开放服务:
- 限制SSH仅允许可信运维网段:
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" service name="ssh" accept' --permanent - 对Web后台(如/manager)增加IP白名单:
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="203.0.113.5" port port="443" protocol="tcp" accept' --permanent - 拒绝非白名单的全部SSH连接:
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" service name="ssh" reject' --permanent - 所有富规则须带
--permanent,最后执行firewall-cmd --runtime-to-permanent固化


















