# 通过CC攻击防护规则拦截大流量高频攻击
CC（Challenge Collapsar，以下简称CC）防护对单Web应用访问者IP或者Cookie键值进行访问频率限制，超过限制时通过人机识别或阻断访问，阻断页面可自定义内容和类型，满足业务多样化需要。
在大规模CC攻击中，单台傀儡机发包的速率往往远超过正常用户的请求频率。针对这种场景，直接对请求源IP设置限速规则是最有效的办法。
本文以如下配置为例，介绍如何通过CC攻击防护规则基于IP限速拦截大流量高频攻击。
- 接入方式：云模式-CNAME接入
- 防护对象：域名
- 计费模式：包年/包月
- 版本规格：标准版
- 防护策略：CC攻击防护
#### 操作流程
| 操作步骤                                                     | 说明                         |
|:---|:---|
| [准备工作]                 | 注册华为账号、开通华为云，并为账户充值、赋予WAF权限。 |
| [步骤一：购买WAF]           | 购买WAF，选择业务防护区域、WAF模式等信息。    |
| [步骤二：将防护网站添加到WAF]     | 将防护网站添加到WAF防护，实现WAF流量检测并转发。  |
| [步骤三：配置CC攻击防护拦截大流量高频攻击] | 配置并开启CC攻击防护规则，助力网站有效缓解CC攻击。 |
   
 #### 准备工作
1. 在购买Web应用防火墙之前，请先注册华为账号并开通华为云。具体操作详见[注册华为云账号](https://support.huaweicloud.com/usermanual-account/account_id_001.html)、[实名认证](https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0071343161.html)。
   如果您已开通华为云并进行实名认证，请忽略此步骤。
   
2. 请保证账户有足够的资金，以免购买Web应用防火墙失败。具体操作请参见[账户充值](https://support.huaweicloud.com/usermanual-billing/bills-topic_30000002.html)。
3. 请确保已为账号赋予相关WAF权限。具体操作请参见[创建用户组并授权使用WAF](https://support.huaweicloud.com/usermanual-waf/waf_01_0098.html)。
   表1WAF系统角色 
   | 系统角色/策略名称            | 描述                 | 类别   | 依赖关系                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   |:---|:---|:---|:---|
   | WAF Administrator | Web应用防火墙服务的管理员权限。 | 系统角色   | 依赖Tenant Guest和Server Administrator角色。 - Tenant Guest：全局级角色，在全局项目中勾选。  - Server Administrator：项目级角色，在同项目中勾选。   |
   | WAF FullAccess     | Web应用防火墙服务的所有权限。    | 系统策略  | 无。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | WAF ReadOnlyAccess | Web应用防火墙的只读访问权限。  | 系统策略 | 无。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
      
   
 
 #### 步骤一：购买WAF云模式标准版
1. [登录Web应用防火墙控制台](https://console.huaweicloud.com/waf/#/waf/dashboard/security)。
2. 在页面右上角，单击"购买WAF实例"，进入购买页面，参考[表2]配置，完成WAF实例的购买。
    表2购买参数说明 
   | 参数       | 示例           | 说明                                                 |
   |:---|:---|:---|
   | WAF模式 | **云模式**     | 支持使用云模式-CNAME接入，可防护部署在华为云、非华为云上或云下的Web业务，防护对象为域名。 |
   | 计费模式  | **包年/包月**  | 预付费模式，按订单的购买周期计费，适用于可预估资源使用周期的场景，价格比按需计费模式更优惠。   |
   | 区域    | **华北-北京四** | 根据防护业务的所在区域就近选择购买的WAF区域。                        |
   | 版本规格   | **标准版**      | 可防护中小型网站。                                         |
      
   
3. 确认参数配置无误后，在页面右下角单击"立即购买"。
4. 确认订单详情无误后，阅读并勾选《Web应用防火墙免责声明》，单击"去支付"，完成购买操作。
5. 进入"付款"页面，选择付款方式进行付款。
 
 #### 步骤二：将防护网站添加到WAF
1. 在左侧导航栏，单击"接入管理"。 在开始添加防护网站前，可单击页面右上角的"流程引导"，了解接入流程。
   
2. 在"接入管理"页面，选择"云模式-CNAME"页签后，单击"添加防护网站"。 若仅开通一种接入模式，则直接单击"添加防护网站"。
   
3. 在"添加防护网站"页面，完成如下必要参数配置，其余参数保持默认值即可。参数说明请参见[表3]。
   图1添加域名   
   ![](https://support.huaweicloud.com/qs-waf/zh-cn_image_0000002047884270.png)
    表3必要参数说明 
   | 参数    | 示例                                                                                                                                                         | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   |:---|:---|:---|
   | 防护域名  | **www.example.com**                                                                                                                                       | 需要添加到WAF进行防护的域名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 防护端口 | **标准端口**                                                                                                                                                    | 需要防护的域名对应的业务端口。 配置80/443端口，在下拉框中选择"标准端口"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 服务器配置   | **对外协议：HTTP** **源站协议：HTTP** **源站地址：IPv4 XXX.XXX.1.1** **源站端口：80** | 服务器地址的配置。包括对外协议、源站协议、源站地址、源站端口和权重。 - 对外协议：客户端请求访问服务器的协议类型。包括"HTTP"、"HTTPS"两种协议类型。  - 源站协议：Web应用防火墙转发客户端请求的协议类型。包括"HTTP"、"HTTPS"两种协议类型。  - 源站地址：客户端访问的网站服务器的公网IP地址（一般对应该域名在DNS服务商处配置的A记录）或者域名（一般对应该域名在DNS服务商处配置的CNAME）。支持以下两种IP格式： - IPv4，例如：XXX.XXX.1.1  - IPv6，例如：fe80:0000:0000:0000:0000:0000:0000:0000    - 源站端口：WAF转发客户端请求到服务器的业务端口。  - 权重：负载均衡算法将按权重将请求分配给源站。   |
   | IP标记    | **x-forwarded-for**                                                                                                                                        | 网站接入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。                                                                                                                                                                                                                                                                               |
      
   
4. 单击"下一步"，域名的基础信息配置完成。
   图2基础信息配置完成   
   ![](https://support.huaweicloud.com/qs-waf/zh-cn_image_0000001977008565.png) 
5. 根据界面提示，完成"放行回源IP"和"本地验证"。
6. 完成"DNS解析"。 到该域名的DNS服务商处，配置防护域名的别名解析，具体操作请咨询您的域名服务提供商。
   以下为华为云DNS的CNAME绑定方法，仅供参考。如与实际配置不符，请以各自域名服务商的信息为准。
   1. 在[图2]中复制WAF提供的CNAME值。
   
   2. 单击页面左上方的![](https://support.huaweicloud.com/qs-waf/zh-cn_image_0000001980799457.png)，选择"网络 \> 云解析服务 DNS"。
   
   3. 在左侧导航栏中，选择"公网域名"，进入"公网域名"页面。
   
   4. 在目标域名所在行的"操作"列，单击"管理解析"，进入"解析记录"页面。
   
   5. 在目标记录集的所在行"操作"列，单击"修改"。
   
   6. 在弹出的"修改记录集"对话框中修改记录值。
      - "主机记录"：在WAF中配置的域名。
      
      - "类型"：选择"CNAME-将域名指向另外一个域名"。
      
      - "线路类型"：全网默认。
      
      - "TTL(秒)"：一般建议设置为5分钟，TTL值越大，则DNS记录的同步和更新越慢。
      
      - "值"：修改为[6.a]中已复制的WAF CNAME地址。
      
      - 其他的设置保持不变。
       
   
   7. 单击"确定"，完成DNS配置，等待DNS解析记录生效。
    
 
 #### 步骤三：配置CC攻击防护拦截大流量高频攻击
您可以配置以下CC规则，当一个IP在30秒内访问当前域名下任意路径的次数超过1000次，则封禁该IP的请求10个小时。该规则可以作为一般中小型站点的预防性配置。
1. 在左侧导航树中，选择"WAF核心防护"。
2. 单击目标策略名称，进入目标策略的防护配置页面。
3. 选择"CC攻击防护"配置框，开启CC攻击防护策略。 ![](https://support.huaweicloud.com/qs-waf/zh-cn_image_0000001899090950.png)：开启状态。
   ![](https://support.huaweicloud.com/qs-waf/zh-cn_image_0000001898931114.png)：关闭状态。
   
4. 在"CC攻击防护"规则配置列表左上方，单击"添加规则"，在弹出的对话框中，参考如[图3]所示进行配置。
   示例中仅解释必要参数，其余大多数配置可保留默认值。必要参数说明请参见[表4]。
   图3配置CC防护规则   
   ![](https://support.huaweicloud.com/qs-waf/zh-cn_image_0000002123299998.png)
    表4必要参数说明 
   | 参数     | 示例                                                                                                                                                                                                                      | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|:---|
   | 限速模式 | "源限速 \> IP限速"                                                                                                                                                                                                           | - "源限速"：对源端限速，如某IP（或用户）的访问频率超过限速频率，就会对该IP（或用户）的访问限速。 - "IP限速"：根据IP区分单个Web访问者。  - "用户限速"：根据Cookie键值或者Header区分单个Web访问者。  - "其他"：根据Referer（自定义请求访问的来源）字段区分单个Web访问者。   说明： 选择"其他"时，"Referer"对应的"内容"填写为包含域名的完整URL链接，仅支持前缀匹配和精准匹配的逻辑，"内容"里不能含有连续的多条斜线的配置，如"///admin"，WAF引擎会将"///"转为"/"。 例如：如果用户不希望访问者从"www.test.com"访问网站，则"Referer"对应的"内容"设置为"http://www.test.com"。   - "目的限速"：选择该参数时，可选择以下限速类型进行配置： - "策略限速" ：当多个域名共用一个策略时，该策略下对应的所有域名请求次数合并限速(不区分访问IP)；泛域名防护场景时，该泛域名对应的所有子域名的请求次数合并限速(不区分访问IP)。  - "域名限速"：每个域名单独统计总请求次数，超过设定值则触发防护动作(不区分访问IP)。  - "URL限速"：每个URL请求单独统计请求次数，超过设定值则触发防护动作(不区分访问IP)。     |
   | 限速条件   | - "字段"：路径  - "逻辑"：前缀为  - "内容"：/login.php   | 单击"添加条件"增加新的条件，至少配置一项条件，最多可添加30项条件，多个条件同时满足时，本条规则才生效。 - 字段  - 子字段：当"字段"选择IPv4、IPv6、Cookie、Header、Params时，请根据实际需求配置子字段。 须知： 子字段的长度不能超过2048字符。   - 逻辑：在"逻辑"下拉列表中选择需要的逻辑关系。  - 内容：输入或者选择条件匹配的内容。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 限速频率  | **1,000次30秒** **全局计数**                                                                                                                                                                     | 单个Web访问者在限速周期内可以正常访问的次数，如果超过该访问次数，Web应用防火墙服务将根据配置的"防护动作"来处理。 "全局计数"：根据不同的限速模式，将已经标识的请求在一个或多个WAF节点上的计数聚合。默认为每WAF节点单独计数，开启后本区域所有节点合并计数。"IP限速"不能满足针对某个用户进行限速，需要选择"用户限速"或"其他"的Referer限速，此时标识的请求可能会访问到不同的WAF节点，开启全局计数后，将请求访问的一个或多个WAF节点访问量聚合，达到全局统计的目的。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 防护动作 | **拦截**                                                                                                                                                                                                                | 当访问的请求频率超过"限速频率"时，可设置以下防护动作： - 人机验证：表示超过"限速频率"后弹出验证码，进行人机验证，完成验证后，请求将不受访问限制。人机验证目前支持英文。 说明： 云模式-ELB接入不支持该防护动作。   - 拦截：表示超过"限速频率"将直接拦截。  - 动态拦截：上一个限速周期内，请求频率超过"限速频率"将被拦截，那么在下一个限速周期内，请求频率超过"放行频率"将被拦截。  - 仅记录：表示超过"限速频率"将只记录不拦截。  - JS挑战：表示WAF向客户端返回一段正常浏览器可以自动执行的JavaScript代码。如果客户端正常执行了JavaScript代码，则WAF在一段时间（默认30分钟）内放行该客户端的所有请求（不需要重复验证），否则拦截请求。 说明： - 云模式-ELB接入不支持该防护动作。  - 请求的Referer跟当前的Host不一致时，JS挑战不生效。                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 阻断时长 | **36,000秒**                                                                                                                                                                                                               | 当"防护动作"选择"阻断"时，可设置阻断后恢复正常访问页面的时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
      
   
5. 确认参数配置无误后，单击"确定"。
 
#### 相关信息
- 关于CC攻击防护更多详细的操作，请参见[配置CC攻击防护规则防御CC攻击](https://support.huaweicloud.com/usermanual-waf/waf_01_0009.html)。
- 如果您的业务部署在华为云上，规模为大型企业网站，且对业务稳定性有较高的安全防护需求，需要防护对象为域名/IP，您可以采用"云模式-ELB接入"的接入方式，具体操作可参考如下方法：
  1. [购买WAF云模式标准版]。
     购买实例后，[提交工单](https://support.huaweicloud.com/usermanual-ticket/zh-cn_topic_0127038618.html)申请开通"云模式-ELB接入"。
     
  
  2. [将网站接入WAF防护（云模式-ELB接入）](https://support.huaweicloud.com/usermanual-waf/waf_01_0287.html)。
  
  3. [配置CC攻击防护拦截大流量高频攻击]。
   
- 如果您的业务部署在华为云上，规模为大型企业网站，且基于业务特性具有制定个性化防护规则的安全需求，需要防护对象为域名/IP，您可以采用"独享模式"的接入方式，具体操作可参考如下方法：
  1. 独享模式在部分区域已经停售，详见[独享模式停售通知](https://www.huaweicloud.com/notice/2024/20240624094855049.html)。如果您已购买独享模式的WAF，可跳过该步骤继续使用。
  
  2. [将网站接入WAF防护（独享模式）](https://support.huaweicloud.com/usermanual-waf/waf_01_0250.html)。
  
  3. [配置CC攻击防护拦截大流量高频攻击]。
   
 
