URL过滤简介
URL过滤功能可以对用户访问的URL进行控制,允许或禁止用户访问某些网页资源,达到规范上网行为的目的。URL过滤还可以通过引用时间段或用户/组等配置项,实现针对不同时间段或不同用户/组的URL访问控制,达到更加精细化和准确化控制员工上网权限的需求。
URL过滤功能只支持过滤HTTP或HTTPS协议的URL请求。需要过滤HTTPS协议的URL请求时,还需要配置URL过滤的加密流量过滤功能。
URL过滤与DNS过滤的关系:
除了URL过滤,DNS过滤也可以达到规范上网行为的目的。DNS过滤是对DNS请求报文中的域名进行过滤,允许或禁止用户访问某些网站。
URL过滤与DNS过滤对比:
对比项 | URL过滤 | DNS过滤 |
---|---|---|
控制访问阶段 | 在发起HTTP/HTTPS的URL请求阶段进行控制 | 在域名解析阶段进行控制 |
控制粒度 | 控制粒度细,可以控制到目录和文件级别 | 控制粒度粗,只能控制到域名级别 |
性能影响 | 性能影响大 | 性能影响小 |
控制范围 | 仅控制HTTP/HTTPS访问 | 该域名对应的所有服务都可以控制 |
URL过滤原理
URL分类:
预定义URL分类
系统内置的,系统预先对大量常见的URL进行了分类。预定义URL分类不能创建、删除和重命名。
自定义URL分类
手工配置的,自定义URL分类的配置分为两种:
- 创建一个自定义URL分类,并添加URL到该自定义URL分类中。
- 向预定义URL分类中添加URL,该URL属于自定义URL分类。
自定义URL分类优先级高于预定义URL分类。
预定义URL分类查询:
预定义URL分类的查询分为两种方式:预定义URL分类缓存和远程查询服务器。
设备初次上电时,自动将URL分类预置库加载到预定义URL分类缓存里。当用户请求访问URL时,设备提取URL信息后,首先会在缓存中查询该URL对应的分类。如果查询到URL分类,则按照配置的响应动作进行处理。如果查询不到,则到远程查询服务器上继续查询,如果查询到URL对应的分类,则按照URL过滤配置文件中配置的响应动作进行处理,并将查询到的URL和其对应的分类信息保存到预定义URL分类缓存中,以便下次快速查询。
内嵌白名单功能:
一般大的网页都会内嵌其他的网页链接,如果只将主网页加入白名单,则该主网页下的内嵌网页部分将无法正常访问。因此新增了内嵌白名单功能。该功能将用户HTTP请求中的referer字段(标识用户从哪个网页跳转过来)去匹配白名单,如果匹配,用户就可以访问该网页。因此只要配置一个网页的白名单,用户就可以访问该网页下的内嵌网页,简化了配置。
内嵌白名单功能有两种实现方式,具体如下:
- 使用用户手工配置的referer-host与HTTP请求中的referer字段进行匹配,如果匹配则允许该URL请求。如果HTTP请求中的referer字段没有匹配配置的referer-host,用户还可以选择是否将referer字段去匹配所有配置的白名单规则。开启referer字段匹配白名单功能后,如果referer字段匹配白名单规则,则允许该URL请求。
- 开启referer字段匹配白名单功能后,直接使用配置的白名单与HTTP请求中的referer字段进行匹配,如果匹配命中,则允许该URL请求。
referer字段匹配白名单功能默认开启,用户也可以选择关闭该功能。
URL信誉和恶意URL:
URL信誉:
URL信誉反映了用户访问的URL是否值得信赖。开启URL信誉检测功能后,可以对低信誉的URL进行阻断。URL信誉值的查询分为两种方式:URL信誉热点库和远程查询服务器。
恶意URL:
恶意URL是指包含恶意信息的URL。开启恶意URL检测功能后,URL过滤功能利用这些恶意URL信息即可对后续流量进行阻断。
URL匹配方式:
URL过滤方式:
- 黑白名单
- URL自定义分类
- URL预定义分类
- 远程分类服务器
URL的控制动作:
URL过滤的控制动作包括允许、告警和阻断,其严格程度依次增高。
- 允许:指允许用户访问请求的URL。
- 告警:指允许用户访问请求的URL,同时记录日志。
- 阻断:指阻断用户访问请求的URL,同时记录日志。
当URL属于多个分类时,响应动作将按照动作模式执行:
- 严格模式:最终动作取所有命中分类中最严格的动作。例如URL属于2个分类,响应动作分别为“告警”和“阻断”,此时执行“阻断”。
- 松散模式:最终动作取所有命中分类中最宽松的动作。例如URL属于2个分类,响应动作分别为“告警”和“阻断”,此时执行“告警”。
URL过滤处理流程:
在NGFW启用URL过滤功能的情况下,当用户通过NGFW使用HTTP或HTTPS访问某个网络资源时, NGFW将进行URL过滤。
处理流程:
- 白名单
- 黑名单
- 自定义URL
- 预定义URL
- 远程预定义
详细URL过滤处理流程:
用户发起URL访问请求,如果数据流匹配了安全策略,且安全策略的动作为允许,则进行URL过滤处理流程。
FW检测HTTP报文是否异常。
- 如果HTTP报文异常,则阻断该请求。
- 如果HTTP报文正常,则进行下一步检测。
FW将URL信息与白名单进行匹配。
- 如果匹配白名单,则允许该请求通过。
- 如果未匹配白名单,则进行下一步检测。
FW将URL信息与黑名单进行匹配。
- 如果匹配黑名单,则阻断该请求。
- 如果未匹配黑名单,则进行下一步检测。
FW将HTTP请求中的referer字段与白名单进行匹配。
- 如果HTTP请求中的referer字段与配置的referer-host匹配,则允许该请求通过。
- 如果HTTP请求中的referer字段与配置的referer-host不匹配,用户可以决定是否使用referer字段去匹配所有配置的白名单规则。
- 当referer字段匹配白名单功能开启时,会使用referer字段与配置的所有白名单规则继续匹配。
- 如果匹配,则允许该请求通过。
- 如果未匹配,则进行下一步检测。
- 当referer字段匹配白名单功能关闭时,不会使用referer字段与配置的所有白名单匹配,而是进行下一步检测。
- 当referer字段匹配白名单功能开启时,会使用referer字段与配置的所有白名单规则继续匹配。
referer字段匹配白名单功能默认开启,如果要关闭该功能,可以配置undo referer-filter whitelist-all enable命令。
FW将URL信息与自定义分类进行匹配。
- 如果匹配自定义分类,则按照自定义URL分类的控制动作处理请求。
- 如果未匹配自定义分类,则进行下一步检测。
FW将URL信息与恶意URL、低信誉URL进行匹配。
- 如果匹配恶意URL或低信誉URL,则阻断该请求。
- 如果未匹配恶意URL或低信誉URL,则进行下一步检测。
FW将URL信息与本地缓存中的预定义分类进行匹配。
- 如果在本地缓存中查询到对应的分类,则按照该分类的控制动作处理请求。
- 如果在本地缓存中没有查询到对应的分类,则进行远程查询。
- 如果远程查询服务器可用,则继续进行远程查询。
- 如果远程查询服务器不可用,则按照缺省动作处理请求。
启动远程查询。
- 如果远程查询服务器在设定的超时时间内没有返回结果,则按照管理员配置的“超时后动作”处理。
- 如果远程查询服务器上明确查询到该URL属于某个预定义分类,则按照该分类的控制动作处理。
URL远程查询过程:
一般来说,URL远程查询由安全中心、调度服务器和查询服务器共同完成。各设备的作用如下:
安全中心:安全中心的域名为sec.huawei.com,作用是对FW进行设备认证。如果认证通过,安全中心将根据FW所在的国家/地区信息,向FW提供该区域内的调度服务器地址和端口。
和安全中心进行交互时,FW上需要配置安全策略放行相关流量,协议为TCP,目的端口为80。
调度服务器:调度服务器的作用是向FW提供区域内的查询服务器地址和端口。由于调度服务器是分区域部署的,所以FW上必须配置正确的国家/地区信息,否则无法成功获取到调度服务器的地址和端口。
和调度服务器进行交互时,FW上需要配置安全策略放行相关流量,协议为TCP,目的端口为12612。
查询服务器:查询服务器的作用是处理查询请求,并将查询结果返回给FW。查询服务器也是分区域部署的,且和调度服务器存在配套关系,即调度服务器只能向FW提供同一区域内的查询服务器地址和端口。
和查询服务器进行交互时,FW上需要配置安全策略放行相关流量,协议为UDP,目的端口为12600。
安全中心:安全中心的域名为sec.huawei.com,作用是对FW进行设备认证。如果认证通过,安全中心将根据FW所在的国家/地区信息,向FW提供该区域内的调度服务器地址和端口。
和安全中心进行交互时,FW上需要配置安全策略放行相关流量,协议为TCP,目的端口为80。
调度服务器:调度服务器的作用是向FW提供区域内的查询服务器地址和端口。由于调度服务器是分区域部署的,所以FW上必须配置正确的国家/地区信息,否则无法成功获取到调度服务器的地址和端口。
和调度服务器进行交互时,FW上需要配置安全策略放行相关流量,协议为TCP,目的端口为12612。
查询服务器:查询服务器的作用是处理查询请求,并将查询结果返回给FW。查询服务器也是分区域部署的,且和调度服务器存在配套关系,即调度服务器只能向FW提供同一区域内的查询服务器地址和端口。
和查询服务器进行交互时,FW上需要配置安全策略放行相关流量,协议为UDP,目的端口为12600。
URL远程查询过程:
- FW向华为安全中心发起认证请求,并请求调度服务器的地址。
- 认证通过后,华为安全中心根据FW的国家/地区信息,向FW提供该区域内的调度服务器地址和端口。
- FW向调度服务器请求查询服务器的地址和端口。
- 调度服务器确认FW的设备信息无误后,向FW提供查询服务器的地址和端口。一般来说,FW将收到多个查询服务器的地址和端口。
- FW向所有查询服务器发起测速消息,并根据响应速度从中选出最优服务器,然后向该服务器请求URL分类信息。
- 查询服务器反馈URL分类信息,FW将根据此分类信息继续进行URL过滤。
URL过滤配置思路
配置思路:
- 配置URL自定义分类。
- 配置黑白名单
- 配置URL过滤Profile
- 配置安全策略
- 提交编译
URL排除思路:
- 策略下配置的规则存在优先级关系。
- 用户没有在安全策略中应用或应用错误。
- 流量匹配了优先级更高的安全策略规则。
- URL过滤配置文件没有在安全策略中应用。
- 修改后的URL过滤配置文件未提交编译。
参考文档:华为HedEx文档