ホーム » OptiBマニュアル » Cloudflareヘッダー検証

Cloudflareヘッダー検証

Cloudflareヘッダー検証

Cloudflareを通らずにサーバーへ直接来たアクセスを見分ける機能です。設定を誤ると自分もサイトに入れなくなるため、サーバー管理担当者と進めます。

こんなときに使います

たとえば:Cloudflareで保護しているのに、それを通らずサーバーへ直接アクセスされる経路を塞ぎたい。

管理担当者が到達確認と記録のみの試験を行ってから、遮断を検討します。Cloudflareを使っていないサイトには、そのまま適用しません。

操作する画面の開き方

WordPress管理画面の「OptiB」を開き、管理パネルの「セキュリティ・認証」→「セキュリティ」→「Cloudflareヘッダー検証」へ進みます。

自分の状況から、次の操作を選びましょう
こんなときCloudflareを通る通信だけ受けたい
次にすることまずドライランで記録を確認

正常な通信が通ると確かめてから遮断する

何のために使う?

Cloudflareをサイトの受付と考えてください。受付では、怪しいアクセスを調べられます。しかし、受付を通らずにサーバーへ直接来たアクセスには、その検査が届きません。この機能は、受付を通ったことを示す「合言葉」を確認します。

合言葉は、通信に付ける「X-OptiB-Origin-Verify」というヘッダーに入れます。ヘッダーとは、通信に添える情報のことです。合言葉は管理画面で生成する64文字の値です。公開記事やスクリーンショットに載せないでください。

この作業は管理担当者と進めてください

Cloudflareとサーバーの両方を変更します。間違えると、お客様だけでなく管理者も入れなくなります。WordPressにログインできない状態でもサーバーのファイルを直せる手段を、先に用意してください。

2種類の選択があります

  • 「モード」は動かし方です。「off」は停止、「ドライラン」は止めずに記録、「enforce」は条件に合わないアクセスを実際に止めます。
  • 「レイヤー」は確認する場所です。「PHP」はWordPressが処理するアクセスで確認し、「Apache」はサーバーの設定ファイルを使います。初期設定はPHPです。どちらも同じ範囲を守るわけではありません。

導入の順番

  1. 現在の設定とサーバーのファイルをバックアップします。ログインできなくなった場合の戻し方を管理担当者と確認します。
  2. OptiBの「Cloudflareヘッダー検証」でシークレットを生成し、値を安全な場所へ控えます。
  3. Cloudflare側にリクエストヘッダーを変更するTransform Ruleを作り、「X-OptiB-Origin-Verify」に同じ値を設定します。特定のページだけに限定せず、全リクエストを対象にします。
  4. 管理画面の手順に沿ってmu-pluginを設置します。mu-pluginとは、通常のプラグインとは別に自動で読み込まれるプログラムです。
  5. 緊急時に止めるための設定をwp-config.phpへ用意します。「書き込む」を実行しただけでは停止せず、無効なコメントの状態で行が追加されます。
  6. まず「ドライラン」で運用し、通常のページ表示やログインを試します。
  7. 記録を確認し、必要なアクセスを止めないと確かめてから「enforce」へ進みます。Apacheの場合は、先にセルフテストへの合格も必要です。

ドライランで確かめること

ドライランは、実際にはアクセスを止めない予行練習です。「off」から「enforce」へ直接は進めません。少なくとも1件のアクセスが判定を受けた記録が必要です。

記録の保存は最短でも5分間隔です。切り替え直後に0件でも、すぐ故障と判断しないでください。記録は正確な全アクセス数ではなく、どのページに問題がありそうかを調べる目安です。

合言葉を交換するとき

新しいシークレットを生成したあとは、Cloudflare側も同じ値に更新します。古い値は初期設定で24時間受け付けられます。新しい値で動くことを確認して「確認」を押すと、古い値は使えなくなります。期限が過ぎた場合も古い値は失効します。

動かなくなった場合の戻し方

以下はサーバー管理担当者向けの操作です。別の設定まで消さないようにしてください。

  • PHP側の緊急停止:wp-config.phpに用意した define('OPTIB_CF_GUARD_DISABLE', true); の行を有効にする方法があります。
  • PHPモードのプログラム:wp-content/mu-plugins/optib-cf-guard.php が対象です。ほかのmu-pluginを削除しないでください。
  • Apache側で遮断された:サイトの .htaccess にある「BEGIN OptiB Cloudflare Guard」から対応する終了マーカーまでの設定を戻す必要があります。PHP側を止めただけではApache側の制限は消えません。

知っておくべき制限

  • Apache用の設定は、別種類のサーバーや.htaccessが読み込まれない環境では働きません。
  • プラグイン独自の設定がある場所や、画像などのファイル配信は、同じように保護できない場合があります。「保護が外れる経路」の表を確認します。
  • アクセス解析用の通信には、秘密の値が読めない場合などに遮断しない経路があります。
  • テーマをファイルごと手動削除した場合は、自動の後片付けが働きません。

IP制限も使う場合

IPアドレスは接続元を区別する番号です。Cloudflareを通ったことが確認できると、接続元の判定の信頼性が上がります。緊急停止中は、その保証がなくなることに注意してください。

IPv4とIPv6という2種類の番号があります。同じ人でも別の種類で接続する場合があるため、許可リストは管理画面に表示された番号を基に設定します。IPv6の省略表記の違いにも注意が必要です。範囲指定を含む詳しい設定は、ネットワークを管理する担当者に依頼してください。

次に読むマニュアル