WordPressは外部からの攻撃を受けやすく、個人で運用しているブログであってもセキュリティ対策をやっておかないといけません。
今回ご紹介するXO Securityは、日本語対応の国産プラグインで、主にログイン周りを中心に様々なセキュリティ対策を行うことが出来ます。
今回は私が実際に行っている設定方法をご紹介します。
XO Securityプラグインでできる対策項目は合計20個
XO Security で出来るセキュリティ対策項目は合計20個あります。
かなり数が多いですが、全てを必ず設定しなければいけないわけではありません。
重要なのは「ログイン周りのセキュリティ対策」なので、次でご紹介するログイン周りの項目を設定してみてください。
【重要】ログイン周りのセキュリティ設定
ログイン周りのセキュリティ設定は非常に大切です。
以下で各項目を説明しますので、必要に応じて設定してみてください。
ログイン
試行回数制限
ログインに失敗したときのリトライ数に制限をかけることができます。
基本はログイン時のIPアドレスを見ていおり、同一のIPアドレスで何回もログインに失敗するとブロックするような制限をかけることができます。
例えば「24時間で4回」の指定にすると、「24時間の間に4回までリトライを許可する」ということなります。
一般的には「12時間で4回」という設定を推奨している人が多いです。
(私はリトライ数に制限がかかるのが煩わしいため、現在はあえて「試行回数の制限なし」にしています。ただ、ここを設定するとセキュリティは強化されます)
ブロック時の応答遅延と失敗時の応答遅延
「ブロック時の応答遅延」は、ログインをブロックした際の応答遅延の時間を設定します。
「失敗時の応答遅延」は、ログインに失敗した際の応答遅延の時間を設定します。
応答遅延の時間は長めに設定しておくほうがいいため、「ブロック時の応答遅延」は120秒、「失敗時の応答遅延」は10秒に設定するのが一般的です。
ログインページの変更
「ログインページの変更」では、ログイン専用画面のURLを独自にカスタマイズすることができます。
ワードプレスの初期状態では、下記のログイン画面のURL(パーマリンク部分)が「wp-login.php」または「wp-admin」で統一されています。
↓ワードプレス初期状態のログイン専用画面URL
https://〇〇〇.com/wp-login.php
https://〇〇〇.com/wp-admin/
この状態は、あなたのドメインを知る人なら誰でも自由にあなたのログイン画面にアクセスできてしまう状態であるためセキュリティが脆弱だと言われています。
そのため「wp-login.php」または「wp-admin」の部分を独自にカスタマイズしてURL自体を変更し、セキュリティを強化します。
変更を「ON」にして、ログインファイルに独自の文字列を入力し、ログイン専用画面のURLをカスタマイズします。
ログインIDの種類
「ログインIDの種類」では、ログインIDに制限をかけることができます。
ワードプレスの初期状態では、ログインIDは「メールアドレス」と「ユーザー名」が両方とも有効となっています。
有効なログインIDをどちらか片方だけに制限することで、セキュリティを強化することができます。
※なお、ログイン言語制限については設定不可となっています。
ここは「ユーザー名」のみにしている人が多いですが、お好みで設定してください。
ログインエラーメッセージ
下記のようなログイン失敗時のエラーメッセージを、変更することができます。
例えば、初期状態では
・ログイン時にユーザー名が間違っていれば「ユーザー名が無効です。パスワードをお忘れですか?」にようなエラーメッセージが表示され
・パスワードが間違っていれば「エラー:ユーザー名*のパスワードが間違っています。パスワードをお忘れですか?」のようなメッセージが表示される
という状態になっています。
このような丁寧なエラーメッセージは、かえって第三者に余計な情報を与えてしまうことにもなります。
そのため、ここで表示されるエラーメッセージを「簡略化」しておくことでセキュリティを強化します。
簡略化したエラーメッセージにしたい場合は、「簡略化」を選択しましょう。
ログインフォーム
CAPTCHA
CAPTCHAは、赤枠で囲った「画像認証」の項目です。
AIロボットによる悪質なログインを回避するために、上記のような認証項目をログイン画面に追加することができます。
一般的に推奨されている設定は「ひらがな」です。
パスワードリセットリンク
パスワードリセットリンクは、赤枠で囲った「パスワードをお忘れですか?」の項目です。
このリンクを画面から消すことで、第三者によるパスワードリセットを防ぐことができます。
パスワードリセットリンクを「無効」にすると赤枠のリンクが画面から消えます。
サイトへ移動リンク
サイトへ移動リンクは、赤枠で囲った「〇〇(あなたのサイト名)へ移動」の項目です。
このリンクを画面から消すことで、第三者があなたのサイトへ行くことを防ぐことができます。
サイトへ移動リンクを「無効」にすると赤枠のリンクが画面から消えます。
ログインアラート
ログインしたら通知メールを飛ばすかどうかの設定と、その通知メールの中身を編集することができます。
第三者がログインしたときに、すぐに異変に気づくことができるメリットがあります(ただし、自分がログインしたときも同様に通知が来るため、煩わしさもあります。)
【その他】ログイン周り以外のセキュリティ設定
下記は、もっと他の項目でもセキュリティ度を高めたい場合に設定していく項目ですが、難易度がやや高いものや判断が難しい設定も含まれます。
前述のログイン周りの設定ができれば、ある程度のセキュリティ対策は出来ていますので、不安な場合はムリに設定する必要はありません。
参考までに記述しておきます。
コメント
悪意のある埋め込みなどされたら大変なため、コメント欄を守ります。
下記のようにCAPTCHAで画像認証を要求したり、ボット保護チェックボックスをつけるなど、必要に応じて対策できます。
ただし、コメント欄を開放していないサイトの場合は設定不要です。
XML-RPC
XML-PRCとは、簡単にいうとワードプレスを外部からコントロールするリモート操作の機能のことです。
ワードプレスにはもともと
・リモートで投稿の追加や削除、編集
・リモートでファイルのアップロード
・WordPressにサイトに貼られたURLへのピンバック送信
などが出来る機能がついています。
これは便利な反面リモート機能を悪用されるリスクもあると言われており、このリモート機能に制限をかけることでセキュリティを強化します。
リモート機能を使わない、と決めている方は、ここを「ON」にすることでリモート機能を無効化できます。
REST API
REST APIとは簡単にいうと、JSON形式(JavaScript)などでワードプレスの記事やページなどの情報を取得できる機能のことです。
REST APIを使用しない場合は、REST APIを「無効化」しておくことで、セキュリティが強化されます。
またREST APIのURLを変更しておくという方法で、セキュリティを強化するというやり方もあります。
(さきほどのログイン専用画面のURLを独自にカスタマイズしたのと同じ考え方です)
秘匿
ワードプレスの投稿者やバージョン情報などを外部から隠しておきたい場合に設定していく項目です。
ON・OFFで個別に設定していくことができます。
環境
IPアドレスの取得方法を設定できます。通常は「自動」を選んでおけば問題ありません。
ログインログは「自動削除しない」「365日以前」がありますが、「自動削除しない」を選ぶと、ログファイルが溜まり続けるので要注意です。