アクセス制御設定

アクセス制御設定画面では、IP 許可/拒否リスト、管理画面・公開ページの国別アクセス制限、緊急バイパス、IP 検出方法などを設定します。

アクセス方法:WordPress 管理画面 → IP Access Controlアクセス制御設定

1. IP許可/拒否リスト

特定の IP アドレスを常に許可、または常に拒否したい場合に使用します。
なお、IP 許可リストと拒否リストは、国別制限よりも高い優先度で適用されます。

IP許可/拒否リストの設定画面
「IP許可/拒否リスト」セクション

優先順位

アクセス判定は以下の順序で行われます。

  1. IP 許可リスト
    リストに含まれる IP は、国別制限に関わらず常にアクセスが許可されます(最優先)。
  2. IP 拒否リスト
    リストに含まれる IP は、国別制限に関わらず常にブロックされます。
  3. 国別制限
    上記リストに該当しない場合、IPアドレスによるアクセス元国を判定し、アクセスを制御します。
アクセス判定の優先順位フロー
IP許可リスト → IP拒否リスト → 国別制限 の順に判定されます

対応する入力形式

許可リスト・拒否リストでは、以下の形式で IP を指定できます。1 行に 1 エントリずつ入力してください。

形式説明
単一 IP192.168.1.100特定の IP アドレス 1 つを指定
CIDR192.168.1.0/24サブネット単位で範囲指定(この例では 192.168.1.0〜192.168.1.255)
ASNAS12345自律システム番号で指定。特定のプロバイダやサービスの IP 帯域をまとめて指定
IPv62001:db8::1IPv6 アドレスも同様に指定可能
IPv6 CIDR2001:db8::/32IPv6 のサブネット範囲指定

IP 許可リストの設定

許可リストに登録された IP からのアクセスは、管理画面保護・フロントエンド保護の両方で常に許可されます。以下の IP を必ず追加することを推奨します。

  • 自分の IP アドレス
    ロックアウト防止のため
  • 社内ネットワークの IP 帯域
    社内からのアクセスを常に許可
  • 監視サービスの IP
    死活監視ツールからのアクセスを許可
  • 外部サービスの IP
    連携している外部サービスからのアクセスを許可

IP 拒否リストの設定

拒否リストに登録された IP は、許可国からのアクセスであっても常にブロックされます。

以下のような用途で使用できます。

  • ブロックログで繰り返し攻撃を試みる IP を特定し、手動で拒否リストに追加
  • 既知のスパム IP 帯域を CIDR で一括ブロック
  • 特定のホスティングプロバイダの ASN を指定してブロック

2. 管理画面アクセス制限

WordPress の管理画面(wp-admin)、ログインページ(wp-login.php)、サインアップページ(wp-signup.php)へのアクセスを、国別・IP 別に制限する機能です。不正ログイン試行やブルートフォース攻撃から管理画面を保護します。

保護対象

管理画面保護を有効にすると、以下の URL へのアクセスが制限されます。

  • /wp-admin/
    WordPress 管理画面
  • /wp-login.php
    ログインページ
  • /wp-signup.php
    マルチサイトのサインアップページ

設定項目

管理画面保護の設定画面
「管理画面アクセス制限」セクション
設定項目デフォルト説明
保護の有効化有効管理画面へのアクセス制限を有効にします。
国別制限を有効にする有効許可した国からのアクセスのみ管理画面にアクセスできるようにします。
許可する国コードサイトのロケールに基づく国管理画面へのアクセスを許可する国コードを指定します(ISO 3166-1 alpha-2、例:JP, US)。
IP 制限無効有効にすると、指定した IP からのみ管理画面にアクセスできます。国別制限と併用可能。
IP 許可リスト管理画面へのアクセスを許可する IP アドレスのリスト。

XML-RPC 保護

xmlrpc.php は WordPress の外部連携用エンドポイントですが、ブルートフォース攻撃の標的としてよく狙われます。管理画面保護の設定にある 「XML-RPC も保護する」 にチェックを入れると、管理画面と同じ制限ルールが xmlrpc.php にも適用されます。

ヒント
xmlrpc.php は多くのサイトで不要であり、攻撃の入り口となりやすいエンドポイントです。
Jetpack や WordPress モバイルアプリを使用していない場合は、XML-RPC 保護を有効にすることを推奨します。

REST API 保護

WordPress REST API のうち、セキュリティ上重要なエンドポイント(ユーザー情報、設定情報など)へのアクセスを制限します。「REST API も保護する」(デフォルト:有効)にチェックを入れると、管理画面と同じ制限ルールが適用されます。

REST API 保護が有効な場合、以下のようなエンドポイントが制限されます。

  • /wp-json/wp/v2/users
    ユーザー情報の取得・変更
  • /wp-json/wp/v2/settings
    サイト設定の取得・変更

注意
REST API 保護を有効にする際は、外部サービスから REST API を利用していないか確認してください。
ヘッドレス CMS として WordPress を使用している場合や、外部アプリケーションから REST API を呼び出している場合は、それらの IP を許可リストに追加してください。

設定例:日本国内からのみ管理画面にアクセスを許可

  1. 保護の有効化を 有効 にします。
  2. 国別制限を 有効 にします。
  3. 許可する国に JP を設定します。
  4. XML-RPC 保護を 有効 にします。
  5. REST API 保護を 有効 にします。
  6. IP 許可リストに自分の IP を追加します。
  7. 設定を保存します。
管理画面保護の設定例
日本国内からのみ管理画面にアクセスを許可する設定例

この設定により、日本国外からの管理画面・ログインページ・xmlrpc.php・REST API へのアクセスがすべてブロックされます。海外出張時など一時的にアクセスが必要な場合は、IP 許可リストに出張先の IP を追加するか、緊急バイパス機能を使用してください。

3. 緊急バイパス

設定ミスや IP アドレスの変更などにより、自分自身が管理画面からロックアウトされてしまった場合に使用する緊急復旧機能です。

重要
管理画面保護を有効にする前に、緊急バイパス URL を必ず安全な場所に控えてください。
ロックアウトされた後では、この URL を確認する手段がありません。

仕組み

緊急バイパスは、トークンを含む特別な URL にアクセスすることで、一時的にアクセス制限を解除する機能です。

  • バイパスの有効期間は 1 時間 です。
  • バイパス中は、アクセス元の IP に関わらず管理画面にアクセスできます。
  • バイパス中に設定を修正し、自分の IP を許可リストに追加してください。

使い方

事前準備:バイパス URL の確認

  1. アクセス制御設定画面の「管理画面アクセス制限」セクションを開きます。
  2. 「緊急バイパス URL を発行」 ボタンをクリックします。
  3. 表示された URL をコピーし、パスワードマネージャーやメモ帳など安全な場所に保存します。
「緊急バイパス URL を発行」ボタンをクリックしてURLを取得

メールによるバイパス URL 送信

管理画面にアクセスできる状態であれば、バイパス URL をメールで送信することもできます。海外出張前など、事前に自分のメールアドレスに送信しておくと安心です。

緊急バイパスURL表示画面
「送信」ボタンをクリックしてURLをメール送信

ロックアウト時の復旧手順

  1. 事前に控えておいた緊急バイパス URL にブラウザでアクセスします。
  2. バイパスが有効化され、1 時間の間アクセス制限が解除されます。
  3. 通常どおり /wp-admin/ にアクセスし、ログインします。
  4. アクセス制御設定画面を開き、以下のいずれかを行います:
    • 現在の IP アドレスを IP 許可リストに追加する
    • 許可する国の設定を見直す
    • 管理画面保護を一時的に無効にする
  5. 設定を保存します。
  6. 必要に応じてキャッシュをクリア(メンテナンス画面)して、新しい設定を即座に反映します。

バイパス URL を紛失した場合

バイパス URL を紛失し、管理画面にもアクセスできない場合は、以下の方法で復旧できます。

  • FTP / SSH でプラグインを無効化する
    wp-content/plugins/trustbrain-ip-access-control/ フォルダを trustbrain-ip-access-control-disabled/ にリネームすると、プラグインが自動的に無効化されます。管理画面にアクセスできるようになったら、フォルダ名を元に戻し、設定を修正してください。
  • データベースから設定を変更する
    phpMyAdmin 等で wp_options テーブルの tbipac_backend_enabled0 に変更すると、管理画面保護が無効になります。

ヒント
緊急バイパス URL は一度使用しても無効にはなりません。
ただし、セキュリティのため定期的に新しいトークンを再生成することを推奨します。

4. 公開ページアクセス制限

サイトの公開ページ(フロントエンド)へのアクセスを、国別・IP 別に制限する機能です。サイト全体、またはコメント・トラックバックなど特定の操作だけを制限することも可能です。

設定項目

公開ページアクセス制限の設定画面
「公開ページアクセス制限」セクション
設定項目デフォルト説明
保護の有効化無効公開ページへのアクセス制限を有効にします。
許可する国コード有効許可した国からのアクセスのみサイトを閲覧できるようにします。
許可する国JP, USフロントエンドへのアクセスを許可する国コードを指定します。
拒否IP無効有効にすると、指定した IP からのフロントエンドアクセスをブロックします。
IP 拒否リストフロントエンドへのアクセスを拒否する IP アドレスのリスト。

制限対象の選択

フロントエンド保護では、全ページへのアクセスを制限するだけでなく、特定の操作だけを制限対象にすることもできます。

制限対象デフォルト説明
コメント投稿有効制限対象国からのコメント投稿をブロックします。スパムコメント対策に有効です。
トラックバック有効制限対象国からのトラックバック/ピンバックをブロックします。
oEmbed有効制限対象国からの oEmbed リクエストをブロックします。

ヒント
日本国内向けのサイトで海外からのスパムコメントに悩まされている場合、フロントエンド保護の「コメント」だけを有効にすると、ページの閲覧は許可しつつコメント投稿だけを国別に制限できます。

POST リクエストログ

フロントエンドで受信した POST リクエスト(フォーム送信、コメント投稿、AJAX リクエストなど)を記録する機能です。

設定項目デフォルト説明
投稿操作のログを記録する無効フロントエンドの POST リクエストを記録します。
管理者ログイン中ユーザ対象外有効ログイン中の管理者からの POST リクエストは記録しません。

記録される情報は、リクエスト日時、IP アドレス、リクエスト先 URL です。不審な POST リクエストの調査や、Pro 版の POST レートリミティングの前提条件として使用します。

注意
フロントエンド保護を有効にすると、検索エンジンのクローラーもブロック対象になります。SEO を維持するために、Pro 版の検索ボット保護機能を併用し、Googlebot 等の正規クローラーを自動除外する設定を有効にしてください。

設定例:コメントスパム対策

ページの閲覧は全世界に公開しつつ、コメント投稿だけを日本国内に制限する設定例です。

  1. フロントエンド保護を 有効 にします。
  2. 国別制限を 有効 にします。
  3. 許可する国に JP を設定します。
  4. 制限対象で コメント のみを有効にし、他のチェックを外します。
  5. 設定を保存します。

5. その他

その他設定の画面
「その他設定」セクション

IP 検出方法の設定

正確なアクセス制御のために、サーバー環境に合った IP 検出方法を選択してください。

検出方法使用する環境説明
REMOTE_ADDR(デフォルト)プロキシなしの一般的なサーバーサーバーが直接受け取る接続元 IP を使用します。最も信頼性が高い方法です。
CF-Connecting-IPCloudflareCloudflare が付与するオリジナルの接続元 IP ヘッダーを使用します。
X-Forwarded-ForAWS ALB、Nginx リバースプロキシ等プロキシチェーンの最初の IP を使用します。信頼できるプロキシ環境でのみ使用してください。
X-Real-IPNginx リバースプロキシNginx が設定するクライアント IP ヘッダーを使用します。

重要
IP 検出方法の設定を誤ると、すべてのアクセスが同一 IP として扱われたり、偽装された IP で判定されてしまう可能性があります。
プロキシ環境でない場合は REMOTE_ADDR を使用してください。

ブロック応答コードの設定

アクセスがブロックされた際に返す HTTP ステータスコードを選択できます。

ステータスコード説明用途
403 Forbidden(推奨)アクセスが禁止されていることを明示します。一般的な用途に推奨
404 Not Foundページが存在しないように見せます。攻撃者にサイトの存在を隠したい場合

ブロック時に表示するメッセージも「ブロックメッセージ」欄でカスタマイズできます(デフォルト:「Access Denied.」)。

エクスポート / インポート

画面右サイドバーから、プラグインの全設定を JSON ファイルとしてエクスポート・インポートできます。サイト移行や複数サイトへの設定展開に便利です。

エクスポート/インポート
サイドバーの「エクスポート / インポート」セクション
操作説明
設定をエクスポート現在の全設定(IP リスト、国別制限、各種オプション)を JSON ファイルとしてダウンロード
設定をインポートエクスポートした JSON ファイルを選択してアップロード。現在の設定が上書きされます

注意
インポートすると現在の設定がすべて上書きされます。インポート前に現在の設定をエクスポートしてバックアップしておくことを推奨します。

初期設定に戻す

サイドバーの「初期設定を適用」ボタンをクリックすると、すべてのアクセス制御設定がデフォルト値にリセットされます。サイトのロケールと現在の IP から許可国が自動検出されます。

重要
初期設定の適用は取り消しできません。IP 許可/拒否リストもクリアされます。実行前にエクスポート機能で現在の設定をバックアップしてください。