等保三级要求单机docker禁用默认docker0桥,必须创建带--opt com.docker.network.bridge.enable_icc=false的用户定义桥接网络,并按业务域划分子网、启用macvlan直通物理层、辅以iptables强化管控。

要在单机 Docker 环境中满足等保三级对网络隔离的刚性要求,不能依赖默认 bridge 网络,必须启用高级驱动并配合精细化策略配置。核心是实现“容器间默认不通、跨网段不可达、流量路径可审计、网络身份可标识”四个目标。
禁用默认桥接,启用合规型用户定义桥接网络
默认 docker0 网络开启容器间通信(ICC),违反等保三级“最小权限通信”原则。需显式创建隔离桥接网络,并关闭 ICC:
- 执行命令创建带标签与策略的网络:
docker network create \<br> --driver bridge \<br> --opt com.docker.network.bridge.enable_icc=false \<br> --opt com.docker.network.bridge.default_bridge=false \<br> --subnet=192.168.100.0/24 \<br> --gateway=192.168.100.1 \<br> --label compliance=level3-finance \<br> finance-isolated-net
-
enable_icc=false是关键:阻止同一网络内容器自动互通,避免横向移动风险 -
--label标注便于后续 IaC 工具或审计系统识别该网络已通过合规基线校验
按业务域划分子网,强制逻辑分段
等保三级要求“不同安全等级的业务系统应部署在不同网络区域”。单机环境可通过多个自定义桥接网络模拟多网段:
- 为支付前置服务建网:
docker network create --subnet=172.20.1.0/24 --gateway=172.20.1.1 payment-nw - 为风控 API 建网:
docker network create --subnet=172.20.2.0/24 --gateway=172.20.2.1 risk-nw - 容器启动时仅挂载所属网段:
docker run --network payment-nw ...,天然阻断跨网段访问 - 不使用
--link或暴露端口映射穿透边界,所有跨域调用必须经统一 API 网关转发并记录日志
对核心系统启用 macvlan 驱动直通物理层
当容器承载账务、清算等金融核心服务时,需满足 PCI DSS 对“网络分段可见性”和“低延迟确定性”的要求:
- macvlan 模式让容器独占 MAC 地址与物理网卡子接口,流量不经 NAT,可被交换机 ACL 直接管控
- 创建示例:
docker network create \<br> --driver macvlan \<br> --subnet=10.10.50.0/24 \<br> --gateway=10.10.50.1 \<br> -o parent=eth0 \<br> --ip-range=10.10.50.10-10.10.50.200 \<br> core-macvlan
- 宿主机需提前配置对应 VLAN 子接口(如
eth0.50),确保物理网络策略能覆盖容器流量 - 该模式下容器 IP 可被防火墙、IDS/IPS 设备原生识别,满足等保三级“网络行为可监控、可追溯”条款
配合 iptables 规则做运行时强化
Docker 自动管理的 iptables 规则不足以覆盖等保三级全部要求,需手动补充:
- 禁止容器主动外连非授权地址:
iptables -A OUTPUT -s 192.168.100.0/24 ! -d 192.168.100.0/24 -j DROP - 限制 DNS 查询仅允许指定服务器:
iptables -A OUTPUT -s 192.168.100.0/24 -p udp --dport 53 -d 192.168.100.1 -j ACCEPTiptables -A OUTPUT -s 192.168.100.0/24 -p udp --dport 53 -j DROP - 所有规则添加
-m comment --comment "GB/T 35273-2020 Art.7.2"注释,支撑合规审计溯源











