WordPressの無料プラグイン「XO Security」の設定方法を自分なりに書き残しておきます。
「XO Security」とは
公式ページ:XO Security
https://ja.wordpress.org/plugins/xo-security
「XO Security」とは、WordPressのログインページやコメントなどに関するセキュリティを強化する設定が出来るプラグインです。
「ログイン」タブの設定
ログインページに関する設定を変更できます。特にログインページの変更は絶対にやっておきましょう。
試行回数制限
ログイン試行の回数を制限することで総当たり攻撃(Botによって自動でたくさんログインを試行してこじ開けて侵入する攻撃、数打ちゃ当たる)を防ぎます。ただし、たくさんの人が同一IPから使う場合は制限を緩くしたほうがいいかもしれません。また、外部アプリからの投稿などを使う場合はログインに失敗しやすいらしいので緩めに設定したほうがいいそうです。
推奨設定は「『48時間の間に』『5』回までリトライを許可する」くらいです。
ブロック時の応答遅延
ログインを試みている侵入者をブロックした時にそれを相手に通知するまでに掛かる時間を伸ばします。長ければ長いほど侵入者の足を引っ張れます。
推奨設定は「120秒」です。
失敗時の応答遅延
ログイン失敗時にそれを通知するまでに掛かる時間を伸ばします。ブロック時の応答遅延と同じく、長ければ長いほど侵入者の足を引っ張れます。
推奨設定は「10秒」です。
ログインページの変更
そもそもログインページをデフォルトのページ名から変えて自分だけが知ってるページ名にしてしまえば非常に侵入されにくくなります。まず入口がわからなければ鍵開けの技術も無駄ですよね。
推奨設定は「オン」にしてパスワードジェネレーター(記号はほとんど使えないので注意)で作った文字列を設定することです。作ったログインページはブックマークなどして忘れないようにしておきましょう。
ログインIDの種類
WordPressデフォルトではユーザー名かメールアドレスのどちらでもログイン出来ますが、これを片方だけにすることでちょっとハッキングの難易度を上げます。
推奨設定は「メールアドレスのみ」です。公開しているメールアドレスをWordPressのログインに使っている場合は「ユーザー名のみ」にしたほうがいいかもしれません。そもそもWordPressなどのログインに公開しているメールアドレスを使わないのが良いです。
ログイン言語制限
wp-config.phpでの変更が必要ですし、攻撃したい人、侵入したい人は同国人にもたくさんいるわけですから、設定しなくてもいいかもしれません。設定する場合はwp-config.phpファイルに下記行を追加します。
ログインエラーメッセージ
デフォルト設定ではログインエラー時に登録されているユーザー名などが表示されてしまいます。簡略化することでユーザー名の流出を防げます。
推奨設定は「簡略化」です。
2要素認証
パスワードだけでなく別の認証手段も使えるようにします。2要素認証を有効にする権限グループを選択し、個々のユーザープロフィール設定画面で設定します。XO Securityの設定画面では2要素認証を使えるようにするだけで、それぞれのユーザーが2要素認証を使うかどうかはまた別に決められます。
次にユーザープロフィール画面で秘密鍵を入手し、Google AuthenticatorなどのアプリにQRコードを読み込ませるか手動で入力します。アプリに表示された6桁の数字をユーザープロフィール画面の認証コードに入力するとそのユーザーアカウントの2要素認証が有効になります。
ログインフォームのCAPTCHA
何かのサービスにログインする時にランダムな文字列の画像を見せられてその文字列を入力しろと促される事がありますよね。あれをログインフォームに設置します。
推奨設定は「ひらがな」です。他の国の侵入者は読めなくて脱落してくれるかもしれません。ただし2要素認証を使う場合は無いほうが良いと思います。CAPTCHAも2要素認証もあるとさすがに手間だし、2要素認証だけで良いと思います。
パスワードリセットリンク
ログインページのパスワードリセットへのリンクの表示を無効にしてくれます。
推奨設定は「無効」ですが、パスワードを覚えておけるか不安な人は有効のままでもいいでしょう。
サイトへ移動リンク
ログインページからサイトそのものに移動するリンクの表示を無効にしてくれます。
設定は有効無効のどちらでも良いと思います。
ログインアラート
誰かがログインするたびに管理者ユーザーに設定されているメールアドレスに通知メールを送ってくれる機能です。オンにしてると、不正なログインがあった時に気づきやすくなりますが、自分自身がログインしても当然通知してくるので煩わしく感じるかもしれません。
ログインログはXO Securityを有効化していればWordPress左のメニューの「ユーザー」→「ログインログ」からでも確認出来ます。
「コメント」タブの設定
コメントに関する設定を変更できます。CAPCHAは入れておきましょう。
CAPCHA
ログインフォームのCAPCHAと同じくランダムな文字列の画像を見せて文字列を入力させる事でBotからのスパムコメントを防ぐことが出来ます。
推奨設定は「ひらがな」です。
スパム保護フィルター
スパムかもしれないコメントをフィルタリングします。日本語で書かれたブログに海外の方からのスパムでないコメントが付く事はそうそうありませんので、日本語文字を含まないコメントはほぼスパムと見て良いかと思います。
推奨設定は「日本語文字を含まない」をオン、「コメントフィールドの下に表示するメッセージ」はご自由に書いたり空白にし、「スパムとして保存されているコメントのメールアドレス」もオンにしておきましょう。
スパムコメント
スパムだと判定したコメントの取り扱いを決めます。
「ブロックする」はそのコメントを投稿出来ないようにします。「スパムとして保存する」はスパムフォルダーに、「ゴミ箱へいれる」はゴミ箱フォルダーに一旦格納されます。
誤判定してしまうことも考えられるので、コメントが多く寄せられるような大きなサイトであればとりあえず「スパムとして保存する」のほうが「なんで俺様の投稿が出来ないんだ!」ということが防げて良いかもしれません。
ボット保護チェックボックス
フォーム表示後3秒以内にコメント投稿者が反応しなければBotと見なしてコメント投稿出来なくしてしまう設定です。CAPTCHAを有効にしていれば充分だと思うので設定は要らないと思いますが、もしCAPTCHAをすり抜けてくるスパムBotに見舞われたらこれをオンにしてみると良いかもしれません。
「XML-RPC」タブの設定
XMR-RPCはメールで記事をアップロードするとか、外部アプリを使って記事をアップロードするなど、WordPressのダッシュボードからでない記事投稿を可能にする機能です。これを悪用して不適切な記事を投稿される可能性があります。こうした機能を使わない場合は無効化をオンにしておきましょう。ただし稀にXML-RPCを使用するプラグインもあるので、その場合は有効化のままにしましょう。
「REST API」タブの設定
REST APIもXML-RPCと同じく外部から記事をアップロード出来る機能です。無効化したいところですが、REST APIを使用している便利プラグインが多いため、無効化しないほうが無難です。
「秘匿」タブの設定
登録しているユーザー名やWordPressバージョン情報などを表示するか隠す設定を変更出来ます。
投稿者スラッグの編集
プロフィール画面で投稿者スラッグを決められるようになります。WordPressデフォルトでは投稿者アーカイブのページを開くとURLに投稿者のユーザー名(ログインID)が含まれてしまいます。この設定によりWordPressに設定した時のユーザー名とは違う名前が投稿者名として投稿者アーカイブのURLに使われるようになります。
推奨設定は「オン」ですが、オンにした場合、プロフィール画面で投稿者スラッグの名前を設定するのを忘れないでください。
投稿者ベースの編集
パーマリンクの設定で、投稿者アーカイブのURLの「https://ドメイン/author/投稿者名/」のauthorの文字列を好きな文字列に変更出来ます。
投稿者アーカイブの無効化
そもそも投稿者アーカイブを使えなくする機能です。WordPressの登録ユーザーが自分一人のみの予定ならオンにしておいていいと思います。複数投稿者がいる場合は投稿者ごとにアーカイブを見られたほうが良いと思うのでオフにしておきましょう。その場合、投稿者スラッグの設定を忘れずに行いましょう。
コメント投稿者クラスの削除
コメントに投稿した時、HTMLソースコードに投稿者のユーザー名(ログインID)が記載されてしまう事を防ぐ機能です。
推奨設定は「オン」です。
oEmbedユーザー名の削除
oEmbedはSNSなどでURLを入力しただけでそのサイトのタイトルやアイキャッチ画像、抜粋が表示されるシステムです。デフォルトのままだとここにもユーザー名(ログインID)が表示されてしまうことがあるようです。
推奨設定は「オン」です。
RSS/Atomフィードの無効化
RSSフィードはブログの更新をRSSリーダーを使用して登録した読者に通知する仕組みです。これを悪用して会員用の記事を盗み見られたり、更新するたびに記事をコピーして自分の収益にされるなどの可能性があります。でもRSSフィードが有効なほうが読者にとって便利ですし、自分も記事を自動でお知らせ出来て便利です。
推奨設定は「オフ」です。何か関連する問題が起きたらオンにしましょう。
WordPressバージョン情報の削除
侵入者にとって、侵入先のシステムのバージョンがわかれば攻略のヒントになります。削除しておきたいところですが、他のプラグインなどがこれを参照する事もありそうなので残しておいたほうが良いかもしれません。
推奨設定は「オフ」です。
WordPressコアファイル readme.htmlの削除
readme.htmlにはWordPressの概要やインストールの仕方、推奨動作環境などが書かれています。ここからシステムのバージョンを推測される可能性もあります。ですが、WordPressや他のプラグインがこの情報を参照する事があって、削除するとプラグインを導入出来なくなったりします。筆者は今さっきそうなってました。
推奨設定は「オフ」です。
「メンテナンス」タブの設定
WordPressを管理者以外の登録ユーザーに対しメンテナンスモードを表示します。メンテナンスが終わったらオフにするのを忘れないようにしましょう。
メンテナンス画面はXO Securityのプラグインファルダにあるmaintenance-page.phpを書き換える事でオリジナルの表示にすることが出来ます。
「環境」タブの設定
その他の設定です。
IPアドレス取得方法
ログインログに記載されるIPアドレスの取得方法を変更出来ます。
推奨設定は「自動」のままです。
ダッシュボードのログイン情報ウィジェット
WordPressのダッシュボードにログイン情報を記載するかどうかを選べます。あったほうがログインログの確認を忘れなくて良いのではないでしょうか。
推奨設定は「有効」です。
ログインログの自動削除
ログインログを自動で削除するまでの期間を決められます。お好みで設定してください。
ログインログのデフォルトで表示する結果
ログインログページのデフォルトで全ての結果を表示するか、失敗のみ、成功のみのどちらかを表示するようにするか選べます。
推奨設定は「すべての結果」です。ここまで色々設定したらどうせ自分自身がやったログインログしか出ないと思いますが、突破された時ちゃんと確認しやすいようにしておきましょう。
CAPTCHAタイプ
ログインページやコメントページに設置したCAPTCHAのタイプを選べます。デフォルトだと見やすいですが、侵入者にとっても対策しやすいでしょう。おまかせにすると対策されづらいと思います。ただし、人間にとっても見づらいフォントが出てきやすいかもしれません。
推奨設定は「おまかせ」です。
その他問題が起きた時は
公式サイトをチェックしましょう。それが一番早いです。

後書き
「readme.htmlとか別にサーバー上に無くても問題ないだろ、ヨシ!」と安易に消した結果、プラグインやテーマのインストールができなくなりました。
解決するためにアレコレ検索したりしてたけど、ふとXO Securityの公式ページを見たら、関連の有りそうな事が普通に書いてありました。それでreadme.htmlを戻してあっさり解決。まさかreadmeがこんなに大事だったとは……。
多分WordPressのバージョン6.6.1くらいからだと思うんですけど(建てるために試行錯誤してる間にバージョン6.6.1の更新があったので)、WordPressがreadme.htmlを参照してバージョンを確認してからプラグインのインストールなどをするようになったようです。
初めまして以外の最初の記事投稿をXO Securityの設定の記事にしたのは、「これは他のメモと違って今必要な人がいるかもしれないから先にあげとこう」という感じです。
コメント