第201篇:防火墙安全区域与安全策略

关键词:防火墙、安全区域、Trust、Untrust、DMZ、安全策略、Zone、USG、默认拒绝

一、引言

在上一篇第200篇中,我们学习了广域网 NQA/BFD 监测技术,掌握了如何对关键链路实施毫秒级故障检测。链路连通性只是网络可靠性的基础,而真正的安全防护需要从边界开始构建。

防火墙作为网络安全体系的第一道防线,其核心设计理念是"分区防御、按需放行"。与路由器只做单向转发不同,防火墙引入了安全区域(Security Zone)的抽象模型,将整个网络按信任级别划分为多个逻辑域。所有跨越区域边界的流量都必须经过安全策略的显式授权,否则一律丢弃。

本文从安全区域的设计思想出发,深入讲解安全策略的匹配机制、地址对象的组织方式,以及实际组网中的区域规划方案,帮助读者建立起防火墙安全策略配置的完整认知框架。

二、核心概念

2.1 安全区域(Security Zone)的本质

安全区域是防火墙对接口进行逻辑归类的容器。防火墙的设计理念决定了每个物理接口或子接口必须且只能归属一个安全区域。区域不仅是接口的分组,更承载了信任级别这一核心语义。

华为 USG 系列防火墙预置了五个标准安全区域:

区域名称 信任级别 设计意图 典型接口
Local 100 防火墙自身平面 不存在物理接口,代表设备本身
Trust 85 受保护的企业内部网络 连接核心交换机、内网服务器
DMZ 50 对外提供服务的缓冲区 连接 Web/Mail/DNS 服务器
Untrust 5 不可信的外部网络 连接运营商路由器、Internet
Guest 1 临时访客最低权限网络 连接访客 AP、IoT 设备

信任级别的数值本身不直接决定流量放行与否,但它为安全策略的设计提供了清晰的思维框架:高信任区域向低信任区域的流量通常较为宽松,反之则需要严格限制。

2.2 安全策略的五元组模型

一条完整的安全策略规则本质上是一个多维匹配条件与一个处置动作的组合:

  1. 源安全区域:流量从哪个区域进入防火墙
  2. 目的安全区域:流量要流向哪个区域
  3. 源地址:发起通信的 IP 地址或地址段
  4. 目的地址:接收通信的 IP 地址或地址段
  5. 服务:协议类型(TCP/UDP/ICMP)加端口号的组合

满足上述匹配条件的流量将被执行指定动作:允许(Permit)放行并创建会话,或拒绝(Deny)直接丢弃。

2.3 默认拒绝原则

防火墙遵循"零信任"的默认安全模型。在未配置任何安全策略的情况下,所有跨区流量——包括区域内流量和发往防火墙自身的流量——均被默认拒绝。这一设计确保了即使管理员遗漏了某条策略,也不会产生意外放行。

三、技术细节

3.1 安全策略匹配流水线

当数据包到达防火墙入接口时,需要经过完整的策略匹配流水线才能做出放行或丢弃的决策:

安全策略匹配流水线 - 图示

3.2 策略排序与优先级

安全策略的排列顺序直接影响匹配结果。华为防火墙支持两种排序机制:

  1. 自动排序:按 rule-id 升序排列,新建策略自动获得递增的 rule-id,rule-id 越小优先级越高
  2. 手动排序:通过 Web 界面拖拽调整策略顺序,或命令行指定 rule-id

策略匹配时遵循首次命中原则:一旦报文匹配到某条规则,立即执行该规则的动作并终止匹配,不再检查后续规则。

3.3 地址对象的层级化设计

地址对象将 IP 地址抽象为命名的管理单元,支持三种粒度:

  • 单 IP 对象:精确定位某台设备,如 object-server hr-printer 10.1.1.200 255.255.255.255
  • 地址段对象:覆盖一个子网,如 object-server sales-subnet 10.1.2.0 255.255.255.0
  • 地址组:聚合多个地址对象,便于统一管理

使用地址组的优势在于:当某台服务器 IP 变更时,只需修改地址对象的 IP,所有引用该对象的策略自动生效,无需逐条修改策略规则。

四、实战配置/案例分析

4.1 企业总部防火墙区域规划

某金融企业总部网络包含以下业务域:

  • 内网办公区(Trust):10.10.0.0/16
  • DMZ 对外服务区:10.100.0.0/24(含 Web、邮件、DNS)
  • 运维管理区(Trust 内独立 VLAN):10.10.200.0/24
  • 访客无线(Guest):172.16.10.0/24
  • 外部 Internet(Untrust)

企业总部防火墙区域规划 - 图示

4.2 华为 USG6000E 完整配置

# ============================================
# 步骤1:设备基本配置
# ============================================
system-view
sysname HQ-Branch-FW
dns ip-address 223.5.5.5 119.29.29.29
clock timezone Beijing add 8

# ============================================
# 步骤2:接口配置与IP地址
# ============================================
interface GigabitEthernet 0/0/0
 description To-Internet-WAN
 ip address 202.96.1.2 255.255.255.252
 service-manage ping
 quit

interface GigabitEthernet 0/0/1
 description To-DMZ-Servers
 ip address 10.100.0.1 255.255.255.0
 quit

interface GigabitEthernet 0/0/2
 description To-Trust-Internal
 ip address 10.10.0.1 255.255.255.0
 quit

interface GigabitEthernet 0/0/3
 description To-Guest-WiFi
 ip address 172.16.10.1 255.255.255.0
 quit

# ============================================
# 步骤3:接口加入安全区域
# ============================================
firewall zone untrust
 add interface GigabitEthernet 0/0/0
 quit

firewall zone dmz
 add interface GigabitEthernet 0/0/1
 quit

firewall zone trust
 add interface GigabitEthernet 0/0/2
 quit

firewall zone guest
 add interface GigabitEthernet 0/0/3
 quit

# ============================================
# 步骤4:地址对象定义
# ============================================
# DMZ服务器地址
object-server web-srv 10.100.0.10 255.255.255.255
object-server mail-srv 10.100.0.20 255.255.255.255
object-server dns-srv 10.100.0.30 255.255.255.255
object-server dmz-all 10.100.0.0 255.255.255.0

# 内网地址
object-server office-pc 10.10.1.0 255.255.255.0
object-server db-srv 10.10.200.10 255.255.255.255
object-server trust-all 10.10.0.0 255.255.0.0

# 访客地址
object-server guest-pc 172.16.10.0 255.255.255.0

# 地址组(用于聚合管理)
object-group-server dmz-servers
 add object-server web-srv
 add object-server mail-srv
 add object-server dns-srv
 quit

# ============================================
# 步骤5:默认路由
# ============================================
ip route-static 0.0.0.0 0 202.96.1.1

# ============================================
# 步骤6:安全策略配置(按优先级排序)
# ============================================
security-policy

 # === 高优先级:精确控制策略 ===

 # Rule 10: 互联网访问DMZ Web服务
 rule name Allow_Web_Access
  source-zone untrust
  destination-zone dmz
  destination-address web-srv
  action permit
  service http https
  log-action enable

 # Rule 20: 互联网访问DMZ Mail服务
 rule name Allow_Mail_Access
  source-zone untrust
  destination-zone dmz
  destination-address mail-srv
  action permit
  service smtp imap4 pop3
  log-action enable

 # Rule 30: 互联网访问DMZ DNS
 rule name Allow_DNS_Access
  source-zone untrust
  destination-zone dmz
  destination-address dns-srv
  action permit
  service dns

 # Rule 40: DMZ Web服务器回连内网数据库
 rule name DMZ_Web_to_DB
  source-zone dmz
  destination-zone trust
  source-address web-srv
  destination-address db-srv
  action permit
  service tcp destination-port eq 3306
  log-action enable

 # === 中优先级:内网出访策略 ===

 # Rule 50: 内网访问互联网(全协议)
 rule name Trust_to_Internet
  source-zone trust
  destination-zone untrust
  source-address trust-all
  action permit

 # Rule 60: 内网访问DMZ服务器
 rule name Trust_to_DMZ
  source-zone trust
  destination-zone dmz
  action permit

 # === 低优先级:访客策略 ===

 # Rule 70: 访客DNS解析
 rule name Guest_DNS
  source-zone guest
  destination-zone untrust
  source-address guest-pc
  action permit
  service dns

 # Rule 80: 访客Web浏览
 rule name Guest_Web
  source-zone guest
  destination-zone untrust
  source-address guest-pc
  action permit
  service http https

 # Rule 90: 禁止访客访问内网和DMZ
 rule name Block_Guest_Internal
  source-zone guest
  destination-zone trust dmz
  action deny
  log-action enable

 # === 管理访问策略 ===

 # Rule 100: 内网运维SSH管理防火墙
 rule name Admin_SSH_Manage
  source-zone trust
  destination-zone local
  source-address 10.10.200.0/24
  action permit
  service ssh
  log-action enable

 # Rule 110: DMZ服务器DNS查询
 rule name DMZ_DNS_Out
  source-zone dmz
  destination-zone untrust
  action permit
  service dns

 # === 末条:显式拒绝并记录日志 ===
 rule name Deny_All_Log
  action deny
  log-action enable
 quit

4.3 排障案例:策略命中但流量不通

故障描述:业务反馈 DMZ 的 Web 服务器无法访问内网数据库 10.10.200.10 的 3306 端口。

排查过程:

  1. 查看策略命中计数,确认策略已被命中:
display security-policy rule name DMZ_Web_to_DB
# 输出显示 hits: 156,说明策略确实匹配了数据包
  1. 检查会话表:
display firewall session table verbose
# 发现会话表中有大量 TCP SYN 状态的半开连接
  1. 核查数据库服务器侧的防火墙或安全组:
# 在数据库服务器上检查
# 发现数据库服务器的本地 iptables 仅允许来自 10.10.1.0/24 的 MySQL 连接
# 而 DMZ 的源 IP 为 10.100.0.10,不在允许范围内
  1. 根因分析:防火墙策略配置正确且已命中,但数据包到达目的服务器后,被服务器自身的本地防火墙拦截。这提醒我们:防火墙策略放行只是第一道关卡,端到端的连通性还需要检查路径上所有节点的安全策略。

  2. 修复措施:在数据库服务器上添加允许来自 DMZ 网段的 MySQL 连接规则。

五、总结

知识点 核心要点
安全区域作用 对接口做逻辑分组,赋予信任级别语义
内置区域 Trust(85)、Untrust(5)、DMZ(50)、Local(100)、Guest(1)
默认安全模型 零信任:所有跨区/区内/本地流量默认拒绝
策略匹配原则 从上到下逐条匹配,首次命中即执行并终止
策略六要素 源区域、目的区域、源地址、目的地址、服务、动作
地址对象 支持单IP/地址段/地址组三级抽象,便于策略维护
排障思路 先查接口区域归属,再查策略命中,最后查对端防火墙
最佳实践 精确策略放前面,宽泛策略放后面,末尾设显式拒绝并开启日志

思考

  1. 安全区域 Local 没有物理接口与之绑定,它是如何参与安全策略匹配的?哪些类型的流量会与 Local 区域相关?
  2. 当一条安全策略配置了 log-action enable 后,日志记录的性能开销会对防火墙吞吐量产生什么影响?在生产环境中应如何权衡?
  3. 如果 DMZ 区域的 Web 服务器同时需要访问内网的数据库和 LDAP 认证服务器,安全策略应该如何设计才能满足最小权限原则?

下篇预告:第202篇:防火墙包过滤与会话表