WordPressのログインURLを変更する|デフォルトURLへのbot攻撃の削減

当ページは検証・整備中のドラフトです。
内容は実環境での検証や追加調査により変更される予定です。
参照:ページ公開・更新ポリシー

WordPressのデフォルトのログインURL「〜/wp-login.php」は広く知られており、botによる自動化されたログイン試行攻撃の対象となりやすい。

そのURLを変更することで、デフォルトURLを機械的に狙ってくる攻撃を減らすための対策である。

ログインURL変更の基本的な考え方

デフォルトのログインURLに代えて、任意のURLからログイン画面へアクセスできるようにする。
そうすることで変更前のURLへアクセスしてもログイン画面が表示されなくなる。

ただ、認証そのものを強化する対策ではなく、変更後のURLが知られれば再び攻撃対象となるため他のセキュリティ対策と合わせて行う必要がある。

ログインURLの変更方法

WordPressプラグインによる変更

小規模環境では、専用のセキュリティプラグインを利用する方法が導入しやすい。

WPS Hide Loginなどを利用すれば、WordPressのログインURLを任意のURLへ変更できる。利用中のセキュリティプラグインに同等の機能がある場合は、重複して導入せず、その機能を利用することでも実現できる。

細かな仕様はプラグインごとに異なるため、プラグインの公式マニュアルから、デフォルトURLへのアクセス時の動作、ログインURLの変更方法、URLを忘れた場合の復旧方法などを確認しておく。

Webサーバ・前段サービスによる変更

Webサーバの設定やリバースプロキシなどを利用して、ログイン画面への経路を変更する方法もある。

ただし、新URLへ単純にリダイレクトするだけでは、botも転送先をたどってログイン画面へ到達できるため、対策の意味が無くなる。

変更するURLの決定

変更後のURLは推測されにくいものを設定する。

管理者の名前やサイト名などから容易に推測できる文字列は避け、第三者に知られる必要のないURLとして管理する。

変更後のURLはブックマークやパスワードマネージャなどに保存し、必要な管理者間で共有しておく。

デフォルトURLへのアクセスの扱い

元のログインURLへアクセスした際、新しいログインURLへ自動的に転送されないことを確認する。

404(Not Found)エラーなどを返す構成にすれば、botが元のURLからログイン画面へ到達することを防げる。実際の動作は利用するプラグインや設定方式によって異なるため、設定後に確認する。

変更後のURLを忘れた場合の復旧

変更後のURLを忘れた場合に備え、利用するプラグインや設定方式の復旧方法を事前に確認しておく。

まずはブックマーク、ブラウザ履歴、パスワードマネージャ、管理者間の共有記録などからURLを確認する。

プラグインによっては、ホスティングサービスのファイルマネージャやSFTPなどから一時的に無効化することで、デフォルトのログインURLを利用できる状態に戻せる。

例えばWPS Hide Loginでは、プラグインのフォルダ名を一時的に変更するなどして無効化する方法がある。具体的な復旧方法は、利用するプラグインの公式マニュアルで確認する。

ログインURL変更による影響

ログインURLを変更すると、ログイン画面を参照する外部サービスや、WordPressの認証機能を利用するプラグインなどに影響する場合がある。

ログイン・ログアウト・パスワード再設定などの動作も確認対象となる。

また、プラグインの無効化や設定変更によって、デフォルトのURLが再び利用できる状態に戻ってしまう可能性がある。更新や設定変更後にも、必要に応じて動作を確認しておく。

設定後のアクセス確認

変更後のURLからのログイン確認

正常にログインできることを確認する。ログアウトやパスワード再設定など、必要な認証機能も確認しておく。

デフォルトURLへのアクセス確認

ログイン画面が従来どおり表示されないことを確認しておく。あわせて新しいログインURLへ自動的に転送されないことも確認する。

公開サイト・関連機能の確認

公開ページやフォーム、外部サービスとの連携などに影響がないことを確認する。

他の不正アクセス対策との併用

ログインURLの変更は、デフォルトURLを狙うbotのアクセスを減らす補助的な対策である。

変更後のURLが知られた場合には攻撃を受ける可能性があるため、多要素認証、パスワード対策、ログイン試行の制限などと組み合わせて利用する。