
Cloudflareを通らずにサーバーへ直接来たアクセスを見分ける機能です。設定を誤ると自分もサイトに入れなくなるため、サーバー管理担当者と進めます。
こんなときに使います
たとえば:Cloudflareで保護しているのに、それを通らずサーバーへ直接アクセスされる経路を塞ぎたい。
管理担当者が到達確認と記録のみの試験を行ってから、遮断を検討します。Cloudflareを使っていないサイトには、そのまま適用しません。
操作する画面の開き方
WordPress管理画面の「OptiB」を開き、管理パネルの「セキュリティ・認証」→「セキュリティ」→「Cloudflareヘッダー検証」へ進みます。
正常な通信が通ると確かめてから遮断する
何のために使う?
Cloudflareをサイトの受付と考えてください。受付では、怪しいアクセスを調べられます。しかし、受付を通らずにサーバーへ直接来たアクセスには、その検査が届きません。この機能は、受付を通ったことを示す「合言葉」を確認します。
合言葉は、通信に付ける「X-OptiB-Origin-Verify」というヘッダーに入れます。ヘッダーとは、通信に添える情報のことです。合言葉は管理画面で生成する64文字の値です。公開記事やスクリーンショットに載せないでください。
この作業は管理担当者と進めてください
Cloudflareとサーバーの両方を変更します。間違えると、お客様だけでなく管理者も入れなくなります。WordPressにログインできない状態でもサーバーのファイルを直せる手段を、先に用意してください。
2種類の選択があります
- 「モード」は動かし方です。「off」は停止、「ドライラン」は止めずに記録、「enforce」は条件に合わないアクセスを実際に止めます。
- 「レイヤー」は確認する場所です。「PHP」はWordPressが処理するアクセスで確認し、「Apache」はサーバーの設定ファイルを使います。初期設定はPHPです。どちらも同じ範囲を守るわけではありません。
導入の順番
- 現在の設定とサーバーのファイルをバックアップします。ログインできなくなった場合の戻し方を管理担当者と確認します。
- OptiBの「Cloudflareヘッダー検証」でシークレットを生成し、値を安全な場所へ控えます。
- Cloudflare側にリクエストヘッダーを変更するTransform Ruleを作り、「X-OptiB-Origin-Verify」に同じ値を設定します。特定のページだけに限定せず、全リクエストを対象にします。
- 管理画面の手順に沿ってmu-pluginを設置します。mu-pluginとは、通常のプラグインとは別に自動で読み込まれるプログラムです。
- 緊急時に止めるための設定をwp-config.phpへ用意します。「書き込む」を実行しただけでは停止せず、無効なコメントの状態で行が追加されます。
- まず「ドライラン」で運用し、通常のページ表示やログインを試します。
- 記録を確認し、必要なアクセスを止めないと確かめてから「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の省略表記の違いにも注意が必要です。範囲指定を含む詳しい設定は、ネットワークを管理する担当者に依頼してください。
