# 通过"云模式-ELB"将网站接入WAF
如果网站业务服务器部署在**华为云** ，可使用**云模式-ELB接入**方式将网站的域名或IP添加到WAF进行防护。
#### 方案概述
ELB接入模式下，将网站接入WAF后，网站流量会被ELB镜像给WAF。WAF检测后，将结果同步给ELB，由ELB根据WAF检测结果决定是否将客户端请求转发到源站。该过程中，WAF不参与流量转发，避免因额外引入一层转发而带来各种兼容性和稳定性问题。
- [接入原理]
  ELB接入原理如[图1]所示。
  图1ELB接入原理   
  ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002633394482.png "点击放大")
- [流量访问示意]
  接入WAF后，网站访问示意图如[图2]所示。
  图2网站访问示意图   
  ![](https://support.huaweicloud.com/usermanual-waf/zh-cn_image_0000002633554384.png "点击放大")
  流量访问说明如下：
  1. 用户在浏览器输入域名后，客户端会向DNS发送请求，查询域名解析地址。
  
  2. DNS返回域名解析地址。
  
  3. 客户端通过EIP访问ELB。
  
  4. ELB将流量镜像给WAF。
  
  5. WAF检测后，将检测结果同步给ELB。
  
  6. ELB根据WAF检测结果，将正常流量转发给源站服务器。
   
#### 约束限制
- 已经使用了华为云独享型ELB（"规格"为"应用型（HTTP/HTTPS）"）进行流量转发的网站，才支持使用"云模式-ELB接入"将网站接入WAF，该方式WAF是旁路检测，不参与流量转发。建议您使用该方式前，先完成独享型ELB的配置。 云模式-ELB接入仅支持防护HTTP、HTTPS协议监听器的流量，不支持TCP协议。
  
- 不支持如下防护规则：威胁情报访问控制、网站反爬虫、网页防篡改、敏感信息泄露、扫描防护、BOT管理、大模型检测。
- 购买了**标准版** 、**专业版** 或**企业版** 后，才支持使用**云模式-ELB接入** 。
  **云模式-ELB接入** 的域名、QPS、规则扩展包的配额与**云模式-CNAME接入**共用，且业务规格与购买的云模式基础套餐版本的对应规格一致。
  
- 支持云模式-ELB接入的Region，请参见[地域限制](https://support.huaweicloud.com/productdesc-waf/waf_01_4317.html)。
 
#### 前提条件
- 已[购买WAF的云模式](https://support.huaweicloud.com/usermanual-waf/waf_01_0109.html)，并已了解[网站接入](https://support.huaweicloud.com/usermanual-waf/waf_01_0071.html)的相关信息。
- 已在购买WAF云模式的账号下购买了独享型负载均衡，且"规格"为"应用型（HTTP/HTTPS）"，详见[创建独享型负载均衡器](https://support.huaweicloud.com/usermanual-elb/elb_lb_000006.html)。
 
 #### 基础配置
参考以下步骤，可快速将网站接入WAF。
1. （可选）在弹性负载均衡ELB控制台，创建独享型负载均衡器、并为其添加监听器。如果已创建独享型负载均衡器、并添加监听器，可跳过该步骤。 
   1. [创建独享型负载均衡器](https://support.huaweicloud.com/usermanual-elb/elb_lb_000006.html)。
      - "规格"选择"应用型（HTTP/HTTPS）"
      
      - 其他参数根据业务需要进行配置。
       
   
   2. 为[1.a]中创建的负载均衡添加监听器，详细操作请参见[添加HTTP监听器](https://support.huaweicloud.com/usermanual-elb/elb_ug_jt_0008.html)或[添加HTTPS监听器](https://support.huaweicloud.com/usermanual-elb/elb_ug_jt_0009.html)。
   
   3. [创建后端服务器组](https://support.huaweicloud.com/usermanual-elb/elb_ug_hdg_0003.html)。
      - "所属负载均衡器"：选择"关联已有"，并在下拉框中选择[1.a]中创建的负载均衡器。
      
      - 后端服务器配置为要添加到WAF中的防护网站对应的服务器地址。
       
   
   4. 执行以下命令，测试业务联通性是否正常。 curl -kv -H "Host: {源站域名}" {监听器对应的协议}://{ELB的IP}:{监听器端口}
      返回码为"200"，则表示业务流量连通正常。
      
   
   
   
   
2. 在WAF中配置需要检测流量的网站。 
   1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/#/waf/dashboard/security)。
   
   2. 在左侧导航栏，单击"接入管理"。 在开始添加防护网站前，可单击页面右上角的"流程引导"，了解接入流程。
      
   
   3. 在"接入管理"页面，选择"云模式-ELB"页签后，完成接入配置。 若仅开通一种接入模式，则直接在"接入管理"页面完成接入配置即可。
      - **单个接入**
        1. 单击"未成功接入域名数"后的数字，定位到目标ELB实例后，单击"操作"列的"立即接入"。 您也可以选中一个配置了监听器的ELB实例后，单击"一键批量接入"。
           如果"立即接入"按钮置灰，则对应ELB实例未配置监听器。请为ELB实例添加监听器后，再进行接入配置。
           
        
        2. 在"接入ELB域名"面板，完成接入配置后，单击"确定"。接入配置参数说明如[表1]所示。
         
      
      - **一键批量接入**
        1. 选中至少一个配置了监听器的ELB实例后，单击"一键批量接入"。 支持为已接入的ELB实例，添加多个防护域名。
           
        
        2. 在"一键批量接入"面板，完成接入配置后，单击"确定"。接入配置参数说明如[表1]所示。
         
      
      
       表1接入配置参数说明 
      | 参数     | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 取值样例                                                   |
      |:---|:---|:---|
      | 防护策略模式 | 选择要启用的防护策略模式。 一键批量接入支持为多个ELB实例添加相同防护策略，或选择不同的防护策略。 - **相同防护策略**：选择后，为所有一键批量接入WAF的ELB实例，选择同一个防护策略。  - **不同防护策略**：为每个ELB实例，单个选择不同的防护策略。   两种策略模式均支持选择系统自动生成策略、手动创建的防护策略。 - **系统自动生成策略** （默认）包括： - **Web基础防护** ：默认开启**常规检测** ，可防护SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击行为。 常规检测包含： - "规则集"："默认规则集【中等】"  - "防护动作"："仅记录"，即发现攻击行为后WAF只记录攻击事件不阻断攻击。    - **网站反爬虫**：默认开启扫"扫描器"检测、"防护动作"为"仅记录"（发现攻击行为后WAF只记录攻击事件不阻断攻击），可防护漏洞扫描、病毒扫描等Web扫描任务，如OpenVAS、Nmap的爬虫行为。     - **手动创建的防护策略** ：根据防护需求创建的防护策略。**仅** **标准版、专业版** **、** **企业版** **支持选择手动创建的防护策略。** 更多信息，请参见[配置防护策略](https://support.huaweicloud.com/usermanual-waf/waf_01_0074.html)。   | **相同防护策略 ＞** 系统自动生成策略                                  |
      | 接入配置    | 配置接入信息。 - **防护域名** ：要防护的域名或IP（公网IP/私网IP），且该域名已解析到已创建的负载均衡器的弹性公网IP上。 - **域名** ：支持单域名和泛域名。 **单域名**：输入防护的单域名。例如：www.example.com。 **泛域名** ： - 如果各子域名对应的服务器IP地址相同：输入防护的泛域名。例如：子域名a.example.com，b.example.com和c.example.com对应的服务器IP地址相同，可以直接添加泛域名\*.example.com。  - 如果各子域名对应的服务器IP地址不相同：请将子域名按"单域名"方式逐条添加。  - WAF支持添加"\*"的泛域名。  - 一个ELB只支持一个泛域名。     - **IP**：支持防护公网IP、私网IP。如果配置为私网IP，必须确保相应的网络路径是可访问的，以便于WAF能够正确地对流量进行监控和过滤。    - **ELB监听器** ：选择的ELB配置的监听器，支持选择其他账号的ELB监听器。 - "所有监听器"：表示选择ELB下的所有监听器。  - "指定监听器"：表示选择ELB下的指定监听器。    - **防护策略**："防护策略模式"选择"不同防护策略"后，需要单独为每个ELB实例选择对应的防护策略。                                                                                        | **防护域名**：\* **ELB监听器**：全部监听器 |
         
      接入完成后，单击"已接入域名数"后的数字，可查看已接入WAF的ELB实例。
      
   
   
   
   
   
 
#### 接入验证
- 接入状态验证 防护网站的初始"接入状态"为"未接入"，当过去1天内网站的访问请求达到50次时，该防护网站的接入状态将自动切换为"已接入"。
  用户可单击"已接入域名数"后的数字，查看已接入的域名和ELB实例。
  
- 访问验证 清理浏览器缓存，在浏览器中输入防护域名，验证网站域名是否能正常访问。
  ![](https://support.huaweicloud.com/usermanual-waf/public_sys-resources/caution_3.0-zh-cn.png)
  访问网站时，请求URL中请勿包含未编码的空格，否则网站将无法正常被访问。
  
- 防护效果验证 手动模拟简单的Web攻击命令（例如\<被防护域名\>/?id=1 and 1=1，id=1 and 1=1为用作测试的SQL注入攻击代码），验证WAF防护是否生效。
  
 
#### 高级配置
在进行[基础配置]时，可同时配置**防护策略**。以上配置项可保持默认值，也可根据实际业务需求进行调整。
用户可在"资产管理 \> 防护对象"页面，单击网站域名后，在网站详情页面进行以下高级配置。
云模式-ELB接入支持以下高级配置项：
表2高级配置 
| 功能                | 支持功能                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|
| **真实客户端IP透传**       | - [配置攻击惩罚的流量标识](https://support.huaweicloud.com/usermanual-waf/waf_01_0270.html)：为攻击惩罚提供识别依据，精准定位恶意请求来源的身份标签，区分合法与恶意请求的主体，并设定惩罚目标。                                                                                                                                                                                                                                                                                                                                                                                           |
| **网络扩展与高可用配置**         | - [修改拦截返回页面](https://support.huaweicloud.com/usermanual-waf/waf_01_0154.html)：根据不同业务需要，配置访问者请求被拦截时，WAF返回的提示页面。  - [开启不插入Cookie字段的能力](https://support.huaweicloud.com/usermanual-waf/waf_01_2154.html)：WAF将不会在响应Cookie中插入**HWWAFSESTIME** 和**HWWAFSESID**。  - [修改人机验证状态码](https://support.huaweicloud.com/usermanual-waf/waf_01_3155.html)：实现WAF防护动作与业务系统的兼容性适配，避免因状态码不匹配导致的业务流程中断/前端解析异常。   |
| **运维监控** **效率提升** | - [配置日志记录响应体字节长度](https://support.huaweicloud.com/usermanual-waf/waf_01_2556.html)：截取满足响应体字节长度的响应体数据并写入日志。                                                                                                                                                                                                                                                                                                                                                                                                                |
   
#### 日常运维
在日常防护过程中，用户可能需要进行以下操作：
- [查看网站基本信息](https://support.huaweicloud.com/usermanual-waf/waf_01_0020.html)：查看防护域名的ELB负载均衡器、ELB ID、ELB IP、策略名称、告警页面等信息。
- [切换防护模式](https://support.huaweicloud.com/usermanual-waf/waf_01_0003.html)：
  - 未防护：如果大量的正常业务被拦截，可切换为该状态，WAF不再检测所有请求，日志也不会记录。
  
  - 防护中：部分场景，如手动续费后，建议检查防护状态。若"防护状态"为"未防护"，需重新开启防护。
   
- 通过API批量管理WAF接入域名：将ELB接入WAF的配置信息，请参见API文档[创建创建云模式ELB接入模式域名 - CreatePremiumHost](https://support.huaweicloud.com/api-waf/CreatePremiumHost.html)。
- 取消接入：不再需要WAF防护时，可单击目标域名"操作"列的"取消接入"。
 
#### 现网环境配置建议
将ELB接入和取消接入WAF的过程对业务无影响。但用户仍需关注日志与监控，确保业务可用性。建议遵循以下建议：
- **灰度策略**：建议优先在业务低峰期接入非生产环境的ELB，运行一段时间以确认业务正常后，再接入生产环境的ELB。
- **检查业务** ：接入完成后，您可以通过如下方式确认业务是否正常。
  - **查看日志** ：查看日志中状态码200的占比是否有明显波动、QPS是否有明显突增突降等。可[查询防护事件](https://support.huaweicloud.com/usermanual-waf/waf_01_0156.html)，进行检查。
  
  - **业务监控**：检查业务侧功能是否正常，例如用户访问、交易等功能。
   
- **规则优化**：接入初期使用观察模式，排除误拦截后再开启拦截模式。
- **监控告警** ：
  - [开启告警通知](https://support.huaweicloud.com/usermanual-waf/waf_01_0019.html)，及时了解防护网站被攻击次数、证书到期、防护规则到期信息。
  
  - [设置"Web应用防火墙-防护域名"监控告警规则](https://support.huaweicloud.com/usermanual-waf/waf_01_0373.html)，关注防护域名的请求量、5XX返回码、基础防护次数、CC防护次数等信息。
   
 
#### 常见问题
- [域名/IP接入状态显示"未接入"，如何处理？](https://support.huaweicloud.com/trouble-waf/waf_01_0278.html)
- [网站、应用接入WAF后，访问出现404/502/504报错处理方法](https://support.huaweicloud.com/trouble-waf/waf_01_0066.html)
- [如何处理网站接入WAF后，文件不能上传？](https://support.huaweicloud.com/trouble-waf/waf_01_0100.html)
- [域名接入WAF后，为什么无法开启防护模式？](https://support.huaweicloud.com/waf_faq/waf_01_0145.html)
- [常见错误码、响应码异常排查](https://support.huaweicloud.com/trouble-waf/waf_01_0520.html)
 
