コンテンツにスキップ

ゾーンロックダウン

現在、Cloudflareの有料プランの顧客は、任意のホストまたはIPに対してヘルスチェックを構成できます。ゾーンロックダウンは、ドメイン、サブドメイン、またはURLにアクセスを許可されるIPアドレス、CIDR範囲、またはネットワークのリストを指定します。これにより、単一のルール内で複数の宛先を指定でき、IPv4およびIPv6アドレスもサポートされます。ゾーンロックダウンルールに指定されていないIPアドレスは、指定されたリソースへのアクセスを拒否されます。

顧客がゾーンロックダウンを有効にすると、そのゾーンを対象とするヘルスチェックは、所有権に関係なく通過します。これは、CloudflareのASNが許可リストに含まれているためです。

CloudflareのASNは許可リストに含まれています。これにより、ヘルスチェックはゾーンロックダウンをバイパスできます。ただし、これにより脆弱性が生じ、その動作は変更され、デフォルトでヘルスチェックがゾーンロックダウンを通過できなくなります。ゾーンロックダウンを使用している顧客で、ヘルスチェックを引き続き通過させたい場合は、以下のガイドに従ってゾーンロックダウンをバイパスできます。

ゾーンロックダウンをバイパスする

WAFカスタムルールを使用してゾーンロックダウンをバイパスするには:

  1. Cloudflareダッシュボードにログインし、アカウントとドメインを選択します。
  2. セキュリティ > WAF > カスタムルールに移動します。
  3. ルールを作成を選択します。
  4. ユーザーエージェントに一致するカスタムルールを作成します。
  5. アクションをスキップに設定し、スキップするその他のコンポーネントの下で対応する機能をゾーンロックダウンに設定します。

Cloudflareのヘルスチェックは、以下の形式のユーザーエージェントを持っています: Mozilla/5.0 (compatible;Cloudflare-Healthchecks/1.0;"+https://www.cloudflare.com/; healthcheck-id: XXX) ここで、XXXはヘルスチェックIDの最初の16文字に置き換えられます。

特定のヘルスチェックを許可するには、ユーザーエージェントにヘルスチェックIDの最初の16文字が含まれているか確認します。

API経由で

この例では、ID {ruleset_id} のルールセットに新しいWAFカスタムルールを追加し、ユーザーエージェントに 1234567890abcdef を含む受信リクエストのゾーンロックダウンをスキップします:

Terminal window
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": "ゾーンロックダウンをバイパス - 特定のヘルスチェック"
}'