XO Securityは、WordPressでWEBサイトを構築する際に、自分がよく利用させていただいているプラグインです。作成者が日本の方なので、個人的にとても使いやすいプラグインと思っています。

WordPressサイトを運営していて恐ろしいのが、サイトを乗っ取られることですね。XO Securityは主にログイン周りのセキュリティ強化をしてくれるのでとてもありがたいです。実際自分の知り合いの方がサイトが乗っ取られた際、サイトを復旧させた後に、この XO Securityをインストールして適切に設定した後は、不正侵入されることもなく、安心して運営されています。

プラグインのインストールと有効化

下記リンクページは参考にJetpackをインストールし有効化するまでの手順を記載したページです。
他のプラグインでもインストールの手順は同様なので参考にしてください。

XO Securityの設定画面

XO Securityをインストールすると、WordPress管理画面左メニューの「設定」→「XO Security」が追加されています。こちらから設定画面を開くことができます。

XO Security 設定画面へのリンク

XO Security 設定

設定画面を開くと、下記のような画面が開きます。緑の丸にチェックは入っている項目は現在有効になっているセキュリティ項目になります。タブ部分の「ログイン」「コメント」「XML-RPC」などを選択して各種セキュリティ設定をしていきます。

XO Security ダッシュボード

XO Security の各種設定

ログイン

ログインの部分はWordPressのログインに関する各種セキュリティ設定をしていきます。この設定を適切に行うことによってログイン画面のセキュリティが強化されます。

XO Security ログインセキュリティ設定
①試行回数制限
試行回数制限は同一IPからのログイン試行回数を制限します。まず「試行回数制限なし」「1時間の間に」「12時間の間に」「24時間の間に」「48時間の間に」とプルダウンメニューがあるので時間を選択します。その後許可するリトライ数を設定します。「24時間の間に」3回までリトライを許可するとした場合、3回以上ログインを失敗すると。24時間同一IPからログインできなくなります。
②ブロック時応答遅延
ログインをブロックした時、応答までの遅延時間を設定します。ここは最大の「120秒」を設定した方が良いでしょう。
③失敗時の応答遅延
ログインに失敗した時、応答までの遅延時間を設定します。ここは最大の「10秒」を設定した方が良いでしょう。
④ログインページの変更
ログインページの変更はWordPressログイン時のURLを変更できます。個人的にはこの設定はおすすめです。通常WordPressのログイン画面はサイトのアドレスに「/wp-login.php」を付ければ誰でもアクセスできてしまいます。これはセキュリティ上まずいので、ログイン画面のURLを変えてしまうということです。自分はこの設定はほぼ必ず有効化して、ログインURLを変更しています。ログインファイル名は英小文字、数字、ハイフン、アンダーバーを用いて適当な文字列をつくっています。注意点としてはこの文字列がわからなくなると、ログイン画面にたどり着けなくなってしまいます。
⑤ログインIDの種類
ログインする時のIDの種類を選択できます。「ユーザー名またはメールアドレス」「ユーザー名のみ」「メールアドレスのみ」を選択できます。自分はいつも「ユーザー名のみ」に設定しています。メールアドレスは知っている人もいるので…
⑥ログイン言語設定
ログインを許可する言語を設定できますが、こちらはwp-config.phpファイルにコードを記述する必要があります。最近はサーバー側で海外からの管理画面へのアクセス制限をしている場合もありますので必要な場合のみ設定しています。ちなみに日本語のみログインを許可する場合は下記のコードを使用します。
⑦ログインエラーメッセージ
ログイン失敗した時のエラーメッセージを変更します。通常ログイン失敗した時は、パスワードが違いますなど何が失敗理由か表示されますが、この状態だとパスワードが違いますを表示された場合「ID」は合っていると攻撃者に推測されるので「簡素化」に設定しています。
⑧CAPTCHA
ログインCAPTCHAを設定できます。これ設定するとログインする際。ひらばなや英数字の画像(下画像参照)が表示され、表示されたテキストの入力が求められます。 ログインCAPTCHA
⑨パスワードリセットリンク
ログイン画面にある、パスワードを忘れた時のリセットリンクを表示するかしないかの設定ができます。自分はログイン情報をきちっと管理できていればこの機能は不要と考えているので、非表示にしています。
⑩サイトへ移動リンク
ログイン画面にある、サイトTOPページへのリンクを表示するかしないかの設定ができます。個人的な好みとしてはリンクが有る方が便利なのでリンクを表示させたままにしています。
⑪ログインアラート
ログインした時にメールでログインがあったことを知らせてくれます。自分は無効にしていますが、心配な方は有効化してても良いでしょう。ログインされてしまった時点でまずいのですか。

各種設定が完了したら必ず設定画面下にある「変更を保存」をしておきましょう。

コメント

コメント部分のセキュリティを強化できます。CAPTCHAを設定したり、日本語を含まないメッセージを拒否できます。コメント機能を使っている場合は設定しておくとスパムコメントの軽減に役立ちます。

XO Security コメントセキュリティ設定
①CAPTCHA
コメント部分にログイン画面と同じようなCAPTCHAを表示できます。ただ閲覧者がコメントをする時にテキストを入力するという作業が入ってしまうので、スパムコメントが大量に来ない場合は無効にしています。
②スパム保護フィルター
日本語を含まないコメントの場合は、コメントを拒否します。海外のコメントを求めていない場合は有効化しています。
③ボット保護チェックボックス
「私はロボットではありません」と記載されたチェックボックス(下画像参照)が表示されます。不審な動きをした場合ボットと見なします。 私はロボットではありません

各種設定が完了したら必ず設定画面下にある「変更を保存」をしておきましょう。

XML-RPC

XML-RPC設定
①XML-RPCの無効化
XML-RPCの無効化します。WordPressサイトのxmlrpc.phpはセキュリティの脆弱性がありブルートフォースアタック(総当り攻撃)に利用されてしまいます。外部システムと通信が無いサイトの場合、無効にしておくのが良いでしょう。
②XML-RPCピンバックの無効化
XML-RPCピンバックの無効化します。これによりDDoS攻撃対策ができます。ピンバックは自分のサイトURLが貼り付けられた場合通知してくれる機能ですが、これを悪用して大量のピンバックを送りつけられ、最悪サイトをダウンさせられてしまうのでXML-RPCピンバックは無効化しておきましょう。(DDoS攻撃体験済)

各種設定が完了したら必ず設定画面下にある「変更を保存」をしておきましょう。

REST API

REST APIは「ContactForm7」や「JetPack」などよく使用されるプラグインでも使用されているので、闇雲に無効化するとプラグインが動作しなくなる可能性があります。なのでユーザー名のみ隠すため以下の2つを無効化しています。

  • /wp/v2/users
  • /wp/v2/users/(?P<id>[\d]+)
REST APIセキュリティ設定
①REST APIの無効化
REST APIの無効化します。上記ユーザー名が表示される部分のみ無効化しています。
②REST API URLの変更
REST API URLの変更ができます。

各種設定が完了したら必ず設定画面下にある「変更を保存」をしておきましょう。

秘匿

秘匿 設定画面
①投稿者スラッグの編集
投稿者スラッグの編集ができます。デフォルトだとユーザー名がスラッグになっているので変更します。
ユーザー名ニックネーム化
②投稿者アーカイブの無効化
投稿者アーカイブの無効化ができます。自分の場合他のプラグインで投稿者アーカイブを無効化していたので使用していません。必要があれば投稿者アーカイブを無効化してもよろしいかと思います。
③コメント投稿者クラスの削除
コメント投稿のユーザー名を削除できます。
④RSS/Atom フィードの無効化
自分の場合RSS/Atom フィードを利用しているのでこの機能は使用していません。
⑤バージョン情報の削除
ソースコードに記載されるWordPressのバージョン情報を削除できます。

環境

環境タブではIPアドレスの習得方法やログの保存期間が設定できます。IPアドレスの習得方法は基本的に「自動」で大丈夫です。ログインログの保存期間は「自動削除しない」「30日以前」「365日以前」で設定可能です。自分の好みは「30日以前」ですが、運用状況に合わせて設定しましょう。

環境設定

ログインログの確認方法

ログインログはWordPress管理画面の左メニュー「ユーザー」→「ログインログ」から確認可能です。

ログインログ確認

まとめ

個人的に「XO Security」はログイン周やコメントなどのセキュリティが手軽にできるのでとても重宝しています。日本語で設定できるので設定が簡単にできるのも嬉しいポイントですね。