上班出口带宽被游戏视频占满?华为防火墙应用识别按人群按应用管到人

管上网这件事,多数公司只会上"封 IP、封端口"这一招,结果呢?游戏换个端口照玩、视频网站几百个、手机一开热点全白封。真正有效的颗粒度不是地址,是"应用"——华为防火墙的业务感知(SA)特征库能直接认出流量里跑的是什么应用,安全策略里不用写 IP 和端口,写 application category Entertainment sub-category Game 就能精准拦掉游戏类,写 application app TortoiseSVN 就能只放行研发用的那一个工具。再加上自定义应用,官方特征库没有覆盖的流量(比如员工偷偷升级手机系统占带宽)也能抓包提特征后一并管住。官方文档有一套完整的命令行举例——三类人群三套权限,本篇按这套示例把全套命令走一遍,配置脚本一并附上。

本文的组网需求、配置思路与命令步骤,整理自华为官方发布的典型配置案例,参数可直接参考使用。

组网需求

某企业在网络边界处部署了设备 DeviceA 作为安全网关。企业根据员工级别和职能不同划分了三类用户:高层管理者、市场员工、研发员工。三类用户能够访问 Internet 的权限不同,具体如表 1 所示。

用户 IP 地址 权限
高层管理者 10.3.0.2~10.3.0.20 自由访问 Internet,但为了不占用正常业务带宽,不能升级手机软件版本。
市场员工 10.3.0.21~10.3.0.120 能够访问 Internet,但不能玩游戏、不能观看网络视频。且为了不占用正常业务带宽,不能升级手机软件版本。
研发员工 10.3.0.121~10.3.0.220 只能使用 TortoiseSVN 应用。且为了不占用正常业务带宽,不能升级手机软件版本。

本例中 interface1 和 interface2 分别代表 GE0/0/1 和 GE0/0/2。

翻译成白话:内网一个网段 10.3.0.0/24 按地址段切成三拨人,同一台防火墙给出三档权限——高管"基本自由"(只禁手机系统升级这类吃带宽的后台流量)、市场"工作上网"(游戏和网视频拦掉)、研发"最严"(只能跑 TortoiseSVN 这一个应用,其他流量命中缺省策略全拦)。注意权限的分界线是"应用"而不是网站和端口。

配置思路

本例的配置分四步走:

  • 配置接口 IP 地址和安全区域,完成网络基本参数配置。
  • 配置三个地址对象,分别为高层管理者、市场员工和研发员工 PC 所在网段,用于在安全策略中作为源 IP 地址匹配条件引用。
  • 升级业务感知特征库——特征库越新,能认出的应用越多。
  • 配置自定义应用,用来识别预定义应用未覆盖的应用流量:本例中 TortoiseSVN 应用、游戏和网络视频类应用在预定义应用中已覆盖,升级手机软件版本的流量不在预定义应用范围内,需要抓包提特征后自定义。
  • 配置安全策略:阻断全员升级手机软件版本的流量、放行高管自由上网、阻断市场员工的游戏和网络视频、放行市场员工其他上网流量、只放行研发员工的 TortoiseSVN。

核心逻辑一句话:地址对象圈"谁",应用条件圈"干什么",安全策略把两者一组合就是"谁能干什么";预设应用不够用的部分,用自定义应用补签名。

操作步骤

一、配置接口IP地址和安全区域,完成网络基本参数配置

配置 GE0/0/1 接口 IP 地址,将接口加入 trust 域:

<HUAWEI> system-view
[HUAWEI] sysname DeviceA
[DeviceA] interface ge 0/0/1
[DeviceA-GE0/0/1] undo portswitch
[DeviceA-GE0/0/1] ip address 10.3.0.1 24
[DeviceA-GE0/0/1] quit
[DeviceA] firewall zone trust
[DeviceA-zone-trust] add interface ge 0/0/1
[DeviceA-zone-trust] quit

配置 GE0/0/2 接口 IP 地址,将接口加入 untrust 域:

[DeviceA] interface ge 0/0/2
[DeviceA-GE0/0/2] undo portswitch
[DeviceA-GE0/0/2] ip address 1.1.1.1 24
[DeviceA-GE0/0/2] quit
[DeviceA] firewall zone untrust
[DeviceA-zone-untrust] add interface ge 0/0/2
[DeviceA-zone-untrust] quit

二、配置三类用户的地址对象

配置高层管理者的地址对象:

[DeviceA] ip address-set management type object
[DeviceA-object-address-set-management] address 0 range 10.3.0.2 10.3.0.20
[DeviceA-object-address-set-management] quit

配置市场员工的地址对象:

[DeviceA] ip address-set marketing type object
[DeviceA-object-address-set-marketing] address 0 range 10.3.0.21 10.3.0.120
[DeviceA-object-address-set-marketing] quit

配置研发员工的地址对象:

[DeviceA] ip address-set research type object
[DeviceA-object-address-set-research] address 0 range 10.3.0.121 10.3.0.220
[DeviceA-object-address-set-research] quit

三拨人同网段不同区间,用 address-set 各圈一段,后面安全策略直接按名字引用,比每条策略写裸地址好维护。

三、升级业务感知特征库

华为安全中心(isecurity.huawei.com)定期发布业务感知特征库,及时将设备的业务感知特征库升级到最新版本,可以有效提升设备对应用的识别能力(详细升级步骤参考官方"升级业务感知特征库"章节)。

四、新建自定义应用

由于组网需求中要求员工不能升级手机软件版本,预定义应用无法满足该需求,因此需要自定义应用。首先通过抓包分析升级手机软件版本的流量的特征,再创建用来匹配数据流特征的规则。本例中,抓包发现升级手机软件版本的两个关键报文中均包含升级服务器的地址,将其提取为签名:

[DeviceA] sa
[DeviceA-sa] user-defined-application name UD_upgrade_os 
[DeviceA-sa-user-defined-app-UD_abc] rule name 1
[DeviceA-sa-user-defined-app-UD_abc-rule-1] protocol tcp
[DeviceA-sa-user-defined-app-UD_abc-rule-1] port 80 
[DeviceA-sa-user-defined-app-UD_abc-rule-1] signature context packet direction request plain-string "*****" field General-Payload  //此处字符串仅为示例,请将*****替换为抓包获取的完整字符串,此案例中为HTTP协议报文中的Host字段值。
[DeviceA-sa-user-defined-app-UD_abc-rule-1] quit
[DeviceA-sa-user-defined-app-UD_abc] rule name 2
[DeviceA-sa-user-defined-app-UD_abc-rule-2] protocol tcp
[DeviceA-sa-user-defined-app-UD_abc-rule-2] port 443 
[DeviceA-sa-user-defined-app-UD_abc-rule-2] signature context packet direction request plain-string ***** field General-Payload  //此处字符串仅为示例,请将*****替换为抓包获取的完整字符串,此案例中为TLS协议报文中的SNI字段值。
[DeviceA-sa-user-defined-app-UD_abc-rule-2] quit
[DeviceA-sa-user-defined-app-UD_abc] quit
[DeviceA-sa] quit

两条规则分别对准 80 端口(HTTP 报文的 Host 字段)和 443 端口(TLS 报文的 SNI 字段),HTTP 明文和 HTTPS 加密两类升级流量都认得出。(注:自定义应用名为 UD_upgrade_os,提示符官方举例中显示为 UD_abc,按源文原样输入即可;实际配置时把 ***** 换成自己抓包提取的完整字符串。现网流量复杂,提取应用特征有一定技术难度,参考本案例仍无法完成时可联系华为技术支持。)

提交配置,自定义应用新建、修改或删除后不会立即生效,需要执行提交操作来激活:

[DeviceA] engine configuration commit

五、配置安全策略禁止所有员工升级手机软件版本

保证正常业务带宽,把上一步的自定义应用直接 deny:

[DeviceA] security-policy
[DeviceA-policy-security] rule name policy_sec_deny_upgrade_os
[DeviceA-policy-security-rule-policy_sec_deny_upgrade_os] source-zone trust
[DeviceA-policy-security-rule-policy_sec_deny_upgrade_os] destination-zone untrust
[DeviceA-policy-security-rule-policy_sec_deny_upgrade_os] application app UD_upgrade_os 
[DeviceA-policy-security-rule-policy_sec_deny_upgrade_os] action deny
[DeviceA-policy-security-rule-policy_sec_deny_upgrade_os] quit

UD_upgrade_os 为上一步创建的自定义应用,用来识别升级手机软件版本的流量——这条策略排在最前面,三类人一视同仁。

六、配置高层管理者的安全策略

允许其自由访问 Internet:

[DeviceA-policy-security] rule name policy_sec_management
[DeviceA-policy-security-rule-policy_sec_management] source-zone trust
[DeviceA-policy-security-rule-policy_sec_management] destination-zone untrust
[DeviceA-policy-security-rule-policy_sec_management] source-address address-set management
[DeviceA-policy-security-rule-policy_sec_management] action permit
[DeviceA-policy-security-rule-policy_sec_management] quit

高管这条不带 application 条件,放行整个 address-set 的流量——升级流量已被上一条拦掉了。

七、配置市场员工的安全策略

先配置阻断游戏和网络视频流量的安全策略:

[DeviceA-policy-security] rule name policy_sec_marketing_1
[DeviceA-policy-security-rule-policy_sec_marketing_1] source-zone trust
[DeviceA-policy-security-rule-policy_sec_marketing_1] destination-zone untrust
[DeviceA-policy-security-rule-policy_sec_marketing_1] source-address address-set marketing
[DeviceA-policy-security-rule-policy_sec_marketing_1] application category Entertainment sub-category Media_Sharing
[DeviceA-policy-security-rule-policy_sec_marketing_1] application category Entertainment sub-category Game
[DeviceA-policy-security-rule-policy_sec_marketing_1] action deny
[DeviceA-policy-security-rule-policy_sec_marketing_1] quit

娱乐大类下的媒体分享(网络视频)和游戏两个子类一条策略写进去——这就是应用识别的价值:不用维护几百个视频网站和游戏服务器的地址清单,特征库替你认。

再配置允许访问 Internet 的安全策略:

[DeviceA-policy-security] rule name policy_sec_marketing_2
[DeviceA-policy-security-rule-policy_sec_marketing_2] source-zone trust
[DeviceA-policy-security-rule-policy_sec_marketing_2] destination-zone untrust
[DeviceA-policy-security-rule-policy_sec_marketing_2] source-address address-set marketing
[DeviceA-policy-security-rule-policy_sec_marketing_2] action permit
[DeviceA-policy-security-rule-policy_sec_marketing_2] quit

由于前一条策略已经阻断了游戏和网络视频,所以此处允许所有流量通过即可。

八、配置研发员工的安全策略

只允许其使用 TortoiseSVN 应用:

[DeviceA-policy-security] rule name policy_sec_research
[DeviceA-policy-security-rule-policy_sec_research] source-zone trust
[DeviceA-policy-security-rule-policy_sec_research] source-address address-set research
[DeviceA-policy-security-rule-policy_sec_research] destination-zone untrust
[DeviceA-policy-security-rule-policy_sec_research] application app TortoiseSVN
[DeviceA-policy-security-rule-policy_sec_research] action permit
[DeviceA-policy-security-rule-policy_sec_research] quit

研发员工的访问 Internet 的其他流量会命中缺省安全策略而被阻断——只留一个口子,比挨个封网站省事得多。

(注:本块第二条命令官方源文示例中无 destination-zone 行,其规则三要素以源区域加源地址加应用构成,按源文原样配置即可;如你的环境需要更严格匹配,可自行补 destination-zone untrust。)

检查配置结果

配置生效后按官方给出的口径验证:

  • 使用高层管理者网段的 PC,可以无限制访问 Internet。高层管理者无法进行手机软件版本升级。
  • 使用市场员工网段的 PC,无法登录网络游戏、无法观看网络视频,但是可以正常访问其他网络应用。市场部员工无法进行手机软件版本升级。
  • 使用研发员工网段的 PC,除了 TortoiseSVN 应用以外都无法访问 Internet。研发部员工无法进行手机软件版本升级。

三类人各找一台 PC 分别试:正常业务网站该通的通、被禁的应用该拦的拦,升级手机软件版本的动作三拨人都应失败。

配置脚本

DeviceA 的配置脚本:

#                                                                            
ip address-set management type object                                          
 address 0 range 10.3.0.2 10.3.0.20
#                                                                            
ip address-set marketing type object                                          
 address 0 range 10.3.0.21 10.3.0.120
#                                                                            
ip address-set research type object                                          
 address 0 range 10.3.0.121 10.3.0.220
#
interface GE0/0/1 
 ip address 10.3.0.1 255.255.255.0
#
interface GE0/0/2
 ip address 1.1.1.1 255.255.255.0
#
firewall zone trust
 set priority 85
 add interface GE0/0/1 
#
firewall zone untrust
 set priority 5
 add interface GE0/0/2
#
sa
 user-defined-application name UD_upgrade_os
  label Bandwidth-Consuming Mobile-Supported 
  rule name 1
   protocol tcp
   port 80
   signature context packet direction request plain-string "*****" field General-Payload
  rule name 2
   protocol tcp
   port 443
   signature context packet direction request plain-string ***** field General-Payload
#                        
security-policy
 rule name policy_sec_deny_upgrade_os
  source-zone trust                                                             
  destination-zone untrust                                                         
  application app UD_upgrade_os
  action deny
 rule name policy_sec_management
  source-zone trust                                                             
  destination-zone untrust                                                         
  source-address address-set management                                        
  action permit                                                                   
 rule name policy_sec_marketing_1                                                              
  source-zone trust                                                             
  destination-zone untrust                                                      
  source-address address-set marketing                                      
  application category Entertainment sub-category Media_Sharing
  action deny
 rule name policy_sec_marketing_2                                                              
  source-zone trust                                                             
  destination-zone untrust                                                      
  source-address address-set marketing                                      
  action permit   
 rule name policy_sec_research
  source-zone trust                                                             
  destination-zone untrust                                                         
  source-address address-set research
  application app TortoiseSVN
  action permit 
#
return

注意事项

  • 本举例出自华为 USG 系列防火墙的官方典型配置案例,落到具体设备前,请核对你的设备型号与软件版本对应用识别功能的支持情况。
  • 特征库要保持在最新:预定义应用能不能认出来,取决于业务感知特征库版本,特征库老旧时新应用会被当成普通流量放过去,定期升级是这套方案的前提。
  • 策略顺序有讲究:deny 类规则要排在对应人群的 permit 之前(本例升级流量拦在第一、市场游戏视频拦在放行前),安全策略自上而下命中即止,顺序一反效果全无。
  • HTTPS 流量识别有边界:预定义特征对加密流量的识别能力随版本演进,自定义应用抓 HTTPS 特征依赖 TLS 的 SNI 字段,若客户端启用加密嗅探对抗手段则识别可能失效,重要场景配合 SSL 解密方案使用。
  • 自定义应用改完记得 engine configuration commit,否则配置不生效;签名里的字符串来自抓包,别照抄本例的 ***** 示例占位。
  • 地址区间为官方示例值,换环境按自己部门的实际地址段切分。

封哪些应用别拍脑袋,先让设备跑一周看应用用量排行再定名单,贵州诚鑫致达科技给客户上应用管控时都从这份排行开始。各厂商设备的应用识别能力与命令存在差异,操作前请核对你的设备型号与软件版本。

源:华为USG防火墙官方文档


企业存储选型参考|贵州诚鑫致达科技

做机房存储、虚拟化或监控归档,群晖在售机型参考:DS725+(双盘位起步)/ DS425+(4 盘位,门店与分支够用,后期再升级)。选型评估、上门部署与数据迁移,搜「诚鑫致达」能找到我们。