使用LTS配置WAF规则的拦截告警
应用场景
开启WAF全量日志功能后,您可以将攻击日志、访问日志记录到云日志服务(Log Tank Service,简称LTS)中,通过LTS记录的WAF攻击日志数据,快速高效地进行实时决策分析、设备运维管理以及业务趋势分析。
本实践通过将WAF的攻击日志开启LTS快速分析,再配置告警规则,实现WAF规则拦截日志的分析及告警,实时洞察您的业务在WAF中的防护情况并做出决策分析。
资源与成本规划
资源 |
资源说明 |
每月费用 |
---|---|---|
云日志服务 |
|
具体的计费方式及标准请参考计费说明。 |
消息通知服务 |
消息通知服务费用构成:外网下行流量+消息通知费用 不同场景下的费用构成如下:
|
具体的计费方式及标准请参考计费说明。 |
Web应用防火墙 |
云模式-标准版:
|
具体的计费方式及标准请参考计费说明。 |
步骤一:购买云模式标准版
以购买WAF云模式标准版为例进行介绍。
- 登录华为云管理控制台。
- 在控制台页面中选择 ,进入Web应用防火墙控制台。
- 在页面右上角,单击“购买WAF实例”,进入购买页面,“WAF模式”选择“云模式”。
- “区域”:根据防护业务的所在区域就近选择购买的WAF区域。
- “版本规格”:选择“标准版”。
- “扩展包”及“购买时长”:根据具体情况进行选择。
- 确认参数配置无误后,在页面右下角单击“立即购买”。
- 确认订单详情无误后,阅读并勾选《Web应用防火墙免责声明》,单击“去支付”,完成购买操作。
- 进入“付款”页面,选择付款方式进行付款。
步骤二:将网站信息添加到WAF
此处以云模式-CNAME接入为例进行介绍。
- 云模式-ELB接入方式请参见将网站接入WAF防护(云模式-ELB接入)。
- 独享模式接入方式请参见将网站接入WAF防护(独享模式)。
- 在左侧导航树中,选择“网站设置”,进入网站设置列表。
- 在网站列表的左上角,单击“添加防护网站”。
- 选择“云模式-CNAME接入”并单击“开始配置”。
- 根据界面提示,配置网站信息,如表2所示。
图1 基础信息配置
表2 重点参数说明 参数
参数说明
取值样例
防护域名
需要添加到WAF中防护的域名。
- 域名已完成备案
- 支持单域名(例如,一级域名example.com,二级域名www.example.com等)和泛域名(例如,*.example.com)。
www.example.com
防护端口
需要防护的域名对应的业务端口。
标准端口
服务器配置
网站服务器地址的配置。包括对外协议、源站协议、源站地址、源站端口和权重。
- 对外协议:客户端请求访问服务器的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
- 源站协议:Web应用防火墙转发客户端请求的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
- 源站地址:客户端访问的网站服务器的公网IP地址(一般对应该域名在DNS服务商处配置的A记录)或者域名(一般对应该域名在DNS服务商处配置的CNAME)。
- 源站端口:WAF转发客户端请求到服务器的业务端口。
- 权重:负载均衡算法将按权重将请求分配给源站。
对外协议:HTTP
源站协议:HTTP
源站地址:IPv4 XXX .XXX.1.1
源站端口:80
是否使用七层代理
在WAF前是否使用了七层代理产品。
根据实际情况进行选择。
是
- 单击“下一步”,根据界面提示,完成WAF回源IP加白、本地验证和修改域名DNS解析设置的操作。
图2 添加域名完成
步骤三:将防护日志配置到LTS
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“防护事件”,进入“防护事件”页面。
- 选择“全量日志”页签,开启全量日志,并选择日志组和日志流,相关参数说明如表3所示。
图3 配置全量日志
表3 全量日志配置参数 参数
参数说明
取值样例
选择日志组
选择已创建的日志组,或者单击“查看日志组”,跳转到LTS管理控制台创建新的日志组。
lts-group-waf
记录攻击日志
选择已创建的日志流,或者单击“查看日志流”,跳转到LTS管理控制台创建新的日志流。
攻击日志记录每一个攻击告警信息,包括攻击事件类型、防护动作、攻击源IP等信息。
lts-topic-waf-attack
记录访问日志
选择已创建的日志流,或者单击“查看日志流”,跳转到LTS管理控制台创建新的日志流。
访问日志记录每一个HTTP访问的关键信息,包括访问时间、访问客户端IP、访问资源URL等信息。
lts-topic-waf-access
- 单击“确定”,全量日志配置成功。
您可以在LTS管理控制台查看WAF的防护日志。
步骤四:快速分析规则拦截日志
- 单击页面左上方的,选择“日志管理”页面。 ,进入
- 在日志组列表中,展开waf日志组,选择日志流“attack”。
- 在日志流详情页面,单击右上角,在弹出页面中,选择“云端结构化解析”页签,进入日志结构化配置页面。
- 选择“JSON”日志结构化方式,单击“从已有日志中选择”,在右侧弹框中任意选择一条日志。
- 单击“智能提取”,筛选出需要“快速分析”的字段,打开这些字段在“快速分析”列的开关,打开后,可以对周期类日志进行统计分析。
图4 日志提取字段
- 找到“category”字段,单击该字段“别名”列的,修改该字段名称并单击保存设置。
该字段名称与系统内置字段 category 重复了,需要修改后才能保存成功。
- 在列表右下方,单击“保存”,LTS将对周期内的日志进行快速分析、统计。
- 在左侧导航树中,选择“可视化”,在页面右侧选择日志查询时间段,在搜索框中输入SQL语句后单击“执行查询”。
您可以根据 rule 和 uri 进行分组,在搜索框中输入如下SQL语句,查询指定规则的日志:
select rule, uri, count(*) as cnt where action = 'block' group by rule, uri order by cnt desc
步骤五:配置告警规则
- 单击页面左上方的,选择“日志管理”页面。 ,进入
- 在左侧导航树中,选择“告警”,并选择“告警规则”页签。
- 单击“创建”,在右侧弹框中配置相关参数,如图5所示,参数说明如表4所示。
表4 关键参数说明 参数名称
参数说明
样例
规则名称
自定义该规则的名称。
WAF告警
统计类型
选择“SQL统计”。
SQL统计
相关图表
单击“直接添加”。
- 选择需要配置拦截告警的“日志组名称”和“日志流名称”。
- “查询时间”:日志统计时间周期。
- “查询语句”:步骤 8中配置好的SQL语句,如select rule,uri,count(*) as cnt where action='block' group by rule,uri order by cnt desc
-
统计周期
告警触发的周期。一般选择“固定间隔”,5分钟。
固定间隔
5
分钟
条件表达式
配置告警阈值
cnt>5
触发告警级别
根据该拦截规则的紧急程选择告警级别,可选择“紧急”、“重要”、“次要”、“提示。”
重要
发送通知
选择“发送”。
发送
告警主题
单击下拉列表选择已创建的主题或者单击“查看主题”创建新的主题,用于配置接收告警通知的终端。
单击“查看主题”创建新主题的操作步骤如下:更多关于主题和订阅的信息,请参见《消息通知服务用户指南》。
-
时区/语言
可单击“修改”配置消息接收的语言和时区。
-
消息模板
在下拉框中选择已有的模板或者单击“创建消息模板”创建新的模板。
sql模板
- 参数配置好后,单击“确定”,告警规则配置完成。当触发该告警规则时,您会收到告警邮件或者短信。