跳到正文
Lutong's Homepage

华为H3C实战 | 第29章 防火墙高级功能

📚 本系列共 43 篇(第 29 / 43 篇) · 第四卷 设备与安全篇 —— 路由器与防火墙

← 上一篇:第 28 章 防火墙双机热备  下一篇:第 30 章 设备管理安全与等保基线 →


本章导读:安全策略是门禁,只查"谁要来";IPS/AV/URL 过滤和应用识别是在门禁后加的 X 光机。本章讲这四样怎么挂到策略上真正生效,以及 SSL VPN、IPSec VPN 两条通道怎么搭。

本章结构:

  • 29.1 功能原理与业务场景 —— 内容安全与策略的处理顺序、“开了功能"不等于"生效了”、三类 VPN 怎么选、内容安全能防什么防不住什么,以及内容安全的性能陷阱(开满后吞吐只剩标称的几分之一)
  • 29.2 华为设备配置详解 —— 安全配置文件(IPS/AV/URL)的引用、应用识别、SSL VPN、IPSec VPN 的配置骨架与启用要点
  • 29.3 H3C 设备配置详解 —— H3C 侧对应写法与差异标注
  • 29.4 华为 / H3C 命令对照表
  • 29.5 配置验证 —— 内容安全命中记录、特征库/授权状态、VPN 隧道状态
  • 29.6 排错与故障树 —— “开了 IPS 但没拦"“VPN 建不起来"的分支定位
  • 29.7 新手踩坑与注意事项
  • 29.8 本章小结

重点提示:功能"配了不生效"第一件事是查授权与特征库有没有加载(29.1.2 末尾的版本说明);上了防火墙以后全网变慢,先看 29.1.5 的三条实践原则,别全量挂检测。要搭 VPN 先答"连的是人还是网络”,29.1.3 那张表直接对应到节号。 关联章节:安全策略与区域模型见第 26 章;ACL 与策略路由见第 17 章;NAT 与策略的先后顺序见第 27 章;内容安全与双机热备的配合见第 28 章。

29.1 功能原理与业务场景

29.1.1 这功能是干嘛的(通俗版)

第 26 章讲的安全策略,本质上是「门禁」:查证件、看权限、决定放不放人。但门禁有个先天缺陷——它只认「谁要来」,不认「来了之后干什么」。

打个比方:公司允许员工带快递进楼(放行),但有人抱着一个炸弹形状的包裹,门禁仍然会放行,因为证件是真的。高级功能就是在门禁之后再加上三道检查:

  • IPS(入侵防御):X 光机,看包裹里有没有刀、有没有易燃物,不管你证件多真。
  • AV(反病毒):病毒扫描仪,扫包裹里有没有带病的东西。
  • URL 过滤:网页内容审查,看你要去的目的地是不是黑名单网站。
  • 应用识别:认识你要用的具体是什么应用,而不是只认识端口号。

这四样合起来,就是「下一代防火墙(NGFW)」与「传统防火墙」的分水岭。传统防火墙只能配「允许 192.168.10.0/24 访问任何网站 443 端口」,NGFW 能配「允许办公区访问办公类应用,禁止抖音与网盘,且拦截木马下载」。

此外还有两类「通道型」功能:

  • SSL VPN:给远程办公的员工发一条加密的「私人通道」,让他们在外面也能像在公司一样访问内网资源。
  • IPSec VPN:把两个地理位置分开的办公点用公网「挖一条加密隧道」连起来,两个点的内网互相觉得对方就是同一个局域网。

29.1.2 在网络里怎么落地(设计视角)

一个完整的企业边界,这几样东西是串在同一台防火墙上的:

                    Internet
                       |
              +--------+--------+
              |  USG6000E       |
              |                 |
              | 1. 安全策略      |  ← 门禁:谁能来
              | 2. 应用识别      |  ← 认识应用
              | 3. IPS/AV/URL   |  ← X光机/病毒扫描/黑名单
              | 4. NAT          |  ← 地址转换
              | 5. VPN          |  ← 远程接入与站点互联
              +---+---------+---+
                  |         |
           trust  |         | dmz
        内网办公区             服务器区

它们在报文处理流程上的位置是有先后顺序的:

顺序 处理环节 说明
1 会话建立 / 策略匹配 决定这条流量是否被放行
2 内容安全检测(IPS/AV/URL) 只对动作是 permit 且挂了内容安全配置文件的流量生效
3 NAT 转换 目的 NAT 在策略前,源 NAT 在策略后(见第 27 章)
4 转发 —

关键点:内容安全检测挂在安全策略上,不是全局开关。 这一点让很多新手困惑——他们以为「开了 IPS 就全都会检测」,其实必须在安全策略的规则里引用配置文件(profile)才会生效。开了功能 ≠ 生效了,这是本章最重要的一句话。

29.1.3 三类 VPN 的定位

VPN 的选型经常被搞混,先用一张表分清楚:

类型 谁连谁 终端状态 典型场景
SSL VPN 员工个人终端 → 防火墙 无需预装证书,浏览器/客户端即可 居家办公、出差访问内网
IPSec 站点到站点 防火墙 ↔ 防火墙 两端都是网络设备,透明 分支机构与总部互联
IPSec 客户端(L2TP over IPSec) 员工终端 → 防火墙 需要客户端软件 老式的远程接入

判断标准很简单:「连的是人还是网络」。连的是一个人的笔记本电脑,用 SSL VPN;连的是一个办公点的整个网段,用 IPSec 站点到站点。

适用版本:华为 USG6000E(VRP V500R005 及以上,内容安全功能需加载对应的特征库服务包);H3C F1000 系列(Comware V7 R8860 及以上)。特征库、AV/IPS 授权与版本强相关,实施前务必确认设备的授权状态与服务包是否已加载。

29.1.4 内容安全的现实预期管理

初学者常有的幻想是「开了 IPS/AV 就安全了」。必须先把预期拉平:

能防住的: 已知漏洞的利用尝试(IPS 特征库里有记录的)、已知病毒家族的文件(AV 库里有的)、已知恶意/违规网站(URL 库里的)。

防不住的: 零日漏洞、免杀定制的木马、加密流量里的恶意内容、内部人员主动的合规行为。

代价: 性能下降(内容安全是 CPU 密集型操作)、误报(正常业务被拦)、运维负担(特征库要更新、误报要处理)。

一个诚实的定位:内容安全是「提高攻击成本」的手段,不是「消灭风险」的银弹。 它能让攻击者从「随便进来」变成「得花点心思定制」,这个价值已经很大,但别把它当保险。

29.1.5 性能陷阱:内容安全会吃掉多少性能

这是初学者几乎不会考虑、但在生产环境里一定会撞上的问题。

防火墙宣传的吞吐量通常是「三层转发吞吐」(比如 10Gbps),而内容安全的吞吐是另一个数量级。原因很简单:三层转发只需查表,内容安全要把每个报文拆开、和几万条特征逐条比对、再做重组和协议解析。同一台设备,开满内容安全后实际能承载的带宽往往只有标称值的几分之一。

三组数字的直觉(具体数值按型号查规格表,这里只讲量级关系):

检测能力 相对吞吐 说明
三层转发 100% 标称值,只查路由表
开 IPS 30%~50% 每包做特征匹配
开 IPS + AV 15%~30% AV 还要做文件重组
开 IPS + AV + URL 10%~20% 再加分类库匹配

这不是设备「虚标」,而是行业通例——所有厂商的「应用层吞吐」都远低于「网络层吞吐」。买设备时应该看的是「开启全部安全功能后的吞吐」,而不是宣传页上的最大转发能力。

由此导出三条实践原则:

  1. 按业务分级检测,不要全量开启。 办公区网页浏览挂全套检测;视频会议、大文件传输这类「内容本身就是二进制流」的流量,只挂 IPS 不挂 AV。全量检测只会让你的防火墙变成瓶颈。
  2. 出口带宽与检测能力要匹配。 一条 1000Mbps 的专线 + 一台只能跑 300Mbps 应用层检测的防火墙,结果就是「防火墙成了性能瓶颈」,用户投诉「上了防火墙之后网变慢了」。
  3. 用采样或代理放行白名单。 对已知可信的内部系统、内部服务器之间的流量,可以只做五元组策略检测,不做内容安全检测——它们的风险本来就低,没必要每个报文都过一遍 X 光机。

这句话值得单独记:内容安全的每一项都是拿性能换安全,所以必须先回答「这条流量值不值得为它付出性能代价」。

29.2 华为设备配置详解

29.2.1 命令行基础速览

华为 USG6000E 的内容安全功能,在命令行里是一套「配置文件(profile) + 策略引用」的模式:

命令族 代表命令 作用
IPS profile type ips name X 建 IPS 配置文件
AV profile type av name X 建反病毒配置文件
URL 过滤 profile type url-filter name X 建 URL 过滤配置文件
内容安全引用 策略规则下 profile ips X / profile av X 把配置文件挂到策略上
特征库更新 update schedule 特征库自动更新
查看 display ips signature / display profile type ips 查看状态

核心结构:先在 profile 视图里定义「检测什么、检出后怎么处理」,再在安全策略的规则里引用它。

29.2.2 完整配置模板(IPS + AV + URL 过滤 + 应用识别)

这套配置把四种能力在一个出口场景下串起来,可以按需删减。

# 第一步:建立 IPS 配置文件,指定检测的威胁级别与动作
system-view
sysname FW-NGFW

profile type ips name IPS-PROFILE
 description block-high-risk
 ips signature action block threat-level 0 1 2
 ips signature action alert threat-level 3 4
 quit

# 第二步:建立反病毒配置文件,指定检出后的动作
profile type av name AV-PROFILE
 description block-virus
 av action block file-type exe
 av action alert file-type doc
 quit

# 第三步:建立 URL 过滤配置文件,引用 URL 分类库
profile type url-filter name URL-PROFILE
 description block-bad-category
 url-filter category predefined gambling action block
 url-filter category predefined phishing action block
 url-filter category predefined shopping action block
 quit

接下来是应用识别与安全策略。注意策略里引用了上面的配置文件:

# 第四步:安全策略引用内容安全配置文件(关键:不引用就不生效)
security-policy

# 办公区出网:挂 IPS + AV + URL 过滤
 rule name OFFICE_TO_INTERNET
  description office-surf-with-security
  source-zone trust
  destination-zone untrust
  source-address 192.168.10.0 24
  application WeiXin
  action permit
  profile ips IPS-PROFILE
  profile av AV-PROFILE
  profile url-filter URL-PROFILE
  quit

# 访客区(假设已建自定义区域 guest 且接口已加入):只允许 HTTP/HTTPS,挂 URL 过滤
 rule name GUEST_TO_INTERNET
  description guest-limited
  source-zone guest
  destination-zone untrust
  source-address 192.168.20.0 24
  service http
  service https
  action permit
  profile url-filter URL-PROFILE
  quit

 quit

⚠ 待核实:待核实 USG6000E 上 ips signature action 的威胁级别参数范围、av action 的文件类型与动作枚举值、url-filter category predefined 的分类名称,需按设备上 ? 提示与《内容安全配置指南》确认

最后配置特征库自动更新,否则库永远是出厂的版本:

# 第五步:特征库定时自动更新
# 所有特征库统一按天升级(缺省时间点)
update schedule daily
# 也可以分类单独设置:IPS 特征库每天、AV 特征库每周一次
update schedule ips-sdb daily 03:00
update schedule av-sdb weekly Sat 02:00

这组命令已核实(华为 AR 命令参考 update schedule 条目原文)。准确语法是:

update schedule [ { daily | weekly { Mon|Tue|Wed|Thu|Fri|Sat|Sun } } time ]
update schedule { av-sdb | cnc | ips-sdb } { hourly minute | { daily | weekly {...} } time }
update schedule sa-sdb { daily | weekly {...} } time

四类特征库的代号要记准,写错代号这条命令就不生效:

代号 特征库 谁在用
ips-sdb 入侵防御特征库 IPS
av-sdb 反病毒特征库 AV
sa-sdb 业务感知特征库 应用识别
cnc 恶意域名特征库 DNS 过滤

另有两个配套命令:update schedule enable(定时升级总开关)与 update schedule retry-download interval(下载重试间隔)。特征库不升级,IPS/AV 就只是心理安慰——库里没有新特征,新威胁一个都拦不住。

29.2.3 逐行讲解

命令 作用 新手常填错的地方
profile type ips name IPS-PROFILE 建 IPS 配置文件 建完不引用到策略上,等于没配
ips signature action block threat-level 0 1 2 威胁级别 0~2 直接阻断 把级别全设成 block,误报率飙升
profile type av name AV-PROFILE 建 AV 配置文件 只建不引用
av action block file-type exe 对可执行文件直接阻断 别对 doc 直接阻断,会误杀正常文档
url-filter category predefined gambling action block 按预定义分类拦截 分类名称拼错,规则静默失效
profile ips IPS-PROFILE(策略下) 把配置挂到策略 最容易漏的一步

三件必须讲透的事:

第一,「动作分级」是内容安全的核心设计。 一个 IPS 特征被命中后,有三种处理方式:block(阻断)、alert(告警但放行)、allow(放行且不告警)。新手容易把全部设为 block,结果是「正常业务被拦一半」,然后索性全关掉,比不开还糟。合理的策略是:高危特征 block、低危特征 alert、把 alert 的日志收集一周,评估误报后再决定是否升级为 block。 这是一个持续调优的过程,不是一次性配置。

第二,URL 过滤依赖 URL 分类库,分类库有「预定义分类」。 预定义的分类(赌博、钓鱼、购物等)由厂商维护,你只需要决定「哪个分类该怎么办」。自定义 URL 分类(自己加黑名单站点)是另一套配置。初学者先只用预定义分类,够用且不用维护。

第三,应用识别与内容安全是两层递进关系。 应用识别先回答「这是什么应用」,内容安全再回答「这个应用里传的内容有没有问题」。应用识别的准确率直接决定内容安全的准确率——识别不出应用的流量,内容安全也无从下手。所以特征库的更新对两者同样重要。

29.2.4 SSL VPN 配置流程

SSL VPN 是给远程员工用的。华为 USG 侧的虚拟网关命令是 v-gateway,配置顺序很重要。下面这套脚本依据华为官方《认证服务器对接配置指导》中「移动办公用户通过 SSL VPN 访问公司总部」举例的配置脚本整理(https://support.huawei.com/enterprise/zh/doc/DOC1000177215/e31271cd ):

# 第一步:创建虚拟网关,绑定公网接口、专属域名
# 语法:v-gateway <网关名> interface <接口> private [域名]
v-gateway SSLGW interface GigabitEthernet1/0/1 private vpn.example.com

# 第二步:给虚拟网关绑定认证域,并限制最大用户数
v-gateway SSLGW authentication-domain hq.example.com
v-gateway SSLGW max-user 150
v-gateway SSLGW cur-max-user 100

接着进入虚拟网关视图,开启业务能力(Web 代理、网络扩展)并定义地址池:

# 第三步:进入虚拟网关视图,开启 Web 代理与网络扩展业务
v-gateway SSLGW
 service
  web-proxy enable
  web-proxy web-link enable
  # 发布 Web 代理资源:<资源名> <URL>
  web-proxy proxy-resource Webmail http://192.168.10.20 show-link
  # 网络扩展:给 VPN 客户端分配的地址池
  network-extension enable
  network-extension keep-alive enable
  network-extension netpool 192.168.100.2 192.168.100.100 255.255.255.0
  network-extension mode manual
  # 允许访问的内网网段
  network-extension manual-route 192.168.10.0 255.255.255.0
  quit
 quit

然后按角色授权(谁能用哪种接入方式):

# 第四步:角色授权,把用户组与可用的接入方式关联
v-gateway SSLGW
 role
  role office condition all
  role office network-extension enable
  role office web-proxy enable
  role office web-proxy resource Webmail
  quit
 quit

最后是安全策略。这一步是 SSL VPN 最容易漏配的地方,官方举例里一次配了四条策略,少一条就有一个环节不通:

# 第五步:安全策略(官方举例的四条,缺一不可)
security-policy

# 1) 外网用户访问 SSL VPN 登录页面:untrust → local,放行 https
 rule name policy_sslvpn_1
  source-zone untrust
  destination-zone local
  destination-address 192.0.2.10 32
  service https
  action permit
  quit

# 2) 设备自己访问 Web 资源服务器:local → trust
 rule name policy_sslvpn_2
  source-zone local
  destination-zone trust
  destination-address 192.168.10.20 32
  action permit
  quit

# 3) VPN 用户访问内网:源是「网络扩展地址池」,不是私网网段
 rule name policy_sslvpn_3
  source-address range 192.168.100.2 192.168.100.100
  destination-address 192.168.10.0 16
  action permit
  quit
 quit

⚠ 版本差异:v-gateway 是 USG 防火墙系列(USG6000/USG6000E/USG6000F)的命令;AR 路由器上的 SSL VPN 网关命令是 sslvpn gateway <名>,不是 v-gateway,两者不能混用(AR 侧命令参考见 https://support.huawei.com/enterprise/en/doc/EDOC1100203224/b32c67d3 )。另外 v-gateway 有一批「一行式」命令(如 v-gateway example max-user 150 直接带参数)与「视图式」命令(v-gateway example 进入视图后再敲子命令)两种形态,都是官方脚本里出现过的写法。

四个最容易漏的点,按官方举例的顺序排:

序号 要做什么 漏了会怎样
1 虚拟网关绑定公网接口 + private 关键字 + 域名 用户从公网连不上,或者只能 IP 访问不能域名访问
2 authentication-domain 绑定认证域 用户无法登录(认证域是 AAA 认证的入口)
3 网络扩展 netpool 用独立网段 地址池与内网重叠 → 路由冲突,部分资源访问异常
4 policy_sslvpn_3 源地址写地址池 用户能登录、能看到资源,但点进去访问不了

第 4 条是最反直觉的一条:用户连上来之后,源地址是 netpool 分配的地址(本例 192.168.100.x),不是内网地址,所以策略必须以地址池为源。很多人按「内网网段」去配,永远不命中。

29.2.5 IPSec 站点到站点 VPN 配置骨架

IPSec 站点到站点的配置,两家都是「先协商参数、再定义感兴趣流、最后应用」,只是命令不同。华为侧的骨架:

# 第一步:IPSec 提议(算法套件,两端必须完全一致)
ipsec proposal PROP1
 esp authentication-algorithm sha2-256
 esp encryption-algorithm aes-256
 quit

# 第二步:IKE 提议(协商阶段的算法与认证方式,两端一致)
ike proposal 10
 encryption-algorithm aes-256
 authentication-algorithm sha2-256
 dh group14
 quit

# 第三步:IKE 对等体(对端地址、预共享密钥)
ike peer PEER1 v2
 pre-shared-key cipher YourPreSharedKey
 ike-proposal 10
 remote-address 198.51.100.88
 quit

# 第四步:定义感兴趣流(哪些流量走隧道)
acl number 3000
 rule 5 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.50.0 0.0.0.255
 quit

# 第五步:IPSec 安全策略并应用在公网接口
ipsec policy POLICY1 10 isakmp
 security acl 3000
 ike-peer PEER1
 proposal PROP1
 quit
interface GigabitEthernet1/0/1
 ipsec policy POLICY1
 quit

还要放行 IKE 与 ESP 流量,否则协商包根本进不来。注意 service 后面只能写服务对象名,所以 UART 500 要先用 ip service-set 封成对象(这是华为官方维护宝典明确的做法:「在服务视图下执行命令 service protocol udp destination-port port 单独配置 IKE 安全策略,并在安全策略规则视图下执行命令 service service-name 引用自定义服务」):

# 先把 IKE 的 UDP 500 端口封装成服务对象
ip service-set ike_svc type object
 service protocol udp source-port 0 to 65535 destination-port 500
 quit

然后才是在安全策略里引用:

# 放行对端 → local 的 IKE 协商报文
security-policy
 rule name ALLOW_IKE
  source-zone untrust
  destination-zone local
  source-address 198.51.100.88 32
  service ike_svc
  action permit
  quit
 rule name ALLOW_ESP
  source-zone untrust
  destination-zone local
  service esp
  action permit
  quit
 quit

「感兴趣流」是 IPSec 里最容易被误解的概念。 它指的是「哪些流量需要被加密送进隧道」——ACL 里 permit 的流量走隧道,deny 或不匹配的流量照常走公网。所以 rule 5 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.50.0 0.0.0.255 的意思是「本端办公网到对端办公网的流量走加密隧道」。

两端感兴趣流必须互为镜像。 本端写「A → B」,对端必须写「B → A」。写反了或者只写了一半,协商能成功但业务不通——隧道的 Phase 1/Phase 2 都起来了,display ipsec sa 能看到 SA 建立,但流量就是不进隧道。这是 IPSec 排障最常见的坑。

29.2.6 IPSec 参数协商的细节:三组参数为什么必须一模一样

IPSec 协商失败有 90% 是「两端参数不匹配」。所以把三组参数摊开讲清楚,比记住命令更重要。

第一组:IKE 提议(Phase 1 用)。 这组参数决定「怎么建一条互相信任的通道」:

参数 作用 不匹配的表现
加密算法 保护 IKE 报文本身(AES-256 等) 协商直接失败,无 SA
认证算法 校验 IKE 报文完整性(SHA2-256 等) 协商直接失败
DH 组 协商密钥用的数学问题(group14 等) 协商失败,日志报 DH group mismatch
认证方式 预共享密钥 或 证书 一个是密钥一个用证书,谈不起来
IKE 版本 v1 或 v2 版本不同,报文格式都不同,完全无法互通

第二组:IPSec 提议(Phase 2 用)。 这组决定「业务数据怎么加密」:

参数 作用 不匹配的表现
安全协议 ESP(加密+认证)或 AH(仅认证) 几乎必用 ESP
ESP 加密算法 业务数据的加密算法 Phase 2 协商失败
ESP 认证算法 业务数据的完整性算法 Phase 2 协商失败
封装模式 隧道模式(Tunnel)或传输模式(Transport) 站点到站点必须隧道模式
PFS 是否在 Phase 2 重新协商密钥 一端开一端关,Phase 2 可能失败

第三组:感兴趣流。 这组不是「参数」而是「范围」,但它同样必须镜像:

本端:permit ip source 192.168.10.0/24 destination 192.168.50.0/24
对端:permit ip source 192.168.50.0/24 destination 192.168.10.0/24

这三组里,最容易出问题的是「IKE 版本」和「PFS」。 IKE 版本是显式的(华为 ike peer PEER1 v2),漏写 v2 就退化成 v1,而对端如果配的是 v2,两边永远谈不起来,日志里只有一句「no matching proposal」,非常难猜。PFS 则是很多人不知道它的存在,一端随默认值开、一端默认关,Phase 2 就卡住。

给初学者的实操建议: 配置 IPsec 前,先把两端要用的参数逐项列在纸上(加密、认证、DH、IKE 版本、PFS、PSK、感兴趣流),然后照着纸配两端,配完再逐项核对。这一步花十分钟,能省掉后面两小时的排查。

29.2.7 IPSec 不通的排查顺序

IPSec 不通的排查有一个非常标准的顺序,按阶段定位,不要盲目抓包:

阶段 查什么 命令 判断
1 IKE 协商(Phase 1)是否成功 display ike sa 有 SA 且有 RD/ST 状态
2 IPSec SA(Phase 2)是否建立 display ipsec sa 有入/出方向 SA
3 感兴趣流是否匹配 display acl 3000 计数是否增长
4 报文是否加密进入隧道 display firewall session table 能看到加密后的会话
5 策略是否放行 IKE/ESP display security-policy ALLOW_IKE 计数增长
6 对端配置是否镜像 登录对端查 两端算法/密钥/流一致

如果第 1 阶段就失败(没有 IKE SA),问题必然是「参数不一致或报文不通」:预共享密钥不同、IKE 版本不同(v1/v2,ike peer PEER1 v2 里的 v2 很关键)、算法不匹配、UDP 500 被拦、或对端地址写错。

如果第 1 阶段成功、第 2 阶段失败,问题在于「IPSec 提议不匹配」或「感兴趣流不匹配」:提议里的加密/认证算法两端不同,或者 ACL 定义的范围不一致。

如果两个阶段都成功但业务不通,问题在「路由」或「策略」:隧道没加密的流量,是你策略拦了;加密了但不通,是路由回不去。

这个「分层排查」方法论,比「一上来就开 debug」高效得多。debug 日志量大、干扰多,只在 IKE 协商失败的细节排查时用。

29.3 H3C 设备配置详解

29.3.1 H3C 的内容安全:安全策略 + 配置文件

H3C F1000 的内容安全是「业务策略 → DPI 应用 profile → 安全策略引用」三层结构。下面依据 H3C 官方文档整理(应用层检测引擎配置 https://www.h3c.com/cn/d_202603/2784373_30005_0.htm 、IPS 配置 https://www.h3c.com/cn/d_202605/2848885_30005_0.htm ):

# 第一步:建各业务的安全策略(IPS / 反病毒 / URL 过滤各自一套)
system-view
sysname F1000-NGFW

ips policy IPS-POLICY
 quit
anti-virus policy AV-POLICY
 quit
url-filter policy URL-POLICY
 quit

第二步是把各业务策略组合进一个 DPI 应用 profile——这是 H3C 独有的中间层,也是最容易漏的一层:

# 第二步:创建 DPI 应用 profile,并关联各 DPI 业务策略
app-profile DPI-PROFILE
 ips apply policy IPS-POLICY mode protect
 anti-virus apply policy AV-POLICY mode protect
 url-filter apply policy URL-POLICY
 quit

# 第三步:手工激活 DPI 策略配置(关键,见下文)
inspect activate

最后在安全策略规则里引用这个 profile:

# 第四步:安全策略引用 DPI 应用 profile
security-policy ip
 rule name TRUST_TO_UNTRUST
  source-zone trust
  destination-zone untrust
  source-ip-subnet 192.168.10.0 24
  action pass
  profile DPI-PROFILE
  quit
 quit

三个必须记住的要点,全部来自官方文档原文:

  1. 命令是 app-profile,不是 dpi app-profile。 我第一轮里写的 dpi app-profile 是错的,已更正。官方原文:「DPI应用profile是DPI业务的配置模板,用于关联各DPI业务的策略……DPI应用profile被安全策略规则引用后,各DPI业务策略才能生效。」
  2. mode { protect | alert } 是必须参数。 IPS 和反病毒在 profile 里引用时都要指定模式:protect 是防护(阻断),alert 是仅告警。不写模式命令不完整。
  3. 必须执行 inspect activate。 官方说明:策略变更后系统会在 20 秒间隔内检测、约 40 秒时自动激活,但**「如果用户希望对变更的配置立即进行激活,可执行 inspect activate 命令手工激活」**。刚配完就测试发现不生效,十有八九是还没激活(或忘了激活)。注意官方也声明「执行此命令会暂时中断DPI业务的处理」,所以不要在业务高峰敲。

一个 DPI 应用 profile 只能引用一个同类策略(官方原文:一个 profile 只能引用一个 IPS 策略 / 一个 URL 过滤策略),重复配置时后配置覆盖前面的。所以「不同部门不同 IPS 策略」要靠建多个 profile、在安全策略里分行引用。

29.3.2 H3C 的 SSL VPN 配置骨架

H3C 的 SSL VPN 结构是「网关(gateway)+ 访问实例(context)+ 地址池 + SSL 服务器策略」:

# 第一步:配置 PKI 域与 SSL 服务器策略(引用证书或自签)
pki domain sslvpn
 quit
ssl server-policy ssl
 pki-domain sslvpn
 quit

# 第二步:配置 SSL VPN 网关,绑定公网地址与端口
sslvpn gateway gw
 ip address 203.0.113.10 port 4430
 ssl server-policy ssl
 service enable
 quit

# 第三步:创建为客户端分配的地址池
sslvpn ip address-pool ippool 192.168.100.1 192.168.100.100

⚠ 待核实:待核实 H3C sslvpn context 及内部资源配置(ip-tunnel / web-access / permit)的完整命令序列,需按《F1000 SSL VPN 配置指导》核对

H3C 的 SSL VPN 配置比华为多出「访问实例(context)」这一层抽象。一个 context 就是一个「资源访问规则集」,把网关、地址池、可访问资源(网段/URL)、用户认证串起来。对企业来说,这层抽象的好处是可以按部门建多个 context(销售看 CRM、研发看代码库),坏处是初学门槛更高。

29.3.3 H3C 的 IPSec 站点到站点配置骨架

H3C 的 IPSec 配置结构与华为高度对应,但命令词差异较多:

# 第一步:IPsec 安全提议
ipsec transform-set transform1
 esp encryption-algorithm aes-cbc-256
 esp authentication-algorithm sha256
 quit

# 第二步:IKEv2 profile
ikev2 profile profile1
 match remote identity address 198.51.100.88 255.255.255.255
 authentication-method pre-share
 keychain key1
 quit

# 第三步:IKE keychain(预共享密钥)
ike keychain key1
 pre-shared-key address 198.51.100.88 255.255.255.255 key simple YourPreSharedKey
 quit

# 第四步:感兴趣流 ACL
acl advanced 3101
 rule 0 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.50.0 0.0.0.255
 quit

# 第五步:IPsec 安全策略并应用到公网接口
ipsec policy policy1 1 isakmp
 remote-address 198.51.100.88
 transform-set transform1
 security acl 3101
 ikev2-profile profile1
 quit
interface GigabitEthernet1/0/1
 ipsec apply policy policy1
 quit

H3C 的 keychain 与 ikev2-profile 是 V7 时代的新结构,与华为的 ike peer 定位等价,但多了一层 keychain 抽象。注意 ikepolicy 与 ipsec policy 的命名容易混,H3C 里的 ipsec policy 是 IPsec 安全策略,ikev2 profile 是协商参数。

29.3.4 H3C 的 NAT 与 IPSec 冲突

H3C 上有两个与 IPSec 相关的 NAT 陷阱,必须专门讲:

陷阱一:NAT 把 IPSec 报文拦截或转换了。 如果源 NAT 的 ACL 覆盖了 IPSec 隧道内的流量,ISP 侧会先做 NAT 再做 IPSec 封装,导致隧道建立但业务不通。解决方法是在 NAT 的 ACL 里 deny 掉 IPSec 感兴趣流:

# NAT ACL 里把进隧道的流量排除掉
acl basic 2000
 rule 5 deny source 192.168.10.0 0.0.0.255
 rule 10 permit source 192.168.0.0 0.0.255.255
 quit

这条 rule 5 deny 的顺序必须在 permit 之前,否则不生效。

陷阱二:NAT Server 与 IPSec 感兴趣流冲突。 如果一台服务器的公网地址做了 NAT Server,同时它所在的网段又在 IPSec 感兴趣流里,就会出现「加密的还是转换的」的歧义。解决方法是把 IPSec 感兴趣流做得足够精确(只包含真正需要走隧道的网段),不要用 any。

这两个陷阱在华为上同样存在,处理方式一样:NAT 的 ACL 必须先排除 IPSec 感兴趣流。 记住这条,可以避免大量「隧道起来了但不通」的疑难杂症。

29.3.5 H3C 内容安全与策略的关联细节

H3C 的 security-policy ip 规则里引用内容安全配置文件之后,还有两个细节决定「能不能真的起作用」:

细节一:规则的匹配加速可能影响内容安全。 H3C 上有一条「规则匹配加速」的机制,它会把规则的匹配结果缓存起来提高转发性能。但在内容安全场景下,加速可能让某些需要深度检测的流量走快速路径,导致检测被跳过。如果发现「策略引用了 profile 但部分流量没被检测」,先去查规则匹配加速的状态。

# 查看安全策略规则匹配加速状态
display security-policy ip rule matching acceleration status

⚠ 待核实:待核实 H3C 安全策略规则匹配加速的准确命令名称与内容安全场景下的配置建议,需按《F1000 安全策略配置指导》确认

细节二:profile 与规则的绑定是「同向」的。 一条 trust → untrust 的策略上挂的 AV 配置文件,只检测「从内往外」的流量里的病毒。如果要检测「外网下载进来」和「内网上传出去」两个方向的病毒,需要在对应方向的策略上分别引用——返回流量走会话,不重新过策略,所以下载方向实际是由「客户端发起的那条策略」的 profile 检测的。

这个细节很反直觉,衍生出一个重要结论:如果要查杀「下载到内网的文件」里的病毒,profile 必须挂在「内网发起、去往外网」的那条策略上,因为下载流量的会话是由内网客户端的请求建立的。挂在 untrust → trust 上是没用的,因为这条方向根本没有独立的策略——返回流量走会话。新手经常挂错方向,然后说「AV 没用,下载的病毒文件没拦」。

29.3.6 H3C 内容安全的应用场景分级

把前面讲的原则落到一张可执行的策略表上,这是企业级部署时最有用的一张表:

业务流量 应用识别 IPS AV URL 过滤 说明
办公区网页浏览 是 是 是 是 风险最高,全量检测
办公区文件下载 是 是 是 否 AV 是重点
视频会议 / 流媒体 是 是 否 否 不做 AV,避免性能崩溃
内网到 DMZ 应用系统 否 否 否 否 内部可信流量,只做五元组
访客上网 是 否 否 是 访客风险高,用 URL 过滤限制
IPSec 隧道内流量 否 是 是 否 加密流量无法做 URL 过滤

最后一行值得特别注意:IPSec 隧道里的流量是加密的,内容安全检测不到明文。所以「有 VPN 的出口」与「没有 VPN 的出口」,在内容安全上要区别对待——你不能指望防火墙查杀隧道里的病毒。对策是在隧道的两端都部署检测,让流量在进入隧道前、离开隧道后各被检查一次。

29.4 华为 / H3C 命令对照表

功能 华为(USG6000E) H3C(F1000 Comware V7) 差异说明
IPS 配置文件 profile type ips name X ips policy X 视图名不同
AV 配置文件 profile type av name X anti-virus policy X 视图名不同
URL 过滤 profile type url-filter name X url-filter policy X 视图名不同
策略引用 profile ips X / profile av X profile X(引用 DPI 应用 profile) H3C 多一层组合,引用的是 DPI profile
特征库更新 update schedule 按版本命令,需查配置指导 —
SSL VPN 网关 v-gateway X interface GE1/0/1 sslvpn gateway X + ip address 华为一条命令,H3C 分步
SSL VPN 地址池 按版本,通常在 v-gateway 视图下 sslvpn ip address-pool X A B —
SSL 服务器策略 引用证书配置 ssl server-policy X + pki-domain —
IPSec 提议 ipsec proposal X ipsec transform-set X 命令名不同
IKE 对等体 ike peer X v2 ikev2 profile X + ike keychain H3C 分两层
预共享密钥 pre-shared-key cipher X(在 ike peer 下) pre-shared-key address ... key simple X(在 keychain 下) —
感兴趣流 security acl X security acl X 相同
应用策略 接口 ipsec policy X 接口 ipsec apply policy X H3C 多 apply
查看 IKE SA display ike sa display ike sa 相同
查看 IPSec SA display ipsec sa display ipsec sa 相同

29.5 配置验证

29.5.1 内容安全验证

# 查看 IPS 特征库版本与已加载状态
display ips signature

# 查看内容安全配置文件是否真的被策略引用
display security-policy

配置了内容安全之后,验证「真的在检测」的最好方法是看统计计数,而不是看功能灯:

# 查看内容安全检测的命中统计(华为)
display engine statistics

⚠ 待核实:待核实 USG6000E 上内容安全检测命中的统计查看命令名称(不同版本为 display ips/display antivirus/统一统计等),需按型号版本确认

一个更朴素的验证手段:找一台测试机,访问一个已知会被拦的站点(比如 URL 过滤里 block 的分类),如果被拦并生成日志,说明链路是通的。 这比看命令行输出直观得多。

29.5.2 SSL VPN 验证

1. 从外网终端访问 https://<公网地址>:<端口>
2. 出现登录页 → 输入用户名密码 → 成功登录
3. 进入资源列表 → 能看到已发布的内网资源
4. 点击访问 → 能打开内网页面

登录页能出来但登录失败,是认证问题;登录成功但看不到资源,是资源绑定问题;看到资源但访问失败,是安全策略问题。分三段定位,比查日志快。

29.5.3 IPSec 验证

# 查看 IKE SA(Phase 1)
display ike sa

# 查看 IPSec SA(Phase 2)
display ipsec sa

# 查看 IPSec 策略与统计
display ipsec statistics

display ike sa 的输出中,状态列出现 RD(Ready)表示协商完成。如果一直是 ND(Nogood/无响应),说明报文没进设备或被拦,先查安全策略有没有放行 UDP 500。

display ipsec sa 能看到入方向/出方向各一条 SA,以及每条 SA 的加解密字节计数。计数不增长就是没有流量进隧道,此时不是加密问题而是感兴趣流或路由问题。

29.6 排错与故障树

29.6.1 IPSec 不通的完整故障树

症状 可能原因 排查命令 定位方法
无 IKE SA,状态 ND 报文没到设备/UDP 500 被拦 display ike sa、display security-policy 放行 untrust→local 的 UDP 500/4500
无 IKE SA,有协商但失败 预共享密钥不一致 两端对比配置 密钥必须完全一致
无 IKE SA,算法不匹配 加密/哈希/DH 组不一致 display ike proposal 两端逐项比对
IKE SA 建立但无 IPSec SA IPSec 提议不匹配 display ipsec sa 两端 ESP 算法核对
有 SA 但业务不通 感兴趣流不镜像 display acl X 两端 ACL 互为镜像
有 SA、有流量但不通 NAT 抢先转换了 display nat session NAT ACL 里 deny 掉隧道流量
分点互通、部分不通 路由未覆盖对端所有网段 display ip routing-table 隧道接口/静态路由
偶发断连 DPD 未配或超时 display ike sa 看状态 配置 DPD 探测
重启后不通 配置未保存 display saved-configuration 保存配置

「有 SA 但业务不通」有五个可能原因,按概率从高到低排: ①两端感兴趣流不镜像;②NAT 抢先转换;③路由缺失;④有一侧策略拦了;⑤MTU 问题(大包被丢,表现为「小包通、大包不通」)。

第 ⑤ 条最隐蔽:IPSec 封装后有额外开销,隧道内 MTU 需要调整。现象是 PING 小包通、PING 大包不通、网页打不开但能开个头。解决方法是在两端接口上调 MTU/MSS:

# 调整隧道接口的 TCP MSS,避免大包被丢
interface Tunnel1
 tcp adjust-mss 1400
 quit

29.6.2 内容安全的故障树

症状 可能原因 排查命令 定位方法
开了 IPS 但没检测 策略未引用配置文件 display security-policy 看规则下有没有 profile
正常业务被大量拦截 动作设为全部 block display profile type ips 改为高危 block、低危 alert
URL 过滤不生效 分类库未更新 / 分类名拼错 display url-filter 更新库、核对分类名
性能骤降 全开内容安全、硬件规格不够 display cpu-usage 评估应用层吞吐,关闭非必要检测
告警日志太多没法看 低危特征也告警 调整日志级别 只留需要关注的特征

29.6.3 SSL VPN 的故障树

症状 可能原因 排查命令 定位方法
打不开登录页 安全策略未放行 untrust→local;端口未开 display security-policy 放行 SSL 端口到 local
登录页出来了但登录失败 用户 service-type 未含 sslvpn;密码错 display aaa / 日志 检查用户属性和认证域
登录成功但资源列表为空 未绑定可访问资源 display v-gateway 补充资源绑定
资源可见但访问失败 缺「地址池→内网」策略 查策略表 补一条以地址池为源的策略
能访问部分资源、部分不通 地址池与内网网段重叠 display ip routing-table 换地址池网段
访问速度极慢 加密开销大 / 带宽不足 display cpu-usage 评估并发与硬件
断线后不能重连 会话超时配置不当 查超时参数 调整超时时间

「登录成功但资源列表为空」和「资源可见但访问失败」是两个完全不同的层次:前者是「资源发布」问题(你根本没告诉网关有哪些资源),后者是「安全策略」问题(资源发布了但流量被拦)。分清这两层,排障时间能缩短一半。

29.6.4 一个真实的案例

现象:新上的 NGFW 开启了 IPS 与 AV,但运维发现「网速慢了一半」,而且没有任何安全告警。

排查过程:

  1. display cpu-usage 看到处理内容安全的引擎占用很高;
  2. display security-policy 发现引用内容安全的规则是 source-zone trust destination-zone untrust 且没有限制服务或应用——所有出网流量都在做全量内容检测;
  3. 实际情况是:IPS/AV 是全包检测(每条流的每个报文都要过一遍特征匹配),而这条规则覆盖了办公室内所有下载、视频、大文件传输;
  4. 优化方案:只对「下载类、可执行文件、文档」做深度检测,对「视频流、大文件下载」仅做 IPS 检测不做 AV,并把这些规则拆成两条:一条挂 AV+IPS 用于普通网页浏览,另一条只挂 IPS 用于大流量场景。

这个案例说明:内容安全不是「开得越全越好」,是「按业务分级检测」。 教科书里的配置模板通常是「全开」,但生产环境必须按业务类型拆规则,否则性能会成为新的故障源。

29.7 新手踩坑与注意事项

  1. 开了功能但没在策略里引用配置文件——这是本章第一大坑,功能开了等于没开,查半天以为设备有问题。
  2. IPS 动作全设 block——正常业务被拦一半,最后索性全关。必须按威胁级别分级:高危阻断、低危告警。
  3. 特征库从不更新——库是出厂时的版本,已知威胁都认不出,等于心理安慰。
  4. SSL VPN 只放行了 untrust→local 登录,忘放行 VPN 地址池→内网——用户能登录但访问不到任何资源。
  5. IPSec 两端感兴趣流不镜像——SA 能建立但业务不通,这是 IPSec 最常见的坑。
  6. NAT 的 ACL 没排除 IPSec 感兴趣流——NAT 先转换、IPSec 再加密,导致隧道内流量被改写,业务异常。
  7. IPSec 漏放行 UDP 500/4500——协商报文被策略拦截,display ike sa 一直是 ND,且没有任何提示。
  8. IKE 版本不一致(v1 vs v2)——华为 ike peer X v2 里的 v2 必须与对端匹配,漏写默认 v1,两端谈不起来。
  9. 隧道 MTU 问题导致「小包通大包不通」——配 tcp adjust-mss,这是极难自行定位的一类故障。
  10. 内容安全全量开启导致性能崩溃——按业务分级检测,别指望一台设备把所有检测开到最大。
  11. SSL VPN 地址池与内网网段重叠——路由冲突,VPN 用户访问部分资源异常。地址池必须用独立网段。
  12. IPSec 预共享密钥用默认值或弱口令——预共享密钥是 IPsec 唯一的安全前提,泄露等于隧道完全敞开。
  13. SSL VPN 没配证书用自签证书——浏览器每次弹「不安全」,用户习惯性忽略警告,反而降低整体安全意识。
  14. 改完 VPN 配置不清旧 SA——旧的 SA 继续使用旧参数,出现「配置改了没生效」。清 SA 的命令是 reset ike sa / reset ipsec sa。

29.8 本章小结

29.8.1 要点清单

  • 安全策略是门禁,内容安全(IPS/AV/URL/应用识别)是门禁之后的检查。
  • 开了功能 ≠ 生效了:内容安全必须在安全策略规则里用 profile 引用才生效。
  • 动作分级是核心设计:高危 block、低危 alert,持续调优。
  • SSL VPN 是「人连网络」,IPSec 站点到站点是「网络连网络」。
  • SSL VPN 六步:网关 → 认证 → 地址池 → 资源 → untrust→local 策略 → 地址池→内网策略。
  • IPSec 五步:提议 → IKE 参数 → 对等体 → 感兴趣流 → 应用。两端参数与感兴趣流必须完全镜像。
  • IPSec 排障分层:Phase 1(IKE)→ Phase 2(IPSec SA)→ 感兴趣流 → 路由/策略。
  • NAT 的 ACL 必须先 deny 掉 IPSec 感兴趣流,两边都适用。
  • 内容安全是「提高攻击成本」,不是「消灭风险」。

29.8.2 自测题

  1. 为什么「开了 IPS 功能但没有任何检测效果」是最常见的问题?正确做法是什么?
  2. IPSec 的 Phase 1 和 Phase 2 分别协商什么?Phase 1 成功但 Phase 2 失败,问题出在哪?
  3. 「两端 IPSec SA 都建立了,但业务不通」至少列出三个可能原因。
  4. SSL VPN 用户能登录但访问不到内网资源,最可能漏配什么?
  5. 为什么 NAT 的 ACL 里要 deny 掉 IPSec 感兴趣流?
  1. 因为内容安全必须在安全策略规则的 profile 引用后才生效,只建配置文件不引用等于没开。正确做法是建好 profile 后,在对应的安全策略规则下用 profile ips X / profile av X 引用。
  2. Phase 1(IKE SA)协商加密隧道的基本参数:加密算法、哈希算法、DH 组、认证方式与预共享密钥;Phase 2(IPSec SA)协商实际承载业务数据的 SA:ESP 加密/认证算法、封装模式、SPI。Phase 1 成功而 Phase 2 失败,问题在 IPSec 提议(ipsec proposal / transform-set)两端不匹配,或感兴趣流不匹配。
  3. ①两端感兴趣流不镜像;②NAT 抢先转换了隧道流量;③路由缺失(对端网段无路由);④一侧安全策略拦截了明文流量;⑤MTU 问题导致大包被丢。
  4. 漏配「VPN 地址池 → 内网资源」的安全策略。VPN 用户的源地址是地址池地址而非内网地址,必须显式放行。
  5. 如果 NAT 的 ACL 覆盖了 IPSec 感兴趣流,报文会被先做源地址转换再被 IPSec 封装,隧道内承载的流量源地址被改写,对端无法正确还原与回程,出现「SA 已建立但业务不通」。

关于本书:《华为 / H3C 网络设备典型功能配置详解》—— 面向国内高校/企业网络环境, 华为 VRP 与 H3C Comware 双厂商并排配置的实操教材,共 43 章。 全书所有命令尽量有官方出处,查不到的显式标注「待核实」。 返回系列目录