高级 DDoS 防护可以保护您选择的 IP 前缀免受复杂的 DDoS 攻击。前缀可以是 IP 地址,也可以是 CIDR 格式的 IP 范围。您必须将前缀添加到高级 DDoS 防护中,以便 Cloudflare 能够分析传入的数据包并提供针对复杂的 TCP DDoS 攻击的防护。
添加到高级 DDoS 防护中的前缀必须是以下之一:
您无法添加尚未接入 Magic Transit 或状态仍为 Unapproved(未批准) 的前缀(或前缀的子集)。请联系您的账户团队以获取有关前缀批准的帮助。
高级 DDoS 防护允许列表是一个前缀列表,这些前缀将绕过所有配置的高级 DDoS 防护规则。
例如,您可以将仅供您公司合作伙伴使用的前缀添加到允许列表中,从而使他们免受高级 DDoS 防护执行的数据包检查和缓解操作的影响。
规则根据几种设置为给定的范围配置高级 DDoS 防护:执行模式、突发敏感度和速率敏感度。
每个系统组件(SYN 洪水防护和 out-of-state TCP 防护)都有自己的规则列表,并且应至少包含一条规则。
每种规则类型都有以下设置:范围、模式、突发敏感度和速率敏感度。
如果遇到误报或由于特定的流量模式,您可能需要调整规则的突发敏感度或速率敏感度。
高级 TCP 防护规则可以具有以下范围之一:
- Global(全局):该规则将应用于所有传入的数据包。
- Region(区域):该规则将应用于所选区域中传入的数据包。
- Data center(数据中心):该规则将应用于所选 Cloudflare 数据中心中传入的数据包。
规则范围允许您在流量多于或少于平时的位置,或者由于任何其他网络原因,来调整系统对 out-of-state 数据包的容忍度。
当具有不同范围的多条规则应用于同一个数据中心时,具有最具体范围的规则优先。例如,如果您同时拥有区域规则(如西欧)和数据中心规则(如马赛),则通过马赛的流量将根据数据中心规则进行处理。
除了定义具有上述范围之一的规则外,您还必须选择希望通过高级 TCP 防护来保护的前缀。
高级 TCP 防护系统不断学习您的 TCP 连接以缓解 DDoS 攻击。高级 TCP 防护规则可以具有以下执行模式之一:监控 (monitoring)、缓解 (mitigation)(启用)或禁用 (disabled)。
-
Monitoring(监控)
- 在此模式下,高级 TCP 防护不会影响任何数据包。相反,防护系统将学习您的合法 TCP 连接,并向您显示它本会缓解的内容。检查 Network Analytics (网络分析) 以可视化高级 TCP 防护根据当前配置本会对传入数据包采取的操作。
请参阅 the Analytics documentation for more information on how to view logged or monitored traffic.
- 在此模式下,高级 TCP 防护不会影响任何数据包。相反,防护系统将学习您的合法 TCP 连接,并向您显示它本会缓解的内容。检查 Network Analytics (网络分析) 以可视化高级 TCP 防护根据当前配置本会对传入数据包采取的操作。
-
Mitigation(缓解 - 启用)
- 在此模式下,高级 TCP 防护将学习您的合法 TCP 连接,并根据规则配置(突发和速率敏感度)以及您的允许列表对传入的 TCP DDoS 攻击执行缓解操作。
-
Disabled(禁用)
- 在此模式下,规则将不会评估任何传入的数据包。
突发敏感度是规则对数据包速率短期突发的敏感度:
- 低敏感度意味着数据包速率中较大的峰值可能会触发缓解操作。
- 高敏感度意味着数据包速率中较小的峰值就可能会触发缓解操作。
默认的突发敏感度为 Medium(中)。
速率敏感度是规则对持续数据包速率的敏感度:
- 低敏感度意味着较高的持续数据包速率才能触发缓解操作。
- 高敏感度意味着较低的持续数据包速率就可能会触发缓解操作。高敏感度提供了更强的防护,但您可能会遇到更多误报(即属于合法流量的被缓解数据包)。
默认的速率敏感度为 Medium(中)。
对最近未出现过的 DNS 查询的敏感度。
- 较高的敏感度级别意味着缓解系统将更快地开始缓解。
- 较低的敏感度为潜在可疑的 DNS 查询提供了更多容忍度。
默认的分析敏感度且推荐的设置是 Low(低)。只有在根据观察到的攻击有需求时,您才应该提高敏感度。
Filter 会修改 Advanced TCP Protection 的执行模式——monitoring、mitigation(enabled)或 disabled——适用于所有匹配表达式的传入数据包。
过滤器表达式可以引用源 IP 地址、目标 IP 地址以及端口。每个系统组件(SYN 洪水防护和 out-of-state TCP 防护)都应包含一个或多个规则,但过滤器是可选的。
每个系统组件都有自己的过滤器。您可以为每个执行模式配置过滤器:
- Mitigation Filter(缓解过滤器):系统将丢弃匹配过滤器表达式的数据包。
- Monitoring Filter(监控过滤器):系统将记录匹配过滤器表达式的数据包。
- Off Filter(关闭过滤器):系统将忽略匹配过滤器表达式的数据包。
当发生匹配时,过滤器将改变给定系统组件(SYN 洪水防护或 out-of-state TCP 防护)中所有已配置规则(包括已禁用的规则)的执行模式。
有关在 Cloudflare 仪表板中创建过滤器的说明,请参阅创建过滤器。有关 API 示例,请参阅常用 API 调用。
您可以通过使用表达式与新接入的前缀进行匹配,从而为该前缀创建一个监控过滤器。
您已经接入的前缀可以继续在缓解模式下通过一条或多条配置好的规则得到保护。
在接入新前缀时,您会为该前缀配置一个监控过滤器,然后将其添加到高级 TCP 防护中。
当您同时配置了规则和过滤器时,执行模式将根据以下内容确定:
- 如果与配置的过滤器之一匹配,则使用该过滤器的执行模式。过滤器的评估顺序基于其模式,按以下顺序:
- 缓解过滤器(模式为
enabled的过滤器) - 监控过滤器(模式为
monitoring的过滤器) - 关闭过滤器(模式为
disabled的过滤器)
- 缓解过滤器(模式为
- 如果没有过滤器匹配,则使用由现有规则确定的执行模式。
- 如果没有规则匹配,则禁用高级 TCP 防护。
高级 TCP 防护系统根据连接状态,出于不同的原因应用缓解操作。在 Network Analytics(网络分析) 仪表板的 Advanced TCP Protection(高级 TCP 防护) 选项卡中显示的 Mitigation reason(缓解原因) 字段将包含有关系统丢弃给定数据包原因的更多信息。
连接状态如下:
- New(新建):已发送 SYN 或 SYN-ACK 数据包以尝试打开新连接。
- Open(打开):三次 TCP 握手已完成,TCP 连接已打开。
- Closing(关闭中):已看到 FIN 或 FIN-ACK 数据包尝试关闭连接。
- Closed(已关闭):关闭的三次握手已完成,或者 RST 数据包已关闭连接。
缓解原因如下:
| 原因 | 描述 |
|---|---|
| Unexpected | 数据包被丢弃,因为鉴于与其关联的 TCP 连接的当前状态,该数据包不是预期的。 |
| Challenge needed | 数据包被质询,因为系统判定该数据包极有可能是数据包洪水的一部分。 |
| Challenge passed | 数据包被丢弃,因为它属于已解决的质询。 |
| Not found | 数据包被丢弃,因为它不属于现有的 TCP 连接,且它没有在建立新连接。 |
| Out of sequence | 数据包被丢弃,因为其属性(例如 TCP 标志或序列号)与现有连接的预期值不匹配。 |
| Already closed | 数据包被丢弃,因为它属于已经关闭的连接。 |
缓解只会根据您的高级 TCP 防护配置(规则敏感度、配置的允许列表和前缀)发生。防护系统将对 out-of-state 数据包提供一些容忍度,以适应互联网路由的自然随机性。