防火墙安全策略之URL过滤与域名组
一、URL过滤
1、URL过滤
1.1 简介
定义
URL过滤功能可以对用户访问的URL进行控制,允许或禁止用户访问某些网页资源,达到规范上网行为的目的。另外,对于指定URL分类的HTTP报文,FW可以修改报文中的DSCP字段,即DSCP优先级,从而便于其他网络设备根据修改后的DSCP优先级区分流量,对不同分类的URL流量采取差异化处理
目的
随着互联网应用的迅速发展,计算机网络在经济和生活的各个领域迅速普及,使得信息的获取、共享和传播更加方便,但同时也给企业带来了前所未有的威胁:
- 员工在工作时间随意地访问与工作无关的网站,严重影响了工作效率
- 员工随意访问非法或恶意的网站,造成公司机密信息泄露,甚至会带来病毒、木马和蠕虫等威胁攻击
- 在内部网络拥堵时段,无法保证员工正常访问与工作相关的网站(如公司主页、搜索引擎等),影响工作效率
URL过滤技术可以根据不同的用户/组、时间段和安全区域等信息,对用户/组进行URL访问控制,达到精确管理用户上网行为的目的。同时,URL过滤技术还可以对不同URL分类的HTTP报文修改其DSCP优先级,以便于其他网络设备对不同分类的URL流量采取差异化处理
1.2?应用场景
URL过滤功能通常用于企业网关,精确管理用户使用HTTP或HTTPS访问网络资源的行为
FW作为企业网关部署在网络边界,当企业用户发起HTTP或HTTPS的URL请求时,通过URL过滤功能可以实现对用户的请求进行放行、告警或者阻断。如图1所示,使用URL过滤后:
- 当用户访问合法的网站时,放行此请求,并选择是否重标记报文的DSCP优先级
- 当用户访问非法的网站时,阻断此请求
URL过滤还可以通过引用时间段或用户/组等配置项,实现针对不同时间段或不同用户/组的请求进行放行或者阻断,达到更加精细化和准确化控制员工上网权限的需求
1.3 原理描述
URL格式
URL地址用来完整地描述Internet上的网页或者其他资源的地址
URL的一般格式为:“protocol://hostname[:port]/path[?query]”。各参数含义如表1所示
字段 | 含义 |
protocol | 使用的应用协议,最常用的是HTTP或HTTPS协议 |
hostname | Web服务器的域名或者IP地址 |
:port | 可选,通信端口。各种应用协议都有默认的端口号,如HTTP协议的默认端口为80、HTTPS协议的默认端口号为443。当Web服务器采用非默认端口时,URL中不能省略端口号 |
path | 由零个或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址 |
?query | 可选,用于给动态网页传递参数 |
例如,如图1所示,对于“http://www.example.com:8088/news/edu.aspx?name=tom&age=20”:
图1?URL格式介绍
URL匹配方式
URL匹配方式包括前缀匹配、后缀匹配、关键字匹配、精确匹配。
管理员可以在白名单、黑名单、自定义分类和预定义分类中配置URL规则和域名规则,其中URL规则的匹配范围是全部URL,域名规则的匹配范围只是域名(或者IP地址)部分。URL规则和域名规则支持相同的匹配方式,表1对几种匹配方式做了简单比较
匹配方式 | 定义 | 条目???????? | 匹配结果 |
前缀匹配 | 匹配所有以指定字符串开头的URL | www.example* | 匹配所有以www.example开头的URL,如:
|
后缀匹配 | 匹配所有以指定字符串结尾的URL | *aspx | 匹配所有以aspx结尾的URL,如:
|
关键字匹配 | 匹配所有包含指定字符串的URL | *sport* | 匹配所有包含sport的URL,如:
|
精确匹配 | 首先判断URL和指定字符串是否匹配,如果未匹配,则去除URL的最后一个目录,再和指定字符串进行匹配;如果还未匹配,则继续去除URL的最后一个目录,再和指定字符串进行匹配。以此类推,直到用域名去匹配指定的字符串为止 | www.example.com | 根据匹配规则,以下URL可以匹配 www.example.com
以下URL不会匹配该条目:
|
URL进行匹配时,不同的匹配方式存在如下优先级顺序,由高至低如下所示:
精确匹配 > 后缀匹配 > 前缀匹配 > 关键字匹配
例如,URL“www.example.com/news”同时符合以下条目,则查询结果以精确匹配条件“www.example.com/news”对应的URL分类为准
- 精确匹配:www.example.com/news
- 前缀匹配:www.example.com/*
- 关键字匹配:*example*
在同一种匹配方式下,匹配规则越长优先级越高。例如以下条目均属于前缀匹配方式,则URL“www.example.com/news/index.html”会优先匹配“www.example.com/news/*”条目。
- www.example.com/news/*
- www.example.com/*
在同一种匹配方式下,如果匹配规则长度也相同,则最终以配置的动作模式为准。如表2所示,两个条目均属于“关键字匹配”方式,且匹配规则长度相同均为4。对于URL“www.example.com/welcome.html”来说:
- 当动作模式为“严格模式”时,则最终查询结果以动作最为严格的URL分类为准,本例中为URL分类B,动作为阻断
- 当动作模式为“松散模式”时,则最终查询结果以动作最为宽松的URL分类为准,本例中为URL分类A,动作为允许
表2?动作模式
条目 | URL分类 | 控制动作 |
*.com* | URL分类A | 允许 |
*html* | URL分类B | 阻断 |
URL过滤方式
当用户的URL访问请求匹配到某条URL规则或域名规则后,FW会根据URL过滤方式对此URL访问请求作出相应的处理
FW提供基于黑白名单、URL分类查询、URL信誉和恶意URL的过滤方式,达到精确管理用户上网行为的目的
- 黑白名单:FW将解析出的URL地址与黑白名单进行匹配,如果匹配白名单则允许该URL请求;如果匹配黑名单则阻断该URL请求,同时访问者的浏览器上会显示一个Web推送页面
- URL分类查询:URL分类分为自定义分类和预定义分类,一个URL分类可以包含若干条URL,一条URL可以属于多个分类。设备提取URL信息后,优先进行自定义分类的查询。如果匹配自定义分类,则按照URL过滤配置文件中配置的响应动作进行处理。当控制动作为阻断时,FW将阻断该URL请求,同时访问者的浏览器上会显示一个Web推送页面
URL预定义分类查询分为两种方式:
-
本地查询:设备初次上电时,已经将URL分类预置库加载到缓存里。当设备提取了URL信息后,首先会在缓存中查询该URL对应的分类。如果查询到URL分类,则按照URL过滤配置文件中配置的响应动作进行处理。当控制动作为阻断时,FW将阻断该URL请求,同时访问者的浏览器上会显示一个Web推送页面。如果查询不到,则到远程查询服务器上继续查询。如果远程查询服务器不可用,则按照缺省响应动作进行处理
-
远程查询:远程查询服务器可以部署在广域网或本地网络中,提供更庞大的URL分类信息。当本地缓存中查询不到URL对应的分类时,设备将该URL送入远程查询服务器继续查询。如果查询到URL对应的分类,则按照URL过滤配置文件中配置的响应动作进行处理,并将该URL和其对应的分类信息保存到本地缓存中,以便下次快速查询。当控制动作为阻断时,FW将阻断该URL请求,同时访问者的浏览器上会显示一个Web推送页面。如果查询不到,则按照分类为“其他”的响应动作进行处理。如果在指定时间内没有返回任何分类信息,则按照超时动作进行处理。设备运行一段时间后,缓存的内容会不断更新,并以文件的形式保存到存储介质中。当设备重启后,系统会自动加载保存的缓存信息,减少远程分类服务器查询的过程
URL过滤的控制动作包括允许、告警和阻断,其严格程度依次增高
- 允许:指允许用户访问请求的URL
- 告警:指允许用户访问请求的URL,同时记录日志
- 阻断:指阻断用户访问请求的URL,同时记录日志
当URL属于多个分类时,响应动作将按照动作模式执行
- 严格模式:最终动作取所有命中分类中最严格的动作。例如URL属于2个分类,响应动作分别为“告警”和“阻断”,此时执行“阻断”
- 松散模式:最终动作取所有命中分类中最宽松的动作。例如URL属于2个分类,响应动作分别为“告警”和“阻断”,此时执行“告警”
URL信誉
URL信誉反映了用户访问的URL是否值得信赖。FW可以利用远程查询服务获取URL的信誉值,并对低信誉的URL实施阻断。
FW可以利用URL信誉热点库和远程查询服务获取URL的信誉值
- URL信誉热点库是由安全中心平台(sec.huawei.com)发布的,用来快速获取云端最新的URL信誉数据到本地,以便对不可信的URL进行及时阻断。URL信誉热点库只有在加载URL远程查询License和URL远程查询组件包后,相应的配置才会生效
- 如果FW未启用URL信誉热点库升级功能,在本地查询不到URL信誉值时,可通过URL远程查询功能来获取最新的URL信誉值
恶意URL
恶意URL的来源有2个:
-
反病毒功能反馈的恶意URL。
-
在FW与沙箱联动场景下,沙箱反馈的恶意URL。
开启恶意URL检测功能后,URL过滤功能利用这些恶意URL信息即可对后续流量进行检测,提升设备的检测能力。如果解析出的URL地址匹配恶意URL,FW将阻断该URL请求,同时访问者的浏览器上会显示一个Web推送页面,推送信息可在FW上编辑
从实现效果上看,恶意URL和黑名单类似,二者的区别如下:
- 黑名单需要手动配置,恶意URL不需要手动配置
- 黑名单不存在超时时间,配置后一直生效。恶意URL存在超时时间,达到此时间后恶意URL会被自动删除
- 黑名单配置信息存储在配置文件中,恶意URL信息存储在缓存中。当FW重启时,恶意URL缓存将被清空
在线查询URL分类
-
如果在FW上查询不到某个URL的分类,可以通过在线查询的方式获取该URL的分类信息。当FW针对该URL进行远程查询时,相应的分类信息将被更新到本地URL分类库。这样可确保访问控制和行为审计等配置的准确性,防止错误地阻断或放行用户访问网站。
在线查询URL分类的服务由华为安全中心(sec.huawei.com)提供。登录网站后,选择“客户支持?>?URL分类查询”。在页面显示的文本框中输入要查询的URL地址,即可查询出其所属的URL分类。如果您认为URL分类信息不准确,或者华为安全中心平台无法识别该URL地址所属的分类,您可以填写反馈信息,帮助我们更好地完善URL分类信息
1.4?URL过滤处理流程
介绍FW进行URL过滤的处理流程
在FW启用URL过滤功能的情况下,当用户通过FW使用HTTP或HTTPS访问某个网络资源时,FW将进行URL过滤。处理流程如图1所示:
图1?URL过滤处理流程图
1. 用户发起URL访问请求,如果数据流匹配了安全策略,且安全策略的动作为允许,则进行URL过滤处理流程
2.?FW检测HTTP报文是否异常
- 如果HTTP报文异常,则阻断该请求
- 如果HTTP报文正常,则进行下一步检测
3.?FW将URL信息与白名单进行匹配
- 如果匹配白名单,则允许该请求通过
- 如果未匹配白名单,则进行下一步检测
4.?FW将URL信息与黑名单进行匹配
- 如果匹配黑名单,则阻断该请求
- 如果未匹配黑名单,则进行下一步检测
5.?FW将URL信息与自定义分类进行匹配
- 如果匹配自定义分类,则按照自定义URL分类的控制动作处理请求(管理员自行向预定义分类中添加的URL属于自定义分类的URL)
- 如果未匹配自定义分类,则进行下一步检测
6.?FW将URL信息与恶意URL、低信誉URL进行匹配
- 如果匹配恶意URL或低信誉URL,则阻断该请求
- 如果未匹配恶意URL或低信誉URL,则进行下一步检测
7.?FW将URL信息与本地缓存中的预定义分类进行匹配
- 如果在本地缓存中查询到对应的分类,则按照该分类的控制动作处理请求
- 如果在本地缓存中没有查询到对应的分类,则进行远程查询
- 如果远程查询服务器可用,则继续进行远程查询
- 如果远程查询服务器不可用,则按照缺省动作处理请求
8.?启动远程查询
- 如果远程查询服务器在设定的超时时间内没有返回结果,则按照管理员配置的“超时后动作”处理
- 如果远程查询服务器上明确查询到该URL属于某个预定义分类,则按照该分类的控制动作处理
1.5?URL远程查询过程
介绍FW进行URL远程查询的过程:
当FW支持URL远程查询功能时,可以通过远程查询扩充本地的预定义URL分类库,便于下一次的快速查询
一般来说,URL远程查询由安全中心、调度服务器和查询服务器共同完成。各设备的作用如下:
-
安全中心:安全中心的域名为sec.huawei.com,作用是对FW进行设备认证。如果认证通过,安全中心将根据FW所在的国家/地区信息,向FW提供该区域内的调度服务器地址和端口。和安全中心进行交互时,FW上需要配置安全策略放行相关流量,协议为TCP,目的端口为80
-
调度服务器:调度服务器的作用是向FW提供区域内的查询服务器地址和端口。由于调度服务器是分区域部署的,所以FW上必须配置正确的国家/地区信息,否则无法成功获取到调度服务器的地址和端口,和调度服务器进行交互时,FW上需要配置安全策略放行相关流量,协议为TCP,目的端口为12612。
-
查询服务器:查询服务器的作用是处理查询请求,并将查询结果返回给FW。查询服务器也是分区域部署的,且和调度服务器存在配套关系,即调度服务器只能向FW提供同一区域内的查询服务器地址和端口。和查询服务器进行交互时,FW上需要配置安全策略放行相关流量,协议为UDP,目的端口为12600
由以上内容可知,FW需要和Internet连接,才能与安全中心通信。而部分用户的FW不能与Internet连接,如果这部分用户需要获取URL远程查询功能,可以购买华为公司的产品SecoCenter,并部署在本地网络中。SecoCenter同时集成了调度服务器和查询服务器,相关介绍请参考对应的产品手册
按照服务器部署位置来划分,FW相应支持两种远程查询方式,分别为远程模式和本地模式
- 远程模式下,FW与安全中心进行通信。调度服务器根据FW上配置的国家/地区信息,转发查询请求给该国家/地区内的查询服务器处理
- 本地模式下,FW与SecoCenter进行通信,不会连接安全中心
远程模式下的大致交互过程如图1所示。如果是本地模式,将省略图1中和安全中心的交互过程
交互过程如下:
- FW向华为安全中心发起认证请求,并请求调度服务器的地址
- 认证通过后,华为安全中心根据FW的国家/地区信息,向FW提供该区域内的调度服务器地址和端口
- FW向调度服务器请求查询服务器的地址和端口
- 调度服务器确认FW的设备信息无误后,向FW提供查询服务器的地址和端口。一般来说,FW将收到多个查询服务器的地址和端口
- FW向所有查询服务器发起测速消息,并根据响应速度从中选出最优服务器,然后向该服务器请求URL分类信息
- 查询服务器反馈URL分类信息,FW将根据此分类信息继续进行URL过滤
2、使用限制和注意事项
2.1?HTTPS URL过滤的加密流量过滤功能使用限制
URL过滤功能只支持过滤HTTP或HTTPS协议的URL请求。当过滤HTTPS协议的URL请求时,还需要配置SSL加密流量检测功能或加密流量过滤功能。如果用户希望HTTPS URL过滤更精确,建议配置SSL加密流量检测功能,而加密流量过滤功能实现的URL过滤是基于域名级别,不够精确,即通过从客户端Client Hello报文的SNI(Server Name Indication)字段、服务器Certificate报文的CN(Common Name)和SAN(Subject Alternative Name)字段中获取用户访问的网站域名。如果用户使用加密流量过滤功能实现HTTPS URL过滤,请先阅读以下使用限制:
- 在浏览器存在代理的情况下,当用户访问某些网站时,FW从客户端Client Hello报文的SNI字段、服务器Certificate报文的CN和SAN字段中提取的网站域名可能与实际网站的域名不匹配,这会导致URL过滤功能不生效。例如当用户通过手机的UC浏览器访问优酷网站时,URL过滤功能不生效,通过关闭手机UC浏览器的云加速功能可以解决
- 当某些浏览器传输数据采用私有协议时,可能导致URL过滤功能不生效。例如谷歌浏览器默认使用私有协议QUIC(Quick UDP Internet Connection)进行数据传输,该协议使用专门的加密方式,FW不能解密,导致URL过滤无法过滤通过谷歌浏览器访问的HTTPS网站,通过配置安全策略将QUIC应用阻断可以解决
- 当某些网站服务器通过相同的IP地址为多个域名提供服务时,SNI字段可能会包含多个域名,如果URL过滤黑名单只配置了其中一个域名,则无法阻断所有来自这个网站的流量。例如,用户通过HTTPS访问网站www.example.com,该网站可能有多个域名,例如1.example.com、2.example.com等,如果仅在URL过滤黑名单中配置1.example.com,则不能完全阻断这个网站的流量,通过在黑名单中配置一级域名*.example.com可以解决
- 当一个证书中有多个URL(即多个网站使用一个证书)时,SAN字段可能会包含多个URL,如果其中一个URL被阻断,会导致这条流量都被阻断,其他的URL也访问不了
- 如果将某个网站的域名加入URL过滤白名单,则不能保证该网站下的所有内嵌网页都正常访问。例如:当访问网站www.example.com时,如果只配置白名单为www.example.com,则该网站下不是以www.example.com为域名的内嵌网页均不能正常访问,通过将不是以www.example.com为域名的内嵌网页都加入白名单可以解决
- 由于加密流量过滤功能是通过SSL握手报文实现URL过滤的,客户端尚未发起HTTP请求,因此不支持发送URL推送信息,通过配置SSL加密流量检测功能,可以发送URL推送信息
二、域名组
1、简介
介绍域名组的基本概念和使用场景
域名组是域名的集合,可以被多种类型的策略引用,策略包括安全策略、认证策略、带宽策略、策略路由、NAT策略和审计策略。域名组的工作原理如图1所示
假设FW已配置域名组“domain_group”,并包含域名成员“example.com”。并同时配置了带宽策略,在目的地址中使用域名组“domain_group”作为匹配条件
- 客户端访问域名“example.com”,发起DNS请求
- FW解析DNS服务器返回的应答报文,由于域名“example.com”匹配到已配置的域名组,于是记录该域名与IP地址的映射关系
- 客户端使用返回的IP地址进行数据访问,根据IP与域名的映射关系,该访问会命中带宽策略,并执行带宽通道的动作,如重标记DSCP优先级等
2、原理描述
介绍域名的匹配方式和匹配过程
2.1 匹配方式
域名匹配方式分为精确匹配和后缀匹配,表1对两种匹配方式做了简单比较。
匹配方式 | 定义 | 条目 | 匹配结果 |
精确匹配 | 和指定的字符串完全匹配的域名 | www.example.com | 根据匹配规则,以下域名可以匹配该条目:
以下域名不会匹配该条目:
|
后缀匹配 | 匹配所有以指定字符串结尾的域名 | *.example.com | 匹配所有以example.com结尾的域名,如:
以下域名不会匹配该条目:
|
2.2?匹配过程
FW收到DNS报文后,会对其进行域名解析。在通过域名进行安全策略匹配时,会根据策略所引用的域名不同而匹配规则不同,具体如下:
- 如果某安全策略只引用了精确域名或后缀域名,则FW只能通过对DNS报文的域名进行精确匹配或后缀匹配的方式来匹配该策略
- 如果某安全策略同时引用了精确域名和后缀域名,则FW对DNS报文的域名分别进行精确匹配和后缀匹配,只要有一个匹配成功,则成功匹配该策略的域名
例如,某DNS报文解析后域名为www.example.test.com,若配置的某条安全策略policy1引用域名时分别存在三种情况及对应的策略匹配结果如下表所示
DNS报文域名 | policy1引用的域名 | 域名匹配结果 |
www.example.test.com | 精确域名: www.example.com | 匹配失败 |
后缀域名: *.test.com | 匹配成功 | |
精确域名和后缀域名:
| 匹配成功 |
对于后缀匹配,存在以下几点要求:
- 配置域名只支持*通配符,且域名只支持*.X.X格式
- DNS请求和应答报文必须经过FW,否则FW无法学习*.X.X相关的域名和IP地址对应关系。
2.3?使用限制和注意事项
配置域名组之前请先阅读使用限制
- 学习域名和IP地址的对应关系有两种方式:
- DNS请求报文经过FW
- 在FW上配置DNS服务器,FW主动发起DNS请求刷新域名和IP地址的对应关系
虚拟系统下仅支持DNS请求报文经过FW来学习域名和IP地址的对应关系,不支持配置DNS服务器,因此FW在虚拟系统下不会主动发起DNS请求刷新域名和IP地址的对应关系
- 以下两种情况,在使用域名组作为匹配条件前,需要在FW上配置DNS服务器(与PC端配置的DNS服务器一致),以便FW和PC端学习到的域名和IP地址的对应关系一致:
- 当DNS报文不经过FW时,FW无法记录域名和IP地址的对应关系
- 当FW进行了重启操作时,由于PC端已经有DNS记录,PC端不会重新发起DNS请求,导致FW学习不到DNS记录
对于以上两种情况,虚拟系统下由于不支持配置DNS服务器,因此FW不会主动发起DNS请求刷新虚拟系统下域名和IP地址的对应关系,导致虚拟系统下引用域名组的策略失效
- 域名组不支持IPv6
- 域名组仅支持解析A类型的DNS应答报文,不支持解析其他类型的DNS应答报文,例如对于CNAME类型(表示当前域名存在多种别名),当配置域名组作为策略的匹配条件时,在域名解析的过程中,如果DNS服务器返回的DNS应答报文是CNAME类型,域名无法解析出IP地址,导致无法命中该策略。此时建议将当前域名的所有别名都加入域名组,并在策略中引用,使域名可以解析出IP地址,保证策略可以命中
- 对域名组中的域名进行解析时,设备发送的DNS请求报文源地址为报文出接口IP地址。因此,为了FW可以收到响应报文并学习到域名对应的IP地址,需要保证报文出接口与DNS服务器之间路由可达
3、维护域名组
display domain-set?{?verbose?domain-set-name?[?domain?domain-name?] |?all?}? ? //可以查看域名组的具体信息 |
三、总结
区别:
- URL过滤提供更精细的控制,可以基于具体的URL路径进行过滤。域名组则更注重整体管理,适用于一组域名需要相同策略的情况
- URL过滤通常需要管理员指定每个要过滤的URL。域名组允许将多个相关域名组织在一起,使管理更加简便
应用场景:
- 在实际应用中,这两者可以结合使用。例如,可以使用域名组来管理一组相关的域名,并在需要更精细控制的情况下,通过URL过滤来指定具体的URL策略
- 使用域名组的主要优势是更容易维护和更新,尤其在有大量相关域名的情况下
- 如果只是使用域名作为对象,只是单纯的做域名与IP之间的映射关系,那么域名组的形式会更加适合,那如果是域名的后面还跟着目录,比如www.xxxx.com/aaa.htmc/,那这样子的话URL效果会更好些
那么本篇文章就到这里结束了,谢谢各位帅哥靓女!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!