上班时间只许上工作网站?华为防火墙URL黑白名单按部门分开管
研发部上班时间要管住:只许访问工作相关的网站,别的统统打不开;市场部要放开:随便逛,但个别网站不给上。一个公司两套口径,在出口防火墙上做 URL 过滤就能按部门分流——给研发部配一套白名单模式的 URL 过滤配置文件,给市场部配一套黑名单模式的,再各自挂到对应网段的安全策略上,加上 09:00~17:00 的时间段,下班自动松绑。华为官方文档有一套完整的 Web 举例——通过黑名单和白名单控制用户访问的网站,本篇按官方步骤原样走一遍,包括容易被忽略的加密 DNS 阻断,配置脚本照录供逐行核对。
组网需求(官方原文转述)
DeviceA 作为企业网关部署在网络边界,对用户访问外部网络的 HTTP 请求进行 URL 过滤。公司有研发部门员工和市场部门员工两类,具体需求如下:
- 对研发部门员工实行白名单管理,在每天的 09:00~17:00,只允许访问与工作相关的 URL(www.example.com/working)和域名(www.example.org),除此之外,其他 URL 均不允许访问。
- 对市场部门员工实行黑名单管理,在每天的 09:00~17:00,除部分 URL(www.example.net/*)不允许访问之外,其他 URL 均可以正常访问。
本例中 interface1 和 interface2 分别代表 GE0/0/1 和 GE0/0/2。
配置思路(官方原文五条)
- 配置接口 IP 地址和安全区域,完成网络基本参数配置。
- 配置安全策略阻断加密 DNS 流量,确保用户浏览器使用非加密 DNS 进行 DNS 查询。员工使用浏览器访问网页时,部分浏览器可能默认开启安全 DNS,对于加密 DNS 流量,默认不进行 URL 过滤/DNS 过滤处理,因此需要配置安全策略阻断加密 DNS 流量,加密 DNS 流量被阻断后,浏览器会尝试使用非加密 DNS 重新进行 DNS 查询,不影响用户正常上网。
- 针对研发部门员工,新建 URL 过滤配置文件 profile_url_research,增加白名单 URL(www.example.com/working)和域名(www.example.org),并设置所有预定义分类的动作为阻断,同时设置缺省动作为阻断(远程查询服务不可用时,设备采取缺省动作,以此实现对白名单之外的 URL 进行访问控制)。
- 针对市场部门员工,新建 URL 过滤配置文件 profile_url_marketing,增加黑名单 URL(www.example.net/*),并设置所有预定义分类的动作为允许,同时设置缺省动作为允许(远程查询服务不可用时,设备采取缺省动作,以此实现对黑名单之外的 URL 进行访问控制)。
- 配置两个安全策略,引用时间段和 URL 过滤配置文件等匹配条件,实现对来自不同部门的员工的 URL 访问控制。
第二条"阻断加密 DNS"是这套配置里最容易被漏掉的前置动作——漏了它,浏览器默认开启的安全 DNS 会让 URL 过滤直接失效。
操作步骤:五步(官方 Web 路径)
第一步,配置接口 IP 地址和安全区域。选择"网络 > 接口",单击 GE0/0/2 对应的编辑入口,按如下参数配置,配置完成后单击"确定":
| 参数 | 值 |
|---|---|
| 安全区域 | trust |
| IPv4 / IP地址 | 10.1.0.1/24 |
参考上述步骤配置 GE0/0/1 接口:
| 参数 | 值 |
|---|---|
| 安全区域 | untrust |
| IPv4 / IP地址 | 1.1.1.1/24 |
第二步,配置安全策略阻断加密 DNS 流量。先建自定义服务:选择"对象 > 服务 > 服务",单击"新建",输入自定义服务名称 service_encrypted,在"协议列表"中单击"新建",按如下参数配置:
| 参数 | 值 |
|---|---|
| 协议 | UDP |
| 源端口 | 0-65535 |
| 目的端口 | 443 |
重复上述步骤,完成以下两组参数(连同上面的 UDP 443,共三个协议条目):
| 参数 | 值 |
|---|---|
| 协议 | TCP |
| 源端口 | 0-65535 |
| 目的端口 | 443 |
| 参数 | 值 |
|---|---|
| 协议 | TCP |
| 源端口 | 0-65535 |
| 目的端口 | 853 |
单击"确定",完成自定义服务的创建。
再建阻断策略。选择"策略 > 安全策略 > 安全策略",单击"新建安全策略",按如下参数配置,配置完成后单击"确定":
| 参数 | 值 |
|---|---|
| 名称 | policy_deny_dot |
| 目的地址/地区 | 1.0.0.3/32;1.1.1.3/32;8.8.4.4/32;8.8.8.8/32 |
| 目的安全区域 | untrust |
| 服务 | service_encrypted |
| 动作 | 禁止 |
最后阻断加密 DNS 应用(DNS_ECH、DNS_Over_HTTPS)。选择"策略 > 安全策略 > 安全策略",单击"新建安全策略",按如下参数配置:
| 参数 | 值 |
|---|---|
| 名称 | policy_deny_ech |
| 应用 | DNS_ECH;DNS_Over_HTTPS |
| 动作 | 禁止 |
第三步,配置两个 URL 过滤配置文件。选择"对象 > 安全配置文件 > URL过滤",在"URL过滤配置文件"中单击"新建",按如下参数配置名称为 profile_url_research 的 URL 过滤配置文件(研发部白名单模式),配置完成后单击"确定":
| 参数 | 值 |
|---|---|
| 名称 | profile_url_research |
| 加密流量过滤 | 开启 |
| URL白名单 | www.example.com/working |
| Host白名单 | www.example.org |
| Host黑名单 | dns-tunnel-check.googlezip.net、tunnel.googlezip.net |
| 缺省动作 | 阻断 |
| URL过滤级别 | 选择"自定义":将所有预定义分类的动作配置为阻断 |
再单击"新建",按如下参数配置名称为 profile_url_marketing 的 URL 过滤配置文件(市场部黑名单模式),配置完成后单击"确定":
| 参数 | 值 |
|---|---|
| 名称 | profile_url_marketing |
| 加密流量过滤 | 开启 |
| URL黑名单 | www.example.net/* |
| Host黑名单 | dns-tunnel-check.googlezip.net、tunnel.googlezip.net |
| 缺省动作 | 允许 |
| URL过滤级别 | 选择"自定义":将所有预定义分类的动作配置为允许 |
官方对两个 Host 黑名单域名的说明(原文要点):除了基于访问需求添加黑名单外,还需要在黑名单中添加 dns-tunnel-check.googlezip.net 和 tunnel.googlezip.net 这两个域名。部分浏览器如 Chrome 存在私有预取代理(Private Prefetch Proxy)功能,核心功能是通过对 dns-tunnel-check.googlezip.net 域名发起 DNS 路径探测以及通过 tunnel.googlezip.net 建立的隧道对 HTTPS 请求进行加密封装,导致网络设备无法提取到用户访问的真实 URL 或域名,从而导致 URL 过滤功能失效。通过添加黑名单禁止这两个域名的访问使浏览器不使用私有预取代理功能,不影响用户正常访问和 URL 过滤功能的使用。
本步配置完成后,单击界面右上角的"提交",在弹出的对话框中单击"确定"。
第四步,配置时间段。选择"对象 > 时间段",单击"新建",输入时间段名称 time_range,在"成员列表"中单击"新建",按如下参数配置:
| 参数 | 值 |
|---|---|
| 类型 | 周期时间段 |
| 开始时间 | 09:00 |
| 结束时间 | 17:00 |
| 每周生效时间 | 星期一、星期二、星期三、星期四、星期五、星期六、星期日 |
第五步,配置安全策略并把 URL 过滤配置文件挂上去。选择"策略 > 安全策略 > 安全策略",单击"新建安全策略",按如下参数配置针对研发部员工的 URL 访问控制策略,配置完成后单击"确定":
| 参数 | 值 |
|---|---|
| 名称 | policy_sec_research |
| 源安全区域 | trust |
| 目的安全区域 | untrust |
| 源地址 | 10.1.1.0/24 |
| 时间段 | time_range |
| 动作 | 允许 |
| 内容安全 / URL过滤 | profile_url_research |
参考上述步骤配置针对市场部员工的 URL 访问控制策略:
| 参数 | 值 |
|---|---|
| 名称 | policy_sec_marketing |
| 源安全区域 | trust |
| 目的安全区域 | untrust |
| 源地址 | 10.1.2.0/24 |
| 时间段 | time_range |
| 动作 | 允许 |
| 内容安全 / URL过滤 | profile_url_marketing |
最后,单击界面右上角的"保存",在弹出的对话框中单击"确定"。
两个部门按网段区分:研发部 10.1.1.0/24 走白名单配置文件,市场部 10.1.2.0/24 走黑名单配置文件,同一套设备两套口径并行。
验证:白名单只放行工作站点,黑名单只挡指定网址(官方检查结果原文)
研发部门任何员工在 09:00~17:00 之间,只能正常访问 URL(www.example.com/working)和域名(www.example.org),其余均被阻断。可访问 URL 举例:
- www.example.com/working/index.htm
- www.example.com/working/todo
- www.example.org
- www.example.org/network
市场部门任何员工在 09:00~17:00 之间,访问 URL(www.example.net/*)相关的网址均被阻断,其余网站均可以正常访问。不可访问 URL 举例:
判读要点:白名单模式下注意官方举例的边界——www.example.com/working 下的子路径(/index.htm、/todo)都在放行之列,Host 白名单域名下的子路径同样放行;黑名单模式下 www.example.net 整站含子路径全挡。验证时分别拿两个部门的终端试这几条官方举例 URL 最直接。
配置脚本(官方原文,供逐行核对)
#
time-range time_range 09:00 to 17:00 daily
#
ip service-set service_encrypted type object
service 0 protocol tcp source-port 0 to 65535 destination-port 443
service 1 protocol tcp source-port 0 to 65535 destination-port 853
service 2 protocol udp source-port 0 to 65535 destination-port 443
#
interface GE0/0/1
ip address 1.1.1.1 255.255.255.0
#
interface GE0/0/2
ip address 10.1.0.1 255.255.255.0
#
firewall zone trust
set priority 85
add interface GE0/0/2
#
firewall zone untrust
set priority 5
add interface GE0/0/1
#
profile type url-filter name profile_url_research
https-filter enable
default action block
add whitelist url www.example.com/working
add whitelist host www.example.org
add blacklist host dns-tunnel-check.googlezip.net
add blacklist host tunnel.googlezip.net
category pre-defined subcategory-id 101 action block
category pre-defined subcategory-id 102 action block
category pre-defined subcategory-id 162 action block
category pre-defined subcategory-id 163 action block
category pre-defined subcategory-id 164 action block
category pre-defined subcategory-id 165 action block
category pre-defined subcategory-id 103 action block
category pre-defined subcategory-id 166 action block
category pre-defined subcategory-id 167 action block
category pre-defined subcategory-id 168 action block
category pre-defined subcategory-id 104 action block
category pre-defined subcategory-id 169 action block
category pre-defined subcategory-id 170 action block
category pre-defined subcategory-id 105 action block
category pre-defined subcategory-id 171 action block
category pre-defined subcategory-id 172 action block
category pre-defined subcategory-id 173 action block
category pre-defined subcategory-id 174 action block
category pre-defined subcategory-id 106 action block
category pre-defined subcategory-id 108 action block
category pre-defined subcategory-id 251 action block
category pre-defined subcategory-id 177 action block
category pre-defined subcategory-id 109 action block
category pre-defined subcategory-id 110 action block
category pre-defined subcategory-id 248 action block
category pre-defined subcategory-id 178 action block
category pre-defined subcategory-id 111 action block
category pre-defined subcategory-id 112 action block
category pre-defined subcategory-id 179 action block
category pre-defined subcategory-id 114 action block
category pre-defined subcategory-id 115 action block
category pre-defined subcategory-id 180 action block
category pre-defined subcategory-id 181 action block
category pre-defined subcategory-id 117 action block
category pre-defined subcategory-id 118 action block
category pre-defined subcategory-id 119 action block
category pre-defined subcategory-id 122 action block
category pre-defined subcategory-id 182 action block
category pre-defined subcategory-id 183 action block
category pre-defined subcategory-id 184 action block
category pre-defined subcategory-id 123 action block
category pre-defined subcategory-id 186 action block
category pre-defined subcategory-id 187 action block
category pre-defined subcategory-id 188 action block
category pre-defined subcategory-id 189 action block
category pre-defined subcategory-id 124 action block
category pre-defined subcategory-id 125 action block
category pre-defined subcategory-id 126 action block
category pre-defined subcategory-id 190 action block
category pre-defined subcategory-id 127 action block
category pre-defined subcategory-id 128 action block
category pre-defined subcategory-id 191 action block
category pre-defined subcategory-id 192 action block
category pre-defined subcategory-id 193 action block
category pre-defined subcategory-id 194 action block
category pre-defined subcategory-id 195 action block
category pre-defined subcategory-id 196 action block
category pre-defined subcategory-id 129 action block
category pre-defined subcategory-id 130 action block
category pre-defined subcategory-id 131 action block
category pre-defined subcategory-id 197 action block
category pre-defined subcategory-id 198 action block
category pre-defined subcategory-id 199 action block
category pre-defined subcategory-id 132 action block
category pre-defined subcategory-id 227 action block
category pre-defined subcategory-id 228 action block
category pre-defined subcategory-id 200 action block
category pre-defined subcategory-id 133 action block
category pre-defined subcategory-id 201 action block
category pre-defined subcategory-id 202 action block
category pre-defined subcategory-id 204 action block
category pre-defined subcategory-id 205 action block
category pre-defined subcategory-id 134 action block
category pre-defined subcategory-id 135 action block
category pre-defined subcategory-id 136 action block
category pre-defined subcategory-id 206 action block
category pre-defined subcategory-id 207 action block
category pre-defined subcategory-id 208 action block
category pre-defined subcategory-id 137 action block
category pre-defined subcategory-id 209 action block
category pre-defined subcategory-id 210 action block
category pre-defined subcategory-id 138 action block
category pre-defined subcategory-id 139 action block
category pre-defined subcategory-id 229 action block
category pre-defined subcategory-id 140 action block
category pre-defined subcategory-id 141 action block
category pre-defined subcategory-id 142 action block
category pre-defined subcategory-id 211 action block
category pre-defined subcategory-id 212 action block
category pre-defined subcategory-id 143 action block
category pre-defined subcategory-id 144 action block
category pre-defined subcategory-id 145 action block
category pre-defined subcategory-id 240 action block
category pre-defined subcategory-id 146 action block
category pre-defined subcategory-id 213 action block
category pre-defined subcategory-id 147 action block
category pre-defined subcategory-id 253 action block
category pre-defined subcategory-id 149 action block
category pre-defined subcategory-id 150 action block
category pre-defined subcategory-id 214 action block
category pre-defined subcategory-id 215 action block
category pre-defined subcategory-id 216 action block
category pre-defined subcategory-id 217 action block
category pre-defined subcategory-id 218 action block
category pre-defined subcategory-id 219 action block
category pre-defined subcategory-id 220 action block
category pre-defined subcategory-id 221 action block
category pre-defined subcategory-id 222 action block
category pre-defined subcategory-id 223 action block
category pre-defined subcategory-id 252 action block
category pre-defined subcategory-id 151 action block
category pre-defined subcategory-id 230 action block
category pre-defined subcategory-id 152 action block
category pre-defined subcategory-id 238 action block
category pre-defined subcategory-id 153 action block
category pre-defined subcategory-id 154 action block
category pre-defined subcategory-id 155 action block
category pre-defined subcategory-id 224 action block
category pre-defined subcategory-id 225 action block
category pre-defined subcategory-id 156 action block
category pre-defined subcategory-id 157 action block
category pre-defined subcategory-id 158 action block
category pre-defined subcategory-id 231 action block
category pre-defined subcategory-id 232 action block
category pre-defined subcategory-id 159 action block
category pre-defined subcategory-id 254 action block
category pre-defined subcategory-id 160 action block
category pre-defined subcategory-id 161 action block
category pre-defined subcategory-id 176 action block
category pre-defined subcategory-id 226 action block
category pre-defined subcategory-id 234 action block
category pre-defined subcategory-id 235 action block
category pre-defined subcategory-id 236 action block
category pre-defined subcategory-id 237 action block
category pre-defined subcategory-id 239 action block
category pre-defined subcategory-id 241 action block
category pre-defined subcategory-id 233 action block
profile type url-filter name profile_url_marketing
https-filter enable
default action block
add blacklist url www.example.net/*
add blacklist host dns-tunnel-check.googlezip.net
add blacklist host tunnel.googlezip.net
#
security-policy
rule name policy_deny_dot
destination-address 1.0.0.3 mask 255.255.255.255
destination-address 1.1.1.3 mask 255.255.255.255
destination-address 8.8.4.4 mask 255.255.255.255
destination-address 8.8.8.8 mask 255.255.255.255
service service_encrypted
action deny
rule name policy_deny_ech
application app DNS_ECH
application app DNS_Over_HTTPS
action deny
rule name policy_sec_research
source-zone trust
destination-zone untrust
source-address 10.1.1.0 mask 255.255.255.0
time-range time_range
profile url-filter profile_url_research
action permit
rule name policy_sec_marketing
source-zone trust
destination-zone untrust
source-address 10.1.2.0 mask 255.255.255.0
time-range time_range
profile url-filter profile_url_marketing
action permit
脚本中 profile_url_research 里那一长串 category pre-defined subcategory-id X action block,对应的就是 Web 界面第三步里"URL过滤级别选择自定义:将所有预定义分类的动作配置为阻断"这一个动作的脚本化展开,逐条把预定义分类全部置为阻断。另有一处如实提醒:官方源文档的脚本中 profile_url_marketing 的 default action 行为 block,与官方 Web 参数表的"缺省动作:允许"不一致;按官方 Web 步骤操作后,以设备实际生成的配置为准,核对时留意这一行。
注意事项(官方口径整理)
- 加密 DNS 阻断是前置条件:policy_deny_dot(按自定义服务 service_encrypted 挡 UDP 443/TCP 443/TCP 853 与四个知名 DNS 服务器 IP)和 policy_deny_ech(挡 DNS_ECH、DNS_Over_HTTPS 应用)两条必须先配,否则浏览器默认的安全 DNS 会让加密 DNS 流量绕过 URL 过滤。
- 两个 URL 过滤配置文件都要在 Host 黑名单里加上 dns-tunnel-check.googlezip.net 和 tunnel.googlezip.net,堵住 Chrome 私有预取代理对 URL 过滤的干扰,这是官方明确要求的动作。
- 白名单模式(研发部)的收紧逻辑是"缺省动作阻断+全部分类阻断+白名单放行",黑名单模式(市场部)的放开逻辑是"缺省动作允许+全部分类允许+黑名单阻断",缺省动作在远程查询服务不可用时生效。
- 两个配置文件都要开启"加密流量过滤"(脚本对应 https-filter enable)。
- 时间段 time_range 为每天 09:00~17:00(周一至周日全选),安全策略通过引用时间段限定生效时间。
上网管控的口子松紧,建议先盘清楚业务再画规则,诚鑫致达科技做这类盘点时通常先从一两个部门试运行开始,跑顺了再推全公司。各厂商设备的命令与默认参数存在差异,本文步骤与命令均出自华为官方文档,操作前请核对你的设备型号与软件版本。
源:华为官方文档 USG防火墙6000F-S/security_cfgcase_contentsec_0007_22.0.md《Web举例:通过黑名单和白名单控制用户访问的网站》