WordPressのログイン試行回数を制限する方法
WordPressの管理画面は、URLに /wp-login.php を付け加えるだけで誰でもログイン画面にアクセスできてしまいます。そのため、悪意のある第三者が自動プログラムを使い、パスワードを次々に入力して不正ログインを試みる**「総当たり攻撃(ブルートフォース攻撃)」**の標的になりやすい場所でもあります。
WordPressは標準の状態では、ログイン試行の回数に制限がありません。つまり、何度パスワードを間違えても、無制限に再挑戦できてしまう状態です。この記事では、ログイン試行回数を制限し、不正ログインのリスクを減らす方法を紹介します。
なぜログイン試行回数の制限が必要なのか
総当たり攻撃は、辞書に載っている単語や、よく使われるパスワードの組み合わせを自動的に大量に試すことで、パスワードを割り出そうとする攻撃手法です。
ログイン試行の回数に制限がないと、攻撃プログラムは時間をかけていくらでも試行を繰り返すことができてしまいます。これは以下のようなリスクにつながります。
- 単純なパスワードを設定していた場合、不正ログインを許してしまう可能性がある
- 大量のログイン試行によって、サーバーに余計な負荷がかかり、サイトの表示が遅くなることがある
- 不正ログインが成功すると、サイトの改ざんや情報漏えいにつながる
ログイン試行回数を制限することで、一定回数間違えた時点でそれ以上の試行をブロックできるため、こうしたリスクを大幅に減らすことができます。
対策の全体像
ログイン試行回数の制限には、大きく分けて2つのアプローチがあります。
- プラグインを使って制限する(手軽で初心者にもおすすめ)
- サーバー側の機能を使って制限する(契約しているレンタルサーバーの管理画面から設定)
どちらか一方だけでも効果はありますが、組み合わせることでより強固な対策になります。
方法1:プラグインを使って制限する
WordPressには、ログイン試行回数を制限する専用のプラグインがいくつも存在します。代表的なものに「Limit Login Attempts Reloaded」などがあります。
一般的な設定でできること
このようなプラグインを導入すると、主に以下のような設定が可能になります。
- 一定回数(例:5回)ログインに失敗したIPアドレスを、一時的にロックする
- ロックする時間の長さを設定する(例:20分間、再度の試行をブロック)
- 繰り返しロックされたIPアドレスを、より長時間ブロックする
- 不正ログインの試行があった際に、管理者にメールで通知する
導入時の流れ
- 管理画面の「プラグイン」→「新規追加」から該当プラグインを検索してインストール・有効化する
- 設定画面で、許容する試行回数やロック時間を設定する
- 必要に応じて、通知先のメールアドレスを設定する
自分自身がパスワードを何度か間違えてロックされてしまうこともあるため、あまりに厳しすぎる回数(例:1〜2回)には設定しないことをおすすめします。一般的には、5回前後を上限とする設定がよく使われています。
方法2:サーバー側の機能を使って制限する
多くのレンタルサーバーには、WordPressのプラグインとは別に、サーバー側で不正アクセスを制限する機能が用意されています。
- WAF(Web Application Firewall):不正なアクセスパターンを検知してブロックする機能
- 特定ページへのアクセス制限:管理画面(
/wp-admin//wp-login.php)へのアクセスを、特定のIPアドレスからのみに制限する機能
これらはサーバーの管理画面(コントロールパネル)から設定できることが多く、契約しているサーバー会社によって名称や設定方法が異なります。詳しい設定方法は、契約中のサーバー会社のマニュアルやサポート窓口で確認するとよいでしょう。
あわせて行いたい基本的なセキュリティ対策
ログイン試行回数の制限は有効な対策ですが、これだけで安心せず、以下の基本的な対策もあわせて行うことをおすすめします。
- 推測されにくい強固なパスワードを設定する:名前や誕生日、単純な文字列の組み合わせは避けましょう。
- ユーザー名を「admin」のような推測されやすいものにしない:サイト作成時に初期設定のまま使っている場合は、変更を検討しましょう。
- 二段階認証を導入する:パスワードに加えて、スマートフォンアプリ等を使った追加の認証を組み合わせることで、より強固になります。
- WordPress本体・テーマ・プラグインを常に最新の状態に保つ:古いバージョンのまま放置すると、既知の脆弱性を突かれるリスクが高まります。
導入前に知っておきたい注意点
- プラグイン導入前にはバックアップを取得しておく:設定変更によって管理画面にログインできなくなるといった不測の事態に備えましょう。
- 自分自身がロックされた場合の解除方法を確認しておく:プラグインによっては、サーバー側のファイル(データベースやプラグインの設定ファイルなど)を直接操作してロックを解除する必要がある場合があります。導入前に解除方法を確認しておくと、万が一の際に慌てずに済みます。
- 複数のセキュリティ系プラグインを同時に入れすぎない:同じような機能を持つプラグインを複数導入すると、動作が競合し、正常にログインできなくなるなどの不具合が起きる場合があります。
まとめ
ログイン試行回数の制限は、比較的手軽に導入できるにもかかわらず、不正ログインのリスクを大きく減らせる効果的な対策です。
- プラグイン、またはサーバー側の機能を使って試行回数を制限する
- 制限の回数・時間は、自分自身が誤ってロックされない範囲で設定する
- 強固なパスワードや二段階認証など、他の基本対策とあわせて行う
セキュリティ対策は「何か起きてから」では手遅れになることも多いため、まだ対策をしていない場合は、早めに取り組んでおくことをおすすめします。
「サイト全体のセキュリティ対策をまとめて見直したい」「導入から設定まで任せたい」という場合は、お気軽にお問い合わせください。