混合云环境下如何统一安全基线?

1 人参与

在混合云里,linux 服务器和 Windows 服务器常常要一起跑业务,安全基线如果各说各话,最怕的就是“权限漂移”。大家不妨把目光先放在防火墙这块——它是最直接、最容易统一的入口。

用同一个“区域”思路划分网络

linux 端的 firewalld 通过 zone 把网络分层,常见的 public、internal、trusted 就像把家里不同房间的门锁分别设定。把业务服务器统一放进 internal 区域,只在这个 zone 里打开必需端口,其他 zone(比如 public)保持默认阻断,等于是给服务器套上了只对内部网络开放的“围栏”。对应的命令大致是:

  • firewall-cmd --permanent --zone=internal --add-source=10.0.0.0/24
  • firewall-cmd --permanent --zone=internal --add-port=8080/tcp(Web)
  • firewall-cmd --permanent --zone=internal --add-port=3306/tcp(MySQL)
  • firewall-cmd --permanent --zone=internal --add-port=9200/tcp(ES)
  • firewall-cmd --permanent --zone=internal --add-port=6379/tcp(Redis)
  • firewall-cmd --reload

把 Windows 防火墙也套进同样的“内部”概念

Windows Defender 防火墙没有 zone,但可以用 Profile(Domain、Private、Public)来模拟。把业务机器的网络属性都设为 Private,然后只在 Private 里放行同样的端口,等价于 linux 的 internal zone。PowerShell 示例:

  • New‑NetFirewallRule -DisplayName "Allow TCP 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow -Profile Private
  • New‑NetFirewallRule -DisplayName "Allow TCP 3306" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow -Profile Private
  • New‑NetFirewallRule -DisplayName "Allow TCP 9200" -Direction Inbound -Protocol TCP -LocalPort 9200 -Action Allow -Profile Private
  • New‑NetFirewallRule -DisplayName "Allow TCP 6379" -Direction Inbound -Protocol TCP -LocalPort 6379 -Action Allow -Profile Private

统一审计、定期清理

  • Linux:firewall-cmd --list-all --zone=internal 能一眼看到已放行的端口。
  • Windows:Get‑NetFirewallRule -Profile Private | Where-Object {$_.Direction -eq "Inbound"} 列出所有入站规则。

一旦业务下线或端口不再使用,记得把对应规则删掉(Linux 用 --remove-port,Windows 用 Remove‑NetFirewallRule),防止权限漂移。

小结

zone 当成 “内部网络”,把 Private profile 当成 “内部网络”,两套系统就能在“只放必要端口、其它全阻断”的最小权限原则下保持一致。这样即使混合云里跑着 Linux 与 Windows,安全基线也能像一条统一的防线,既省事儿又省心。

参与讨论

1 条评论
  • 河马铁匠

    用Private模拟Zone这个思路挺巧妙的

    回复