两层防火墙各自管什么
云安全组工作在实例的网络边界,管的是“谁能从哪个网段访问哪些端口”;主机防火墙工作在操作系统内部,可以按进程、网段、容器网络做更细粒度的控制。两层职责不同,不是冗余配置:安全组管不到同 VPC 内被攻陷实例的横向扫描,主机层管不到实例被整机替换或镜像层的问题。关键系统两层都要有,并且规则要能对齐。
基本信息
| 适用平台 | 云主机(阿里云/腾讯云/AWS 等)+ Linux 与 Windows 主机 |
|---|---|
| 边界层 | 云安全组、网络 ACL、云防火墙 |
| 主机层 | iptables/nftables、firewalld、ufw、Windows 防火墙 |
| 基线 | 边界与主机双层规则且职责清晰 |
| 风险等级 | 中 |
典型使用场景
- 新业务上线:先定安全组暴露面,再定主机层细化规则
- 横向移动防护:主机层限制仅特定网段可访问应用端口
- 变更管理:确认某次放行到底改在哪一层,避免影子规则
- 排障定位:访问不通时按“公网→安全组→主机层→服务”逐层排查
- 合规核查:区域边界访问控制是否双重落实
分层核对清单
分层核对清单
# 云安全组:在控制台或云 API 导出,逐条记录方向/协议/端口/来源
echo '== 主机层 =='
sudo iptables -S 2>/dev/null | head -30
sudo nft list ruleset 2>/dev/null | head -20
sudo firewall-cmd --list-all 2>/dev/null; sudo ufw status verbose 2>/dev/null
Get-NetFirewallProfile | Select-Object Name, Enabled # Windows 侧查看配置文件状态
ss -tulnp | head -20 # 实际监听端口,与规则对照两层职责对照
| 对比项 | 云安全组(边界) | 主机防火墙(实例内) |
|---|---|---|
| 作用范围 | 实例网卡进出流量 | 操作系统内所有流量 |
| 典型手段 | 按来源网段+端口放行 | 按进程、网段、接口、用户控制 |
| 管不到的 | 实例内部进程级访问 | 整机替换或镜像层问题 |
| 典型分工 | 只放 443 到负载均衡 | 再限制仅 LB 网段访问 8080 |
| 变更要点 | 控制台/API 审计日志 | 规则文件纳入配置管理 |
典型分工示例:安全组只放行 443 到负载均衡,主机层再限制只有负载均衡网段能访问 8080;这样即使同 VPC 内有实例被攻陷,横向扫描也会被挡住。
落地要点
- 先画清“谁能访问哪个端口”的矩阵,再分别落到两层,避免规则互相矛盾
- 变更单要求两层同步登记:只改一层会留下影子放行
- 排障按层推进:先看安全组,再看主机层,最后看服务监听
- 主机层规则纳入配置管理与版本控制,避免被临时排障改动长期保留
- 容器环境注意 k8s 网络策略与主机规则的关系,避免重复或冲突
两层规则不一致会制造排障黑洞:安全组放行而主机层丢弃时,现象是“端口通但业务不通”,需先对齐两层再排查应用。