WordPressのセキュリティ対策には、大まかにわけて下記のようなものがあります。
- 管理者パスワードの強化
- 管理者ログイン時に画像認証を付ける
- 管理者ログインの試行回数に制限を設ける
- 管理画面にBasic認証を設定
- 管理画面へアクセス可能なIPアドレスを制限
- ログインURLの変更
- 管理画面上からのテーマファイル/プラグインファイルの編集機能を制限
いくつかの方法はプラグインを使わなくても実施ができますが、プラグインが無いと実施出来ない内容も存在します。
本サイトでは、下記の内容についてプラグインを利用せず実装する方法を掲載させて頂きました。
- 管理者パスワードの強化
- 管理画面にBasic認証を設定
- 管理画面上からのテーマファイル/プラグインファイルの編集機能を制限
WordPressで最低限やっておくべきセキュリティの方法3つ!
本日は、
- 管理者ログイン時に画像認証を付ける
- 管理者ログインの試行回数に制限を設ける
- ログインURLの変更
この3つのセキュリティ対策について、プラグインを使って簡単に実装できる方法を紹介します。
セキュリティ対策1:管理者ログイン時に画像認証を付ける
画像認証とは「読みにくい文字が画像で表示されて、その文字を入力する」ことで、アクセス者が人間かロボットかを判断する認証方法です。
CAPTCHAとも呼ばれていますね。
WordPressのログイン画面にも、このCAPTCHAを付けることによって、不正アクセスツールなどからのアクセスを防ぐことが出来ます。
ステップ1. プラグインのインストール
今回導入するのは、Googleが開発したreCAPTCHAという新技術を用いた「Login No Captcha reCAPTCHA」プラグインです。

このCAPTCHAの画期的なところは、あの煩わしい文字の入力が存在せず、チェックボックスにチェックを入れて、指示された画像を選択するだけというシンプルさ。

そして、バックエンドではGoogleのAIがアクセス対象者が人間化ロボットかを判定しているという心強さ。
ちょっと導入に手間はかかりますが、イチオシのプラグインです。
プラグインの新規追加画面から、「Login No Captcha reCAPTCHA」で検索しましょう。

こちらをインストールし、有効化してください。
ステップ2. APIキーの設定
次に、設定画面からAPIキーを設定する必要があります。
画面内のリンクをクリックすることで、GoogleのAPIキー発行画面に遷移しますので、そちらからAPIキーを発行しましょう。

下記のAPI設定画面から、利用するバージョンやドメイン名などを入力しましょう。

設定後、APIのSite KeyとSecret Keyが発行されますので、これをプラグインの設定画面に貼り付けます。

プラグインの設定画面に貼り付けて保存すると、サンプルが表示されます。

サンプルが正しく表示されていれば、設定は完了です。
ステップ3. 動作確認
早速ログアウトしてみて、ログイン画面を確認してみましょう。

画面に「私はロボットではありません」が表示されていれば、設置成功です。
セキュリティ対策2:管理者ログインの試行回数に制限を設ける
不正アクセスを行うユーザーは、まずWordPressのログイン画面 wp-login.php を探し当て、そこから無数にリストしたIDとパスワードの組み合わせを試し、ログインを試みます。
俗に言うブルートフォースアタック、総当たり攻撃というやつです。
この方法はその名の通り「何度も試して、正解の組み合わせを見つける」という方法なので、この「試す回数に制限を付ける」という対策になります。
例えば5回まで、という制限をかけるだけでも非常に効果があります。
相手が人間で実際の管理者ならば、自身のIDとパスワードを5回も連続で間違えるでしょうか?
多分(相当久々のログインだったりする場合、あり得るかもしれませんが)、基本的にはあり得ないでしょう。
不正アクセスツールはそんなことお構いなしに、正解を発見するまで何度も何度もログインを試行しますから、そこを制限するだけでIDとパスワードを無理矢理解析するという方法が使えなくなるのです。
ステップ1. プラグインのインストール
今回導入するのは「Limit Login Attempts Reloaded」というプラグインです。
以前は「Limit Login Attemtps」という名称で公開されていたプラグインなのですが、メンテナンスが停止してしまったため、新チームが引き継いで開発を行っているプラグインとなります。
管理画面から検索してインストールをしますが、似た名称のプラグインがいくつもあるので気をつけて下さい。

インストールして有効化して下さい。
ステップ2. 設定
次に、プラグインの設定を行います。
通常はそのままでも問題ありませんが、必要に応じて下記の設定を変更して下さい。

ステップ3. 動作確認
設定が完了したら、早速ログアウトして、正しくログインのブロック機能が働いているかを確認しましょう。

ログイン失敗の際のエラーメッセージが変わっていることにお気づきでしょうか?
- あと何回失敗できるかの表示が追加されている
- IDもしくはパスワードのどちらが間違えていたかをあやふやにしている
ロックアウトされるまで実際に試してみてもよいのですが、その場合設定された時間はログインが出来なくなってしまうのでご注意下さい。
セキュリティ対策3:ログインURLの変更
最後に紹介するこの方法は、ログインURLそのものを変えてしまうという対策になります。
WordPressを利用している場合、ログインは必ず wp-login.php というファイルを介して行います。
そのため、WordPressの構造を知っていれば、誰でもその際のログインURLが何処にあるのかを推測できてしまいます。
ログイン画面にアクセスさえ出来てしまえば、先ほど紹介した総当たり攻撃だったりを仕掛けてIDとパスワードの組み合わせを見つけたり、何かの方補で見つけたIDとパスワードを使って、ログインを試みたりできます。
そこで、このログインするためのファイル wp-login.php を別の名前に差し替えてしまえ!というのが今回の対策になります。
ステップ1. プラグインのインストール
今回導入するのは「Login Rebuilder」というプラグインです。
このプラグインは日本の方が設計したもので、紹介サイトも日本語で掲載されており、非常に丁寧な解説も掲載されています。
こちらだけでも事足りてしまうかもしれませんが、以下でも簡単に説明をさせていただきます。
まずは管理画面からプラグインをインストールしましょう。

インストールして有効化して下さい。
ステップ2. 設定
プラグインの設定を行います。

稼働中にチェックを入れないと、動作しないので注意して下さい。
その他の設定などがたくさんあるのですが、セキュリティの都合に応じて任意に設定を行って下さい。
オススメは下記設定です。
- ログ保存 → 無効なリクエスト時のみ
- 登録フォームを拒絶する
- メールアドレスとパスワードによる認証を禁止する
ステップ3. 動作確認
先ほどの設定画面で入力した「新しいログインファイル」にアクセスしてみて、ログイン画面が表示されれば成功です。
古いログイン画面は?
ちなみに古いログイン画面にアクセスすると、403エラーになるようになっています。

もし404エラーを表示したかったり、特定のページにリダイレクトをしたいばあいには、プラグインの設定に項目があるので確認してみましょう。
さいごに
今回ご紹介したプラグインは、どれも手軽に導入でき、非常にセキュリティ効果の高いプラグインとなります。
WordPressの知名度が上がれば上がるほど、利便性も向上しますが、それに比例して不正アクセスの方法や被害も増えています。
ウェブサイトに怪しい記述が表示されたり、怪しいウェブサイトに誘導されてしまうようなことが発生すると、信頼性ががた落ちになります。
そのようなことになる前に、簡単に出来るセキュリティ対策は、是非実施しておきましょう。
冒頭でも紹介しておりますが、プラグインを使わない対策についてもご興味があれば、下記も併せてご覧ください。