在安全策略中引用域名组
顾名思义,域名组是域名的集合。域名组的本质也是IP地址组。
在动态网络环境中,IP地址不断变化,网络管理员很难及时跟踪到IP地址的变化并更新安全策略。在这种情况下,可以使用域名组代替IP地址,作为安全策略的匹配条件。常见的场景包括:
- 放行或阻断所有去往指定域名的流量。例如,数据中心的Web服务器www.example.com要访问图片服务器img.hi4example.com。
- 阻断去往某个指定域名的流量,但是放行去往其子域名的流量。例如,禁止员工访问salesforce.com,但是允许访问公司站点huawei.my.salesforce.com。
- 禁止员工访问外网,但是允许软件自动更新。例如,Windows系统要经常从WSUS(Windows Server Update Services)服务器下载补丁,杀毒软件要定期更新病毒库。
域名组的工作原理
客户端以域名形式访问指定服务,首先需要向DNS服务器发起DNS请求。防火墙从DNS服务器的应答报文中解析出域名和IP地址的映射关系,确认该域名归属于某域名组,并记录到域名映射表中。在客户端向服务端发起业务访问时,防火墙根据域名映射表检查安全策略。在这种场景下,客户端的DNS请求报文必须经过防火墙,如图3-1所示。
如果客户端的DNS请求不经过防火墙,防火墙无法从DNS应答报文中解析域名和IP地址的映射关系。此时,需要在防火墙上配置DNS服务器,由防火墙主动发起DNS请求来获得域名映射关系。当TTL小于7分钟时,防火墙每隔3分钟主动发起一次DNS请求,以刷新域名映射表。受地理位置、时区、负载均衡配置等影响,不同DNS服务器的域名解析结果可能不同。因此,在防火墙上配置的DNS服务器,必须与客户端使用的DNS服务器保持一致。
域名映射表存储在防火墙的内存中,当防火墙重启时,域名映射表会清空。此时,客户端已经记录了DNS缓存,不会再次发起DNS请求,防火墙也就不能再次获得域名映射表。在这种情况下,也需要在防火墙上配置DNS服务器。
考虑到防火墙重启的可能性,不管客户端DNS请求是否经过防火墙,都建议在防火墙上配置DNS服务器。
域名组的配置方法
以Windows系统更新场景为例,域名组的配置完整配置包括3个步骤。
(1)配置域名组。Windows系统更新使用的域名较多,具体请以微软官方文档为准,此处仅为示例,不保证域名列表完整。
system-view domain-set name WindowsUpdate description WindowsUpdate add domain windowsupdate.microsoft.com add domain *.windowsupdate.microsoft.com add domain *.update.microsoft.com add domain *.windowsupdate.com add domain download.microsoft.com add domain wustat.windows.com
域名组中添加的域名信息,可以是具体的域名(download.example.com),也可以使用通配符(*.example.com)。以下域名都可以匹配*.example.com:
- www.example.com
- news.example.com
- www.news.example.com
如果使用通配符,最多只能包含1个“*”且必须以“*”开头,其格式只能是表3-1支持的类型。
支持的域名格式 |
不支持的域名格式 |
---|---|
*.example.com *.a.example.com *.a.b.example.com |
*.com或*.net (太多域名,无法处理) *.*.example.com (可以使用*.example.com) *.example.*.com (只能包含1个通配符) example.*.com (通配符必须位于开头) *example.com或example*.com (通配符必须是域名空间的一个节点) *.a.b.c.example.com (最多支持5级域名空间) |
(2)在防火墙上配置DNS服务器,该DNS服务器必须与客户端使用的DNS服务器保持一致,此处以114DNS为例。
system-view dns resolve dns server 114.114.114.114 dns server 114.114.115.115
security-policy rule name "Allow Windows update" source-zone trust destination-zone untrust source-address 10.1.1.10 24 destination-address domain-set WindowsUpdate //引用已创建的域名组。 action permit rule-name "Allow DNS" source-zone trust //允许客户端DNS请求经过防火墙 source-zone local //允许防火墙发送DNS请求报文 destination-zone untrust //DNS服务器所在区域 destination-address address-set 114DNS //目的地址是114DNS的地址 service dns action permit
<sysname> display domain-set verbose WindowsUpdate Domain-set: WindowsUpdate Description: WindowsUpdate Reference number(s): 1 Item number(s): 6 Item(s): Domain: windowsupdate.microsoft.com ID : 0 Total IP Address: 1 IP Address: 52.185.71.28 TTL : 38400 seconds Left Time : 38400 seconds Hit Times : 1 Domain: *.windowsupdate.microsoft.com ID : 1 Total IP Address: 0 Domain: *.update.microsoft.com ID : 2 Total IP Address: 0 Domain: *.windowsupdate.com ID : 3 Total IP Address: 0 Domain: download.microsoft.com ID : 4 Total IP Address: 0 Domain: wustat.windows.com ID : 5 Total IP Address: 0
域名解析失败的常见原因
(1)客户端的DNS请求不经过防火墙。请在防火墙上配置相同的DNS服务器。
(2)客户端已有DNS缓存,未主动发起DNS请求。请在客户端或者防火墙上清除DNS缓存。
Windows客户端:ipconfig /flushdns
防火墙:reset dns dynamic-host
(3)客户端的Hosts文件中配置了本地域名解析。请删除本地域名。
(4)域名组中指定的域名为别名。防火墙的早期版本仅支持type A,当域名组中使用别名时,DNS应答报文为type CNAME,防火墙不能解析出最终的IP地址。防火墙最新版本同时支持type A和type CNAME,请升级防火墙到最新版本。