配置精准访问防护规则定制化防护策略
精准访问防护规则可对常见的HTTP字段(如IP、路径、Referer、User Agent、Params等)进行条件组合,用来筛选访问请求,并对命中条件的请求设置仅记录、放行或阻断操作。同时支持“JS挑战”验证,即WAF向客户端返回一段正常浏览器可以自动执行的JavaScript代码。如果客户端正常执行了JavaScript代码,则WAF在一段时间(默认30分钟)内放行该客户端的所有请求(不需要重复验证),否则拦截请求。
精准访问防护规则可以添加引用表,引用表防护规则对所有防护域名都生效,即所有防护域名都可以使用精准防护规则的引用表。
如果您已开通企业项目,您需要在“企业项目”下拉列表中选择您所在的企业项目并确保已开通操作权限,才能为该企业项目下域名配置防护策略。
前提条件
- 已添加防护网站或已新增防护策略。
- 云模式-CNAME接入的接入方式参见将网站接入WAF防护(云模式-CNAME接入)章节。
- 云模式-ELB接入的接入方式参见 将网站接入WAF防护(云模式-ELB接入)章节。
- 独享模式的接入方式参见将网站接入WAF防护(独享模式)章节。
- 如果使用独享WAF,确保独享引擎已升级到最新版本,具体的操作请参见升级独享引擎实例。
约束条件
- 云模式入门版不支持该功能。
- 云模式入门版和标准版不支持“全检测”检测模式。
- 云模式入门版和标准版不支持引用表管理功能。
- “云模式-ELB接入”方式不支持“Response Code”、“Response Length”、“Response Time”、“Response Header”和“Response Body”字段,且“云模式-CNAME”仅铂金版支持响应字段。
- 当精准访问防护规则的“防护动作”设置为“阻断”时,您可以配置攻击惩罚标准封禁访问者指定时长。配置攻击惩罚后,如果访问者的IP、Cookie或Params恶意请求被拦截时,WAF将根据攻击惩罚设置的拦截时长来封禁访问者。
- 配置的“路径”的“内容”不能包含特殊字符(<>*)。
- 添加或修改防护规则后,规则生效需要等待几分钟。规则生效后,您可以在“防护事件”页面查看防护效果。
应用场景
精准访问防护支持业务场景定制化的防护策略,可用于盗链防护、网站管理后台保护等场景。
配置精准访问防护规则
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“防护策略”,进入“防护策略”页面。
- 单击目标策略名称,进入目标策略的防护配置页面。
- 选择“精准访问防护”配置框,用户可根据自己的需要开启或关闭精准访问防护策略。
- :开启状态。
- :关闭状态。
- 在“精准访问防护配置”页面,设置“检测模式”。
精准访问防护规则提供了两种检测模式:
- 短路检测:当用户的请求符合精准防护中的拦截条件时,便立刻终止检测,进行拦截。
- 全检测:当用户的请求符合精准防护中的拦截条件时,不会立即拦截,它会继续执行其他防护的检测,待其他防护的检测完成后进行拦截。
- 在“精准访问防护”规则配置列表左上方,单击“添加规则”。
- 在弹出的对话框中,根据表1添加精准访问防护规则。
以图1的配置为例,其含义为:当用户访问目标域名下包含“/admin”的URL地址时,WAF将阻断该用户访问目标URL地址。
如果不确定配置的精准访问防护规则是否会使WAF误拦截正常的访问请求,您可以先将精准访问防护规则的“防护动作”设置为“仅记录”,在“防护事件”页面查看防护事件,确认WAF不会误拦截正常的访问请求后,再将该精准访问防护规则的“防护动作”设置为“阻断”。
表1 规则参数说明 参数
参数说明
取值样例
规则名称
自定义规则名称。
waftest
规则描述
可选参数,设置该规则的备注信息。
--
条件列表
单击“添加条件”增加新的条件,一个防护规则至少包含一项条件,最多可添加30项条件,多个条件同时满足时,本条规则才生效。
条件设置参数说明如下:- 字段
- 子字段:当字段选择“IPv4”、“IPv6”、“Params”、“Cookie”、“Response Header”或者“Header”时,请根据实际使用需求配置子字段。
须知:
子字段的长度不能超过2048字节。
- 逻辑:在“逻辑”下拉列表中选择需要的逻辑关系。
说明:
- 选择“包含任意一个”、“不包含任意一个”、“等于任意一个”、“不等于任意一个”、“前缀为任意一个”、“前缀不为任意一个”、“后缀为任意一个”或者“后缀不为任意一个”时,“内容”需要选择引用表名称,创建引用表的详细操作请参见创建引用表对防护指标进行批量配置。
- “不包含任意一个”、“不等于任意一个”、“前缀不为任意一个”、“后缀不为任意一个”是指当访问请求中字段不包含、不等于、前/后缀不为引用表中设置的任何一个值时,WAF将进行防护动作(阻断、放行或仅记录)。例如,设置“路径”字段的逻辑为“不包含所有”,选择了“test”引用表,如果“test”引用表中设置的值为test1、test2和test3,则当访问请求的路径不包含test1、test2或test3时,WAF将进行防护动作。
- 内容:输入或者选择条件匹配的内容。
说明:具体的配置请参见表1。
- “路径”包含“/admin/”
- “User Agent”前缀不为“mozilla/5.0”
- “IP”等于“192.168.2.3”
- “Cookie[key1]”前缀不为“jsessionid”
防护动作
- 阻断:表示拦截命中规则的请求,并向发起请求的客户端返回拦截响应页面。WAF默认使用统一的拦截响应页面,您也可以自定义拦截响应页面。
- 放行:表示不拦截命中规则的请求,直接放行。
- 仅记录:表示不拦截命中规则的请求,只通过日志记录请求命中了规则。您可以通过WAF日志,查询命中当前规则的请求,分析规则的防护效果。例如,是否有误拦截等。
- JS挑战:表示WAF向客户端返回一段正常浏览器可以自动执行的JavaScript代码。如果客户端正常执行了JavaScript代码,则WAF在一段时间(默认30分钟)内放行该客户端的所有请求(不需要重复验证),否则拦截请求。
“阻断”
攻击惩罚
当“防护动作”设置为“阻断”时,您可以设置攻击惩罚标准。设置攻击惩罚后,当访问者的IP、Cookie或Params恶意请求被拦截时,WAF将根据惩罚标准设置的拦截时长来封禁访问者。
长时间IP拦截
优先级
设置该条件规则检测的顺序值。如果您设置了多条规则,则多条规则间有先后匹配顺序,即访问请求将根据您设定的精准访问控制规则优先级依次进行匹配,优先级较小的精准访问控制规则优先匹配。
您可以通过优先级功能对所有精准访问控制规则进行排序,以获得最优的防护效果。
须知:如果多条精准访问控制规则的优先级取值相同,则WAF将根据添加防护规则的先后顺序进行排序匹配。
5
生效模式
用户可以选择“立即生效”或者自定义设置生效时间段。
自定义设置的时间只能为将来的某一时间段。
“立即生效”
阻断页面
当“防护动作”选择“阻断”时,可配置返回的错误页面。
- 当选择“默认设置”时,返回的错误页面为系统默认的阻断页面。
- 当选择“自定义”,返回错误信息由用户自定义。
自定义
HTTP返回码
当“阻断页面”选择“自定义”时,支持配置HTTP返回码。
418
响应标头
当“阻断页面”选择“自定义”时,支持配置响应标头。
单击“添加响应标头字段”,配置响应标头参数及参数值。
-
页面类型
当“阻断页面”选择“自定义”时,可选择阻断页面的类型“application/json”、“text/html”或者“text/xml”。
text/html
页面内容
当“阻断页面”选择“自定义”时,可设置自定义返回的内容。
不同页面类型对应的页面内容样式:
- text/html:<html><body>Forbidden</body></html>
- application/json:{"msg": "Forbidden"}
- text/xml:<?xml version="1.0" encoding="utf-8"?><error> <msg>Forbidden</msg></error>
- 单击“确认”,添加的精准访问防护规则展示在精准访问防护规则列表中。
- 规则添加成功后,默认的“规则状态”为“已开启”,如果您暂时不想使该规则生效,可在目标规则所在行的“操作”列,单击“关闭”。
- 如果需要修改添加的精准访问防护规则时,可单击待修改的精准访问防护规则所在行的“修改”,修改精准访问防护规则。
- 如果需要删除添加的精准访问防护规则时,可单击待删除的精准访问防护规则所在行的“删除”,删除精准访问防护规则。
防护效果
假如已添加域名“www.example.com”,且配置了如图1所示的精准访问防护规则。可参照以下步骤验证防护效果:
配置示例-拦截特定的攻击请求
通过分析某类特定的WordPress反弹攻击,发现其特征是User-Agent字段都包含WordPress,如图2所示。
因此,可以设置精准访问控制规则,拦截该类WordPress反弹攻击请求。
配置示例-拦截特定的URL请求
如果您遇到有大量IP在访问某个特定且不存在的URL,您可以通过配置以下精准访问防护规则直接阻断所有该类请求,降低源站服务器的资源消耗,如图4所示。
配置示例-拦截指定文件类型(zip、tar、docx等)
通过配置路径字段匹配的文件类型,您可以阻断特定的文件类型。例如,您需要拦截“.zip”格式文件,您可以配置精准防护规则阻断“.zip”文件类型访问请求,如图6所示。
配置示例-防盗链
通过配置Referer匹配字段的访问控制规则,您可以阻断特定网站的盗链。例如,您发现“https://abc.blog.com”大量盗用本站的图片,您可以配置精准访问防护规则阻断相关访问请求。