Cloudflare DDoS 防护配置完全指南:Dashboard、Ruleset 覆盖与 Adaptive DDoS 实战(skills4/skills 精选参考)

Cloudflare DDoS 防护配置完全指南:Dashboard、Ruleset 覆盖与 Adaptive DDoS 实战(skills4/skills 精选参考) Cloudflare DDoS 防护配置完全指南Dashboard、Ruleset 覆盖与 Adaptive DDoS 实战skills4/skills 精选参考【免费下载链接】skillsSkills Catalog for Codex项目地址: https://gitcode.com/GitHub_Trending/skills4/skills本篇指南系统讲解 Cloudflare DDoS 防护的完整配置方法涵盖 Dashboard 界面操作路径、基于 Ruleset 的覆盖Override规则结构、敏感度与动作映射、表达式套餐限制、Adaptive DDoS 自适应防护以及告警配置。读完本文你将掌握从 Web 控制台到 TypeScript SDK / REST API 的全链路配置能力能够按攻击类别与规则粒度精确调优并能借助本文配套的调优策略与错误码对照表快速排障。本文主体整理自仓库中的 DDoS 配置文档并融合了 DDoS API 文档、DDoS 常见问题 与 DDoS 防护模式 的实战细节供部署与运维 Cloudflare 站点的开发者直接引用。一、先理解防护体系L7 与 L3/4 的两条主线在动手配置之前需要先明确 Cloudflare DDoS 防护的两个层面详见 DDoS 模块 READMEHTTP DDoSL7保护 HTTP/HTTPS 流量对应 Ruleset 阶段phaseddos_l7支持 zone 级与 account 级配置Network DDoSL3/4防护 UDP/SYN/DNS 等网络层洪水对应 phaseddos_l4仅支持 account 级配置Adaptive DDoS以 7 天流量为基线学习自动检测偏差提供 Origins、User-Agents、Locations、Protocols 四种画像Profile类型。套餐可用性是配置的硬约束下表来自仓库文档请据此判断你的账号能使用哪些能力功能FreeProBusinessEnterpriseEnterprise AdvancedHTTP DDoSL7✓✓✓✓✓Network DDoSL3/4✓✓✓✓✓Override 规则数111110自定义表达式✗✗✗✗✓log 动作✗✗✗✗✓Adaptive DDoS✗✗✗✓✓告警过滤器BasicBasicBasicAdvancedAdvanced关键动作与敏感度速览动作包括block、managed_challenge、challenge、loglog仅 Enterprise Advanced敏感度包括defaultHigh、medium、low、eoffEssentially Off覆盖粒度可按 category/tag 或具体规则 IDzone 级覆盖优先级高于 account 级。二、Dashboard 配置路径五步完成基础防护若你是首次配置 DDoS 防护官方推荐的 Web 控制台操作路径如下导航至Security DDoS选择HTTP DDoS或Network-layer DDoS按 ruleset / category / rule 三个粒度分别配置敏感度sensitivity与动作action应用覆盖override可附带可选表达式仅 Enterprise Advanced 支持自定义表达式开启Adaptive DDoS开关仅 Enterprise / Enterprise Advanced要求已积累 7 天流量历史。控制台操作的本质是对托管规则集Managed Ruleset施加覆盖你不直接改写 Cloudflare 内置的 DDoS 规则而是通过 override 调整其敏感度与动作。这也是后续所有 API 化配置的核心思想。三、Override 规则结构DDoSOverride 逐字段拆解无论使用控制台还是 API覆盖规则都遵循同一个结构。仓库文档给出了完整的 TypeScript 类型定义interface DDoSOverride { description: string; rules: Array{ action: execute; expression: string; // Custom expression (Enterprise Advanced) or true for all action_parameters: { id: string; // Managed ruleset ID (discover via api.md) overrides: { sensitivity_level?: default | medium | low | eoff; action?: block | managed_challenge | challenge | log; // log Enterprise Advanced only categories?: Array{ category: string; // e.g., http-flood, udp-flood sensitivity_level?: string; }; rules?: Array{ id: string; action?: string; sensitivity_level?: string; }; }; }; }; }字段语义要点rules[].action固定为execute——覆盖规则的动作是执行某个托管规则集真正的放行/拦截动作在overrides里定义rules[].expression命中条件。普通套餐只能使用true全流量Enterprise Advanced 可写复杂表达式详见下节action_parameters.id目标托管规则集的 ID。该 ID 需要通过 API 发现流程 获取不能凭空猜测具体发现代码见本文第六节overrides支持三级覆盖全局sensitivity_level/action、按categories批量覆盖、按rules单条覆盖三者的优先级关系见第五节。四、表达式可用性决定你能写到多细自定义表达式是 DDoS 覆盖规则中差异化最大的能力仓库文档的对照表如下套餐自定义表达式示例Free/Pro/Business✗只能使用trueEnterprise✗只能使用trueEnterprise Advanced✓ip.src in {...}、http.request.uri.path matches ...注意即使是 Enterprise 套餐DDoS 覆盖的自定义表达式同样不可用只有 Enterprise Advanced 支持。这意味着普通套餐只能对全流量施加统一覆盖细化到路由或来源 IP 的差异化防护必须依赖 Enterprise Advanced当遇到 Expression not allowed错误码 81020时不必怀疑语法先确认套餐等级。五、敏感度映射与覆盖优先级5.1 敏感度UI 与 API 的对应关系控制台里看到的高/中/低/几乎关闭在 API 层面对应如下来自仓库文档UIAPI阈值HighdefaultMost aggressive最激进误报风险最高MediummediumBalanced均衡LowlowLess aggressive较温和Essentially OffeoffMinimal mitigation仅保留最小缓解eoff不是关闭防护——Cloudflare DDoS 托管规则集属于**始终在线always-on**防护无法完全禁用eoff只是把缓解力度降到最低详见 gotchas.md 的 Cannot disable DDoS protection 条目。5.2 常见规则类别覆盖既可按类别批量调整也可按单条规则精确调整。常见类别如下L7应用层http-flood、http-anomalyL3/4网络层udp-flood、syn-flood、dns-flood。5.3 覆盖优先级多层规则如何裁决当多个覆盖层同时存在时按以下顺序生效高优先级者胜出Zone-level Account-level Individual Rule Category Global sensitivity/action示例对/api/*路径配置的 zone 级规则会覆盖 account 级的全局设置。若你发现zone 覆盖被忽略多半是 account 级配置与之冲突——仓库建议要么统一在 zone 级配置要么移除 zone 覆盖改走 account 级详见 gotchas.md。六、Adaptive DDoS 自适应防护四类画像与配置方式可用性Enterprise、Enterprise Advanced学习期需要 7 天的流量历史作为基线画像类型说明检测目标Origins按源站服务器统计流量模式针对特定源站的异常请求User-Agents按 User-Agent 统计流量模式恶意/异常的 UA 字符串Locations按地理位置统计流量模式来自特定国家/地区的攻击Protocols按协议统计流量模式L3/4特定协议的洪水攻击配置方式通过 API 定位特定的 adaptive 规则 ID再对其施加覆盖如把某个 adaptive 规则的敏感度降为low。具体示例见 api.md 的 typed-override-examples 章节。如果 adaptive 规则不生效最可能的原因是流量历史不足 7 天——先等待基线建立完成再到 Dashboard 查看 adaptive 规则状态见 gotchas.md。七、告警配置Alerting 与通知机制通过 Notifications 配置 DDoS 攻击告警告警类型http_ddos_attack_alert、layer_3_4_ddos_attack_alert以及对应的advanced_*变体如advanced_http_ddos_attack_alert、advanced_layer_3_4_ddos_attack_alert过滤器zones、hostnames、RPS/PPS/Mbps 阈值、IP、协议通知机制email、webhooks、PagerDuty。告警的 API 化配置含完整请求结构见 api.md 的 alert-configuration 章节其核心类型如下interface DDoSAlertConfig { name: string; enabled: boolean; alert_type: http_ddos_attack_alert | layer_3_4_ddos_attack_alert | advanced_http_ddos_attack_alert | advanced_layer_3_4_ddos_attack_alert; filters?: { zones?: string[]; hostnames?: string[]; requests_per_second?: number; packets_per_second?: number; megabits_per_second?: number; ip_prefixes?: string[]; // CIDR ip_addresses?: string[]; protocols?: string[]; }; mechanisms: { email?: Array{ id: string }; webhooks?: Array{ id: string }; pagerduty?: Array{ id: string }; }; }八、API 与 TypeScript SDK 编程化配置控制台操作适合人工调优而自动化、可审计的配置应走 API。仓库 api.md 提供了完整的端点与 SDK 用法。8.1 REST 端点HTTP DDoSL7// Zone-level PUT /zones/{zoneId}/rulesets/phases/ddos_l7/entrypoint GET /zones/{zoneId}/rulesets/phases/ddos_l7/entrypoint // Account-level (Enterprise Advanced) PUT /accounts/{accountId}/rulesets/phases/ddos_l7/entrypoint GET /accounts/{accountId}/rulesets/phases/ddos_l7/entrypointNetwork DDoSL3/4仅 account 级// Account-level only PUT /accounts/{accountId}/rulesets/phases/ddos_l4/entrypoint GET /accounts/{accountId}/rulesets/phases/ddos_l4/entrypoint8.2 SDK 三步走发现 ID → 读取现状 → 应用覆盖使用 TypeScript SDK 配置需要cloudflare包版本 3.0.0该版本起才提供 ruleset phase 方法import Cloudflare from cloudflare; const client new Cloudflare({ apiToken: process.env.CLOUDFLARE_API_TOKEN }); // STEP 1: Discover managed ruleset ID (required for overrides) const allRulesets await client.rulesets.list({ zone_id: zoneId }); const ddosRuleset allRulesets.result.find( (r) r.kind managed r.phase ddos_l7 ); if (!ddosRuleset) throw new Error(DDoS managed ruleset not found); const managedRulesetId ddosRuleset.id; // STEP 2: Get current HTTP DDoS configuration const entrypointRuleset await client.zones.rulesets.phases.entrypoint.get(ddos_l7, { zone_id: zoneId, }); // STEP 3: Update HTTP DDoS ruleset with overrides await client.zones.rulesets.phases.entrypoint.update(ddos_l7, { zone_id: zoneId, rules: [ { action: execute, expression: true, action_parameters: { id: managedRulesetId, // From discovery step overrides: { sensitivity_level: medium, action: managed_challenge, }, }, }, ], }); // Network DDoS (account level, L3/4) const l4Rulesets await client.rulesets.list({ account_id: accountId }); const l4DdosRuleset l4Rulesets.result.find( (r) r.kind managed r.phase ddos_l4 ); const l4Ruleset await client.accounts.rulesets.phases.entrypoint.get(ddos_l4, { account_id: accountId, });Managed ruleset not found 是最常见的报错之一排查方向是确认 zone/account 上确实存在 DDoS 托管规则集并核对 phase 名称是ddos_l7还是ddos_l4见 gotchas.md。8.3 更细的覆盖按类别或按规则 ID按类别批量覆盖interface CategoryOverride { action: execute; expression: string; action_parameters: { id: string; overrides: { categories?: Array{ category: http-flood | http-anomaly | udp-flood | syn-flood; sensitivity_level?: default | medium | low | eoff; action?: block | managed_challenge | challenge | log; }; }; }; }按单条规则 ID 覆盖interface RuleOverride { action: execute; expression: string; action_parameters: { id: string; overrides: { rules?: Array{ id: string; action?: block | managed_challenge | challenge | log; sensitivity_level?: default | medium | low | eoff; }; }; }; } // Example: Override specific adaptive rule const adaptiveOverride: RuleOverride { action: execute, expression: true, action_parameters: { id: managedRulesetId, overrides: { rules: [ { id: ...adaptive-origins-rule-id..., sensitivity_level: low }, ], }, }, };8.4 创建告警策略REST 直调await fetch( https://api.cloudflare.com/client/v4/accounts/${accountId}/alerting/v3/policies, { method: POST, headers: { Authorization: Bearer ${apiToken}, Content-Type: application/json, }, body: JSON.stringify(alertConfig), } );九、高频错误、错误码与配额速查仓库 gotchas.md 整理了最常见的排障场景摘录如下现象根因解决方向误杀正常流量敏感度过高、动作过强或缺少例外降低特定规则/类别的敏感度先用log动作验证用自定义表达式加例外如 IP 白名单用 GraphQL Analytics API 分析被标记请求攻击仍能穿透敏感度过低或动作过弱提升到default敏感度并使用block动作Adaptive 规则不生效流量历史不足 7 天等待基线建立检查 Dashboard 中 adaptive 规则状态Zone 覆盖被忽略与 account 级覆盖冲突统一在 zone 级配置或移除 zone 覆盖改用 account 级log 动作不可用非 Enterprise Advanced 套餐测试期改用managed_challengelow敏感度覆盖规则数超限Free/Pro/Business 限 1 条、Enterprise Advanced 限 10 条用and/or合并条件到单条表达式无法覆盖某规则该规则为只读检查 API 响应中的只读标识改选其他规则无法关闭 DDoS 防护托管规则集始终在线不可完全禁用将敏感度设为eoff以最小化缓解表达式不被允许自定义表达式仅限 Enterprise Advanced改用true或升级套餐API 层面对应的错误码错误码含义解决方向10000认证失败检查 API token 是否具备 DDoS 权限81000Ruleset 校验失败确认action_parameters.id是托管规则集 ID81020表达式不被允许使用true或升级至 Enterprise Advanced81021规则数超限精简规则或升级Enterprise Advanced 上限 1081022敏感度非法仅可使用default/medium/low/eoff81023动作非法log动作仅 Enterprise Advanced 可用配额总览来自 gotchas.md资源/限制Free/Pro/BusinessEnterpriseEnterprise Advanced每 zone 覆盖规则数1110自定义表达式✗✗✓log 动作✗✗✓Adaptive DDoS✗✓✓所需流量历史-7 天7 天十、调优策略与最佳实践仓库给出的渐进式调优路线适用于生产环境平滑升级以log动作 medium敏感度起步先观察、不拦截持续监控 24–48 小时识别误报并补充例外逐步提升到default敏感度动作按log→managed_challenge→block的顺序递进记录所有调整以便回滚与复盘。最佳实践清单在低流量时段测试规则变更优先使用 zone 级配置做按站点调优借助 IP 列表Reference Lists简化管理设置合理的告警阈值避免告警噪音与 WAF 组合实现纵深防御避免过度调优保持配置简洁。十一、进阶模式速览若需要更完整的实现模板仓库 patterns.md 提供了可直接落地的场景代码包括可信 IP 白名单对ip.src in {...}命中流量施加eoff敏感度路由差异化敏感度/api/*用低敏感度 managed_challenge其余路径用defaultblock渐进式防护等级用MONITORING → LOW → MEDIUM → HIGH枚举封装setProtectionLevel()函数攻击动态响应通过 Worker KV 记录攻击事件连续攻击超过阈值自动提升防护等级、流量恢复后回落多规则分级防护Enterprise Advanced结合$known_ips、cf.bot_management.score、$trusted_ips实现多层覆盖纵深防御DDoS WAF Rate Limiting Bot Management 四层叠加分别对应ddos_l7、http_request_firewall_managed、http_ratelimit、http_request_sbfm四个 phase缓存抗 DDoS对/api/路径设置set_cache_settings并排除查询字符串抵御随机 query 参数绕缓存的攻击。相关阅读DDoS 模块 README阅读顺序与总览DDoS API 与 SDK 文档DDoS 常见问题与调优DDoS 防护模式示例相关安全产品WAF应用层安全规则、Bot Management机器人检测与缓解【免费下载链接】skillsSkills Catalog for Codex项目地址: https://gitcode.com/GitHub_Trending/skills4/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考