# 使用LTS配置WAF规则的拦截告警
#### 应用场景
开启WAF全量日志功能后，您可以将攻击日志、访问日志记录到[云日志服务](https://support.huaweicloud.com/productdesc-lts/lts-03201.html)（Log Tank Service，简称LTS）中，通过LTS记录的WAF攻击日志数据，快速高效地进行实时决策分析、设备运维管理以及业务趋势分析。
本实践通过将WAF的攻击日志开启LTS快速分析，再配置告警规则，实现WAF规则拦截日志的分析及告警，实时洞察您的业务在WAF中的防护情况并做出决策分析。
#### 资源与成本规划
表1资源和成本规划 
| 资源        | 资源说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 每月费用                                                                              |
|:---|:---|:---|
| 云日志服务     | - 计费模式：按需计费  - 每天新增日志量：10GB/天  - 日志存储时长：7天                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-lts/lts-03216.html)。    |
| 消息通知服务               | 消息通知服务费用构成：外网下行流量+消息通知费用 不同场景下的费用构成如下： - 发送短信通知费用构成：短信通知条数  - 发送电子邮件费用构成：电子邮件+外网下行流量  - 发送HTTP(S)费用构成：HTTP(S)+外网下行流量                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/productdesc-smn/smn_price.html)。           |
| Web应用防火墙 | 云模式-标准版： - 计费模式：包年/包月  - 域名数量：10个防护域名  - QPS配额：2,000QPS业务请求  - 支持带宽峰值： - 源站服务器部署在华为云内：100Mbps  - 源站服务器部署在华为云外：30Mbps     | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-waf/waf_03_0001.html)。 |
   
#### 步骤一：购买云模式标准版
以购买WAF云模式标准版为例进行介绍。
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在页面右上角，单击"购买WAF实例"，进入购买页面，"WAF模式"选择"云模式"。 
   - "区域"：根据防护业务的所在区域就近选择购买的WAF区域。
   
   - "版本规格"：选择"标准版"。
   
   - "扩展包"及"购买时长"：根据具体情况进行选择。
   
   
   
   
3. 确认参数配置无误后，在页面右下角单击"立即购买"。
4. 确认订单详情无误后，阅读并勾选《Web应用防火墙免责声明》，单击"去支付"，完成购买操作。
5. 进入"付款"页面，选择付款方式进行付款。 
   订单支付成功后，单击"进入Web应用防火墙控制台"，进入WAF"总览"页面。将鼠标悬停在"版本管理"区域，查看已购实例版本及其详细规格。
   
   
 
#### 步骤二：将网站信息添加到WAF
此处以云模式-CNAME接入为例进行介绍。
- 云模式-ELB接入方式请参见[将网站接入WAF防护（云模式-ELB接入）](https://support.huaweicloud.com/usermanual-waf/waf_01_0287.html)。
- 独享模式接入方式请参见[将网站接入WAF防护（独享模式）](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html)。
1. 在左侧导航栏，单击"接入管理"。 
   在开始添加防护网站前，可单击页面右上角的"流程引导"，了解接入流程。
   
   
2. 在"接入管理"页面，选择"云模式-CNAME"页签后，单击"添加防护网站"。 
   若仅开通一种接入模式，则直接单击"添加防护网站"。
   
   
3. 根据界面提示，配置网站信息，如[表2]所示。
   
   图1基础信息配置   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002046949960.png "点击放大")
    表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 |
   | IP标记               | 网站接入WAF后，"已使用七层代理"默认为"是"。该场景下，WAF无法直接获取客户端真实IP，导致基于IP的防护规则失效。选择IP标记后，可指定客户端IP的判定方式，帮助WAF获取客户端真实IP。 - **$remote_sockaddr**：当WAF前无其他代理时，如果报文存在TOA（TCP Option Address），且不希望WAF以TCP Option Address作为客户端IP时，选择该选项。配置后，WAF会以报文的3层源IP作为客户端真实IP。  - **$remote_addr**：当WAF前存在四层代理时，如果希望WAF以TCP连接IP作为客户端真实IP，选择该选项。  - **x-forwarded-for**：当WAF前存在七层代理时，选择该选项后，WAF会以X-Forwarded-For（XFF）中的首个IP地址作为客户端真实IP。  - **自定义** ：当WAF前存在七层代理时，选择该项并配置字段名后，WAF优先从配置的字段中获取客户端真实IP。配置多个字段时，WAF从左到右依次读取客户端真实IP。 如果WAF从自定义字段中未获取到客户端真实IP，将依次从CDN-Src-Ip、X-Real-Ip、X-Forwarded-For、$remote_addr字段获取客户端真实IP。                                                                                                        | x-forwarded-for                                                                                                                                                                                                                                                                                                                                                                    |
      
   
   
4. 单击"下一步"，完成防护网站基本信息填写。根据"添加防护网站"面板提示，完成如下操作： 
   图2添加域名完成   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001920672218.png "点击放大")
   1. [放行回源IP](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html#section4)
   
   2. [本地验证](https://support.huaweicloud.com/usermanual-waf/waf_01_0002.html#section6)
   
   
   完成上述步骤后，您可以在域名列表，查看已添加的域名"接入状态"。此时，域名"接入状态"为"未接入"，原因为"修改DNS解析"。
   
   
 
#### 步骤三：将防护日志配置到LTS
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/?locale=zh-cn)。
2. 在控制台左上角，单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002304713360.png)图标，选择区域或项目。
3. (可选) 如果您已开通企业项目，在左侧导航栏上方单击"按企业项目筛选"下拉框，选择您所在的企业项目。完成后，页面将为您展示该企业项目下的相关数据。
4. 在左侧导航栏，选择"安全运营 \> 防护事件"。
5. 如果WAF还未对接云日志服务（LTS），需要在"全量日志"页签，单击"对接LTS配置"，完成对接操作。 
   表3对接LTS配置参数说明 
   | 参数      | 说明                                                                                                                                                                                                                                                                                 | 取值样例               |
   |:---|:---|:---|
   | 日志类型    | 选择要转存到LTS的日志类型，支持转存"WAF访问日志"、"WAF攻击日志"。 攻击日志、访问日志的格式不同，如果同时选择两种日志类型，需要配置两个不同的日志流，用于分别记录日志信息。                                                                                                                                  | "WAF访问日志"和"WAF攻击日志"  |
   | 日志组     | 选择要转存的日志组。您也可以单击"创建日志组"，新建一个日志组。 日志组（LogGroup）是云日志服务进行日志管理的基本单位，用于对日志流进行分类，一个日志组下面可以创建多个日志流。日志组本身不存储任何日志数据，仅方便您管理日志流，每个账号下可以创建100个日志组。更多信息，请参见[管理日志组](https://support.huaweicloud.com/zh-cn/usermanual-lts/lts_04_0003.html)。 | lts-group-waf       |
   | WAF访问日志流  | "日志类型"选择"WAF访问日志"时，需要选择WAF访问日志流。您也可以单击"创建日志流"，新建一个WAF访问日志流，用于记录每一个HTTP访问的关键信息，包括访问时间、访问客户端IP、访问资源URL等信息。                                                                                                                                                                            | lts-topic-waf-access |
   | WAF攻击日志流 | "日志类型"选择"WAF攻击日志"时，需要选择WAF攻击日志流。您也可以单击"创建日志流"，新建一个WAF攻击日志流，用于记录每一个攻击告警信息，包括攻击事件类型、防护动作、攻击源IP等信息。                                                                                                                                                                                   | lts-topic-waf-attack |
      
   配置完成后，不会立即生效，存在10分钟左右的时延。配置生效后，云日志服务LTS会按流量单独计费。有关LTS的计费详情，请参见[LTS价格详情](https://www.huaweicloud.com/pricing.html#/lts)。
   
   
6. 查看或分析日志。 
   成功对接LTS后，"全量日志"页签会自动显示记录日志的日志组（[图3]①）、日志流（[图3]②）（包含的访问日志流、攻击日志流）。您可以单击WAF访问日志流或WAF攻击日志流，查看、搜索或分析WAF日志。更多信息，请参见[搜索与分析日志](https://support.huaweicloud.com/usermanual-lts/lts_07_0076.html)。
   图3全量日志   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002469604869.png "点击放大")
   
   
7. 选择日志流后，在"日志搜索"页签（[图3]③），选择"![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000002436043062.png "点击放大") \> 下载日志"（[图3]④），下载日志流中的上报日志。
   
   - **前端直接下载**：直接将前端查询的结果保存到本地，下载记录不会出现在日志下载历史中。单次下载支持最大5,000条日志。支持下载".csv"或".txt"格式的日志。
   
   - **后台离线下载**：通过后台任务将日志文件下载到临时OBS桶中，您的浏览器需要有公网访问权限才能在日志下载历史中下载结果文件。单次下载支持最大2,000万条日志。支持下载".csv"、".txt"或".json"格式的日志。
   
   
   您也可以通过OBS转储任务下载日志文件，详细请参考[日志转储至OBS](https://support.huaweicloud.com/usermanual-lts/lts_04_0041.html)。
   
   
 
#### 步骤四：快速分析规则拦截日志
1. 登录[云日志服务控制台](https://console.huaweicloud.com/lts/)。
2. 在日志组列表中，展开waf日志组，选择日志流"attack"。
3. 在日志流详情页面，单击右上角![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001811225769.png)，在弹出页面中，选择"云端结构化解析"页签，进入日志结构化配置页面。
4. 选择"JSON"日志结构化方式，单击"从已有日志中选择"，在右侧弹框中任意选择一条日志。
5. 单击"智能提取"，筛选出需要"快速分析"的字段，打开这些字段在"快速分析"列的开关，打开后，可以对周期类日志进行统计分析。 
   图4日志提取字段   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001238764182.png "点击放大")
   
   
6. 找到"category"字段，单击该字段"别名"列的![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001238834194.png)，修改该字段名称并单击![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001282874141.png)保存设置。
   
   ![](https://support.huaweicloud.com/bestpractice-waf/public_sys-resources/note_3.0-zh-cn.png)
   该字段名称与系统内置字段category重复，需要修改后才能保存成功。
   
   
7. 在列表右下方，单击"保存"，LTS将对周期内的日志进行快速分析、统计。
8. 在左侧导航树中，选择"可视化"，在页面右侧选择日志查询时间段，在搜索框中输入SQL语句后单击"执行查询"。
   
   您可以根据 rule 和 uri 进行分组，在搜索框中输入如下SQL语句，查询指定规则的日志：
   select rule, uri, count(*) as cnt where action = 'block' group by rule, uri order by cnt desc
   有关SQL查询语法的详细介绍，请参见[SQL查询语法](https://support.huaweicloud.com/usermanual-lts/lts_04_0051.html)。
   ![](https://support.huaweicloud.com/bestpractice-waf/public_sys-resources/note_3.0-zh-cn.png)
   可视化查询功能当前只针对"北京4"白名单用户可用。
   
   
 
#### 步骤五：配置告警规则
1. 登录[云日志服务控制台](https://console.huaweicloud.com/lts/)。
2. 在左侧导航树中，选择"告警"，并选择"告警规则"页签。
3. 单击"创建"，在右侧弹框中配置相关参数，如[图5]所示，参数说明如[表4]所示。
   
   图5配置告警规则   
   ![](https://support.huaweicloud.com/bestpractice-waf/zh-cn_image_0000001283205921.png "点击放大")
    表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                                                                 |
   | 触发告警级别 | 根据该拦截规则的紧急程选择告警级别，可选择"紧急"、"重要"、"次要"、"提示。"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 重要                                                                    |
   | 发送通知   | 选择"发送"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 发送                                                                    |
   | 告警主题   | 单击下拉列表选择已创建的主题或者单击"查看主题"创建新的主题，用于配置接收告警通知的终端。 单击"查看主题"创建新主题的操作步骤如下： 1. 参见[创建主题](https://support.huaweicloud.com/usermanual-smn/zh-cn_topic_0043961401.html)创建一个主题。  2. 配置接收告警通知的手机号码、邮件地址、函数、平台应用的终端、DMS或HTTP(S)终端，即为创建的主题添加一个或多个订阅，具体操作请参见[添加订阅](https://support.huaweicloud.com/usermanual-smn/smn_ug_0008.html)。  3. 确认订阅。添加订阅后，完成订阅确认。   更多关于主题和订阅的信息，请参见《消息通知服务用户指南》。 | -                                                                   |
   | 时区/语言  | 可单击"修改"配置消息接收的语言和时区。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | -                                                                     |
   | 消息模板    | 在下拉框中选择已有的模板或者单击"创建消息模板"创建新的模板。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | sql模板                                                                |
      
   
   
4. 参数配置好后，单击"确定"，告警规则配置完成。当触发该告警规则时，您会收到告警邮件或者短信。
 
