linux主机防火墙需满足等保2.0等合规要求,核心是firewalld配置与日志审计双轨并行:设默认drop策略、开启拒绝日志并保留90天;按服务名最小化开放;用rich rule细粒度控制;通过auditd审计配置变更。

要让 Linux 主机防火墙满足安全审计与合规要求(如等保2.0、ISO 27001、PCI DSS),不能只停留在“能通能拦”的层面,关键在于可追溯、可验证、最小化、留痕完整。核心是 firewalld 配置 + 日志审计双轨并行。
设置严格默认策略并启用拒绝日志
默认区域应采用高防护基线,避免隐式放行:
- 执行 firewall-cmd --set-default-zone=drop --permanent,使所有未明确允许的入站流量被静默丢弃
- 开启拒绝日志:运行 firewall-cmd --set-log-denied=all(记录所有被拒数据包的五元组)
- 重载配置:firewall-cmd --reload
- 确认日志路径:/var/log/firewalld.log,该文件需保留至少90天(符合PCI DSS/HIPAA要求)
按需开放服务,禁用端口直写
合规性强调“最小权限”,必须用服务名而非端口号管理规则:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 只添加必需服务,例如:firewall-cmd --zone=public --add-service=ssh --permanent
- 禁止直接开放端口(如
--add-port=8080/tcp),除非对应服务未预定义 - 自定义服务需以 XML 文件形式定义在 /etc/firewalld/services/,便于统一审计和版本管理
- 每次添加后执行 firewall-cmd --runtime-to-permanent 确保规则持久化
绑定富规则实现细粒度访问控制
仅靠服务级规则不够,需用 rich rule 限定源、协议、目的等维度:
- 限制 SSH 仅来自运维网段:firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="10.10.5.0/24" service name="ssh" accept' --permanent
- 拒绝已知恶意 IP:firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="203.0.113.42" reject' --permanent
- 所有富规则必须带
--permanent,且 reload 后用 firewall-cmd --list-all 核对生效状态
集成 auditd 实现防火墙配置变更审计
防火墙本身不记录“谁改了规则”,需通过系统审计补全操作链:
- 监控 firewalld 配置目录:auditctl -w /etc/firewalld/ -p wa -k firewalld_config
- 将该规则写入 /etc/audit/rules.d/20-firewalld.rules 并执行 augenrules --load
- 后续可通过 ausearch -k firewalld_config 查看谁、何时、修改了哪些文件(如 zones、services)
- 结合 sudo 日志(/var/log/sudo.log),可完整还原管理员操作行为










