今天有个客户咨询华为防火墙中,域名黑白名单、安全策略哪个优先级高,突然一下子脑袋卡住了,似是而非不敢随便回复,赶紧一顿翻阅,最终找到一篇华为官方给出的详细介绍。特记录下来,以便后续翻阅和借鉴。
原文链接:
HUAWEI USG6000E 产品文档https://support.huawei.com/hedex/hdx.do?docid=EDOC1100149311&id=ZH-CN_CONCEPT_0182274810
以下内容全部摘抄与原文,供大家借鉴学习。
原理描述
介绍DNS过滤的原理描述。
DNS过滤处理流程
流量命中安全策略,且安全策略配置了DNS过滤配置文件时,从DNS请求报文中提取域名并送往DNS过滤处理。DNS过滤的具体流程如图1所示:
- 域名是否命中白名单。
- 命中白名单,则直接放行该流量。
- 未命中白名单,则进行下一步检测。
- 域名是否命中黑名单。
- 命中黑名单,则直接阻断该流量。
- 未命中黑名单,则进行下一步检测。
- 域名是否匹配自定义分类。
- 匹配自定义DNS分类,则按照自定义DNS分类的控制动作处理该流量。
- 未匹配自定义DNS分类,则进行下一步检测。
- 域名是否匹配本地缓存中的预定义分类。
- 匹配本地缓存中的预定义分类,则按照预定义分类的控制动作处理该流量。
- 未匹配预定义分类,则进行远程查询。
- 如果远程查询服务器可用,则继续进行远程查询。
- 如果远程查询服务器不可用,则按照缺省动作处理请求。
- 启动远程查询。
- 如果远程查询服务器在设定的超时时间内没有返回结果,则按照管理员配置的“超时后动作”处理。
- 如果远程查询服务器上明确查询到该域名属于某个预定义分类,则按照该分类的控制动作处理。
如果该域名不属于任何一个确定的分类,则按照“其他”类的控制动作处理该请求。
- 对于命中阻断动作的报文,查看DNS过滤配置文件中是否配置了重定向。
- 如果配置了重定向,被DNS过滤阻断的报文将重定向到有效地址,并构造响应报文。
- 如果未配置重定向,则对报文进行阻断。
DNS过滤的安全搜索处理流程
用户的搜索请求在经过DNS过滤的安全搜索功能处理之后会被引导到对搜索结果进行过滤的搜索引擎服务端,搜索引擎服务端会返回给用户过滤了色情和具有潜在攻击性内容后的搜索结果,从而规范了用户的上网行为。
DNS过滤的安全搜索功能包括预定义和自定义两种配置方式。预定义DNS安全搜索功能仅支持bing、google、youtube三个搜索引擎,且无法对DNS响应报文中的安全搜索服务器IP、CNAME、TTL缓存时间等参数进行配置。如果需要对上述三种以外的搜索引擎配置安全搜索功能或需要自定义DNS响应报文的IP、CNAME、TTL等参数,可以通过自定义DNS安全搜索功能配置DNS响应报文的构造规则。预定义DNS安全搜索功能和自定义DNS安全搜索功能相互独立,且自定义DNS安全搜索的优先级高于预定义DNS安全搜索。
DNS过滤的安全搜索功能在DNS过滤处理流程之后进行,经DNS过滤处理之后,除了命中白名单或被阻断的DNS请求报文不需要做安全搜索处理,其他报文将进行安全搜索处理流程处理,具体如图2所示:
- FW检测是否配置自定义安全搜索规则。
- 如果未配置自定义安全搜索规则,则按照5检测是否开启预定义安全搜索功能。
- 如果配置了自定义安全搜索规则,则进行下一步检测。
- FW检测请求报文中的域名是否与规则中的域名字段精确匹配。
- 如果未精确匹配规则中的域名字段,则按照5检测是否开启预定义安全搜索功能。
- 如果精确匹配了规则中的域名字段,则进行下一步检测。
- FW判断规则中配置的响应报文构造参数类型。
- 如果响应报文构造参数为IP地址,则使用规则中配置的IP地址和TTL构造响应报文,并向DNS请求发起端返回响应报文。
- 如果响应报文构造参数为CNAME,则进行下一步检测。
- FW检查规则中配置的CNAME是否在DNS Cache中,且在有效时间内。
- 如果规则中配置的CNAME在DNS Cache中且在有效时间内,则使用DNS Cache中缓存的CNAME、IP地址、TTL构造响应报文,并向DNS请求发起端返回响应报文。
- 如果规则中配置的CNAME不在DNS cache中或已失效,则使用规则中配置的CNAME向DNS服务器请求解析域名。在收到DNS服务器响应报文后,将解析后的IP地址、TTL等信息缓存到DNS Cache中。同时构造响应报文,将响应报文查询段的NAME字段填充为原始请求报文中的NAME、将应答段的CNAME填充为规则中配置的CNAME、将缓存时间填充为规则中配置的TTL、将IP地址填充为解析的IP地址,并向DNS请求发起端返回响应报文。
-
- 如果未开启预定义安全搜索功能,则按DNS过滤的处理动作进行处理。
- 如果已开启预定义安全搜索功能,则进行下一步检测。
-
FW检查当前安全搜索域名是否在DNS Cache中,且在有效时间内。
- 如果当前安全搜索域名在DNS Cache中,且在有效时间内,则使用DNS Cache中缓存的IP地址构造响应报文,并向DNS请求发起端返回响应报文。
- 如果当前安全搜索域名不在DNS Cache中或已失效,则使用当前安全搜索域名向DNS服务器请求解析域名。在收到DNS服务器响应报文后,将解析后的IP地址、TTL等信息缓存到DNS Cache中,同时使用解析后的IP地址、TTL等信息构造响应报文,并向DNS请求发起端返回响应报文。
DNS过滤和URL过滤的功能对比
对比项 | URL过滤 | DNS过滤 |
---|---|---|
控制访问阶段 | 在发起HTTP/HTTPS的URL请求阶段进行控制 | 在域名解析阶段进行控制 |
控制粒度 | 控制粒度细,可以控制到目录和文件级别 | 控制粒度粗,只能控制到域名级别 |
性能影响 | 性能影响大 | 性能影响小 |
控制范围 | 仅控制HTTP/HTTPS访问 | 该域名对应的所有服务都可以控制 |
对比来看,DNS过滤相比于URL过滤更早的进行访问控制,可以有效降低整网HTTP报文的流量;URL过滤相比于DNS过滤可以进行更精细控制用户对网络资源的访问。
DNS过滤和URL过滤的安全搜索功能对比
FW针对不同使用场景提供了基于DNS过滤和基于URL过滤两种安全搜索功能配置,二者区别如下:
-
基于DNS过滤的预定义安全搜索功能支持Google、Bing和Youtube三个网站;基于DNS过滤的自定义安全搜索功能支持自定义搜索网站域名和DNS响应报文;而基于URL过滤的安全搜索功能仅支持Bing、Google、Yahoo、Yandex和YouTube这五个搜索网站。
-
开启基于DNS过滤的预定义安全搜索功能需要在DNS过滤配置文件下使能安全搜索功能;开启基于DNS过滤的自定义安全搜索功能需要在DNS过滤配置文件下配置DNS响应报文构造规则;而开启基于URL过滤的安全搜索功能,除了需要在URL过滤配置文件下开启安全搜索功能外,还需要配置TCP代理和SSL加密流量检测的相关配置。