目前,任何使用付费计划的 Cloudflare 客户都可以针对任何主机或 IP 配置健康检查(Health Checks)。区域锁定 (Zone Lockdown) 指定了一个或多个 IP 地址、CIDR 范围或网络的列表,它们是允许访问域名、子域名或 URL 的唯一 IP。它允许在单个规则中指定多个目标以及 IPv4 和 IPv6 地址。Zone Lockdown 规则中未指定的 IP 地址将被拒绝访问指定的资源。
使用区域锁定并希望其健康检查继续通过的客户可以使用 WAF 自定义规则来绕过区域锁定。
要使用 WAF 自定义规则绕过区域锁定:
-
按照步骤在仪表板中创建自定义规则。
-
创建一个匹配 User Agent 的自定义规则。
Cloudflare 健康检查具有以下格式的 User Agent:
Mozilla/5.0 (compatible;Cloudflare-Healthchecks/1.0;+https://www.cloudflare.com/; healthcheck-id: XXX),其中XXX被替换为健康检查 ID 的前 16 个字符。若要允许特定的健康检查,请验证 User Agent 是否包含健康检查 ID 的前 16 个字符。
-
将操作设置为 Skip,并在 More components to skip 下将相应功能设置为 Zone Lockdown。
此示例向 ID 为 {ruleset_id} 的规则集中添加了一条新的 WAF 自定义规则,该规则为 User Agent 包含 1234567890abcdef 的传入请求跳过区域锁定:
curl "https://api.cloudflare.com/client/v4/{zone_id}/rulesets/{ruleset_id}/rules" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"action": "skip",
"action_parameters": {
"products": [
"zoneLockdown"
]
},
"expression": "http.user_agent contains \"1234567890abcdef\"",
"description": "bypass zone lockdown - specific healthcheck"
}'