第3章:构建和维护安全的网络
防火墙配置和网络分段,这俩东西在PCI DSS里有多重要?
我这么说吧。你如果没有一套靠谱的网络隔离方案,基本等于把CDE(持卡人数据环境)的大门敞开着。审计师看到你的网络拓扑图,第一个问的就是:哪些网段能访问数据库?防火墙规则有没有精细化?
嗯,我们开始。
3.1 防火墙配置核心原则
防火墙在PCI DSS里的角色,说白了就是一道门禁。它只允许你明确说“可以”的流量通过,其余一律挡在外面。
我之前帮一家电商公司做合规改造。他们的防火墙规则有300多条,一半以上是“any to any”的放行策略。你想想看,这跟没装防火墙有什么区别?
3.2 最小权限原则
PCI DSS要求防火墙只开放必要的端口和协议。怎么确定哪些是必要的?
我建议用“通信矩阵法”——列清楚每个系统需要跟谁通信、用什么端口、协议是什么。举个例子:
| 源系统 | 目标系统 | 端口/协议 | 用途 |
|---|---|---|---|
| Web服务器 | 应用服务器 | TCP 8080 | 转发API请求 |
| 应用服务器 | 数据库 | TCP 3306 | 查询交易数据 |
| 安全监控 | 所有服务器 | TCP 22(特定跳板机) | 审计日志采集 |
每增加一条规则,反问自己:没用这端口,业务能跑吗?能不开就不开。
3.3 规则变更管理
PCI DSS要求防火墙规则的变更必须有审批流程。不能今天加一条,明天删一条,没有任何记录。
我个人的习惯是,所有防火墙规则变更必须走工单系统。工单里要写明:
- 变更原因
- 影响范围评估
- 回退方案
- 测试结果
变更完成后,保留日志至少一年。审计师查起来,你能拿出完整的变更链,这叫证据充分。
3.4 网络分段策略
网络分段是PCI DSS的核心要求之一。目标是什么?把CDE和非CDE隔离开。
你想想看,如果员工办公网段和支付服务器在同一个广播域,一台中毒的办公电脑就能ARP欺骗数据库。这画面太美我不敢看。
3.5 如何设计网络分段
我通常建议用“三层网络架构”来设计:
- 核心层: CDE区域,包含支付网关、令牌化服务器、数据库
- 中间层: 应用服务区域,包含Web服务器、应用服务器
- 边缘层: 用户接入、办公网络、合作伙伴连接
层与层之间必须配置防火墙。CDE区域的防火墙规则最严格,只允许中间层的特定服务访问。
3.6 边界防火墙 vs 内部防火墙
很多公司只关注边界防火墙,忽略了内部防火墙。PCI DSS要求的是纵深防御。
| 类型 | 位置 | 作用 |
|---|---|---|
| 边界防火墙 | 互联网与内网之间 | 阻止外部攻击,过滤入站流量 |
| 内部防火墙 | 各内网网段之间 | 阻止横向移动,隔离CDE与非CDE |
内部防火墙比边界防火墙更重要。为什么?因为大部分数据泄露都是从内部开始的。你封住了大门,但内部门户大开,一样危险。
3.7 最佳实践:默认拒绝 + 白名单
防火墙规则应该写成白名单形式。只放行明确允许的流量,其余一律拒绝。
我的一个避坑指南:不要把规则写成“拒绝所有,然后开放部分”,这样还是太容易出漏洞。你应该把“拒绝所有”作为默认策略,然后逐条添加上白名单规则。
# 示例:iptables默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# 只允许特定流量
iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s 10.0.1.0/24 -d 10.0.3.0/24 -p tcp --dport 3306 -j ACCEPT
你看,这样一来所有未明确放行的流量都被拒绝了。这就是最安全的配置方式。
3.8 定期审计防火墙规则集
PCI DSS要求至少每半年审查一次防火墙规则集。我个人建议一个季度一次,甚至更频繁。
审查的重点是什么?
- 是否有过期规则?
- 是否有“any to any”的宽松规则?
- 是否有未使用的开放端口?
- 规则变更日志是否齐全?
我一般会让运维团队出具一份规则报告,然后逐条确认。发现未使用的规则,立即删除并记录。
3.9 网络分段的核心逻辑
下面这张图展示了CDE与非CDE网络的分段逻辑:
从图里你能看到,网络分段不是简单地把服务器放在不同IP段就完事了。每个区域之间一定要有防火墙做访问控制。CDE区域是最高安全等级,直接暴露在外的只有DMZ区的Web服务器。
3.10 总结一下关键点
- 防火墙配置:默认拒绝 + 白名单,定期审查规则集
- 网络分段:CDE与非CDE必须隔离,使用内部防火墙
- 变更管理:所有防火墙规则变更必须走工单,保留完整日志
- 最小权限:只开放必要的端口和协议,关闭不必要的服务