先确定哪套在生效
Linux 上的防火墙配置有四套常见入口:firewalld、ufw、nftables 与 iptables。不同发行版默认不同,同一台机器上还可能并存多套,规则互相覆盖或相互叠加,只看其中一套会得出错误结论。核查的第一步不是数规则,而是确认系统实际使用哪一套、它的默认策略是什么、规则数量是否与业务相符。
基本信息
| 加固项 | 主机边界防护 |
|---|---|
| 适用平台 | Linux(firewalld、ufw、nftables、iptables) |
| 风险等级 | 高 |
| 判读 | 防火墙启用、默认拒绝、规则与业务一致 |
| 报告口径 | 本机规则与云侧安全组分别记录 |
典型使用场景
- 基线核查:确认主机防火墙处于启用状态且默认策略是拒绝
- 规则清理:长期累积的临时放行规则容易失控,需要定期复核
- 故障排查:端口不通时先确认是防火墙挡了还是服务没监听
- 等保边界防护:需要提供本机与云侧两层边界的配置证据
- 容器环境排查:确认容器发布端口是否绕过了主机规则
核查命令
核查命令
systemctl is-active firewalld 2>/dev/null; firewall-cmd --list-all 2>/dev/null
ufw status verbose 2>/dev/null
nft list ruleset 2>/dev/null | head -30
iptables -S 2>/dev/null | head -30
systemctl is-enabled firewalld ufw 2>/dev/null # 确认是否开机自启四套工具对照
| 工具 | 查看命令 | 判读要点 |
|---|---|---|
| firewalld | firewall-cmd --list-all | 看 zone 与 services、ports,默认 zone 决定策略 |
| ufw | ufw status verbose | 看默认 incoming 策略与已放行规则 |
| nftables | nft list ruleset | 看表与链的默认策略,注意与 iptables 的兼容层 |
| iptables | iptables -S | 看 INPUT、FORWARD 的默认策略与规则顺序 |
| 共存情况 | 多套同时安装 | 以实际拦截效果验证,而非规则文本 |
云主机要做两层记录:本机防火墙与云安全组是彼此独立的边界,任何一层都可能单独造成端口不通或意外暴露。报告里分「本机规则 / 云侧规则」两栏,并注明各自覆盖范围,避免把两层的责任混在一起。
容器运行时会自动写规则:Docker 会在 nat 表插入转发规则,使发布出去的端口绕过主机过滤链。核查时先把容器产生的规则单独剔除,再对本机自主配置的规则下结论,否则容易误判为「防火墙已放开」。
判读与留档
规则数量不是结论,规则来源才是。建议把输出整理成三列:放行端口、来源范围、业务归属。来源为任意地址且端口属于数据库、缓存、管理类的条目优先处置。留档时同时保存命令与原始输出,单纯截图不利于后续比对与复核。