


この記事では、WordPressプラグイン「XO Security(エックスオー セキュリティ)」の初期設定と使い方を、画像を用いてわかりやすくご紹介します。
WordPress(ワードプレス)で必ず最初にインストールするのが、セキュリティ対策プラグインです。
無料で簡単にセキュリティ対策ができるので、「XO Security」は初心者におすすめです。
ログインページのURL変更は定番ですね。
なるほど!大切なサイトを乗っ取りから守りたいですね。
ログインできないとき、変更したログインURLを忘れた場合の復旧方法についても記載しています。
この記事を最後まで読めば、WordPress(ワードプレス)で不正アクセス対策がすぐ完了します。
ぜひ最後まで進めてみてください。
すでに途中まで進めている人は、目次から該当箇所に飛ぶこともできます。
セキュリティ対策プラグインは、以下のような目的で必要になります。
公開されたサイトは、気づいていないだけで、悪意のあるロボットから毎日攻撃を受けています。
踏み台にされると、海外から警告が届いたりします。
WordPress(ワードプレス)を利用する場合は、必ずインストールするようにしてください。
以下のような対策も合わせて実施してください。
例えば、よくあるパスワードリストを使った辞書攻撃をブロックすることができません。
時間はかかりますが、いずれ突破されます。
なるほど!対策が必要ですね。
例えば、自分以外の誰かがログインしても、気づくことができません。
設定しておけば、ログイン通知メールが届きます。
なるほど!すぐ気づけますね。
例えば、コメントスパムが毎日のように届きます。
ロボット判定機能でスパムを防止できます。
なるほど!余計な通知が減りますね。
例えば、トップページURLに「/wp-login.php」や「/wp-admin/」を追加すると、誰でもログインページにアクセスできます。
ログインURLの変更で対策できます。
なるほど!攻撃されにくくなりますね。
「XO Security」は、初心者向けのセキュリティ対策プラグインです。
「XO Security」と同様のセキュリティ対策プラグインで、.htaccessを使用する「SiteGuard WP Plugin」もあります。
セキュリティ対策プラグイン「XO Security」と「SiteGuard WP Plugin」の違いを比較してみましょう。
重要度 | 項目 | XO Security | SiteGuard |
---|---|---|---|
高 | ログイン障害の少なさ(.htaccess不要) | ○ | × |
低 | 管理ページアクセス制限 | × | ○ |
高 | ログインURLの変更 | ○ | ○ |
高 | ログインCAPTCHA(画像認証) | ○ | ○ |
高 | コメントCAPTCHA(画像認証) | ○ | ○ |
高 | コメントチェックボックス | ○ | × |
低 | コメント日本語のみ制限 | ○ | × |
中 | ログインエラーメッセージの簡略化 | ○ | ○ |
高 | ログインロック(試行回数制限など) | ○ | ○ |
高 | メールアドレスのログイン拒否 | ○ | × |
中 | ログインアラート(メール通知) | ○ | ○ |
中 | ログインログ(履歴) | ○ | ○ |
低 | フェールワンス(必ず一回ログイン失敗) | × | ○ |
高 | XML-RPC の無効化 | ○ | ○ |
中 | REST API の無効化 | ○ | ○ |
高 | 投稿者スラッグの秘匿 | ○ | × |
低 | 投稿者スラッグへリダイレクト禁止(ユーザー名漏えい防御) | × | ○ |
中 | WordPressバージョン情報の秘匿 | ○ | × |
低 | バージョンアップの更新通知(メール通知) | × | ○ |
低 | SiteGuard WAFのチューニング設定 | × | ○ |
高 | 設定内容の保持 | ○ | × |
「XO Security」は.htaccess
ファイルを改変しないため、設定ミスなどでログイン障害になりにくいです。
これだけでも「XO Security」がおすすめですが、他にもかゆいところに手が届くようになっています。
XO Securityは初心者向け、SiteGuardは技術がわかる人向けです。
.htaccessとは、サーバーでディレクトリ単位に格納できるテキストファイルで、アクセス制限などが可能です。
ApacheやApache互換のLiteSpeedなどのWebサーバーで利用できます。
「XO Security」を利用すると、機能が重複する以下のプラグインは不要になります。
プラグイン名 | 説明 |
---|---|
Limit Login Attempts | ログイン試行回数の制限 |
Akismet Spam Protection | コメントスパム対策 |
Edit Author Slug | 投稿者スラッグの秘匿 |
アンインストールしてしまいましょう。
セキュリティ対策プラグインとして「Wordfence Security」も有名ですが、初心者にはおすすめしません。
WordPress(ワードプレス)の管理画面から「XO Security」プラグインをインストールします。
プラグインを有効化したら「ログインページ変更」などの設定を確認・変更していきます。
「ログインページURL」を変更した場合は、必ずブックマークしておきましょう。
作業を開始する前に、サーバーでバックアップを取得しておくことをおすすめします。
WordPress(ワードプレス)にログインしたら、左メニューの[プラグイン]→[新規追加]をクリックして、[プラグインの検索]をします。
[プラグイン]→[新規追加]から「XO Security」を検索して、[今すぐインストール]した後に[有効化]します。
「XO Security」は、デフォルト設定がすべてOFFのため、必ず設定変更するようにしてください。
時間のない方は、画像だけ見ながら設定作業をしてみてください。
左メニューの[設定]→[XO Security]をクリックして、「XO Security 設定」を開きます。
「ステータス」を見ると、まだ何も設定されておらず、ログインログ(履歴)だけ記録が開始されています。
タブメニューの[ログイン]をクリックして、「ログイン設定」画面を開きます。
試行回数制限、応答遅延、ログインページの変更、ログインIDの種類、ログインエラーメッセージを変更します。
重要度 | 設定項目 | 説明 |
---|---|---|
高 | 試行回数制限 | ロボット試行回数でログインロック → 12時間で4回までリトライ可能に設定 |
中 | ブロック時の応答遅延 | ログインロック時に応答遅延 → 最大(120秒)に設定 |
中 | 失敗時の応答遅延 | ログイン失敗時に応答遅延 → 最大(10秒)に設定 |
高 | ログインページの変更 | ログインURL(wp-login.php)の変更 → 変更したら必ずブックマーク |
高 | ログイン ID の種類 | ユーザー名とメールアドレスから選択 → 公開するメールアドレスはログイン拒否 |
低 | ログイン言語制限 | ログインする言語を制限 → PHP(プログラミングコード)の編集が必要 |
中 | ログインエラーメッセージ | ログイン失敗時のエラー表示 → 簡略化してログイン失敗理由を秘匿 |
ログインページの変更を設定した場合、必ず変更したログインページのURLをブックマークしておいてください。
ログインページからでないと、管理画面やダッシュボード(/wp-admin/)にアクセスできなくなります。
最後に復旧方法をまとめているので、もしログインできなくなった場合は参考にしてください。
SWELLテーマを使用している場合に、ログインURLを変更すると勝手にログアウトすることがあります。
以下の記事を参考に、Prefetchの除外設定をしてください。
ログイン ID の種類は、メールアドレスのログインを拒否するため、「ユーザー名のみ」にするのがおすすめです。
悪意のある人物・ロボットが、公開されているメールアドレスを収集して、不正ログインに用いる恐れがあります。
ログインエラーメッセージは、存在するユーザー名を秘匿するため簡略化するのがおすすめです。
WordPress(ワードプレス)では、以下のようにユーザーが存在するかどうか、エラーメッセージで判別できてしまいます。
ユーザーが存在しない場合
ユーザーが存在する場合
このエラーメッセージを同じにすることで、ユーザー名やメールアドレスが特定されるのを防止します。
CAPTCHA、ログインアラートを変更して[変更を保存]をクリックします。
重要度 | 設定項目 | 説明 |
---|---|---|
高 | CAPTCHA | ログインフォームに画像認証を設置 → 海外ロボットが対応しにくい「ひらがな」を選択 |
低 | パスワードリセットリンク | 「パスワードをお忘れですか?」のリンク表示 → 本当に忘れたときのために「有効」のまま |
低 | サイトへ移動リンク | 「← デモサイト へ移動」のリンク表示 → ドメイン同じなら「有効」のまま |
中 | ログインアラート | 誰かがログインしたときのメール通知 → 自分以外のログインに気づくためにON |
画像認証(CAPTCHA)は、日本語サイトであれば、「英数字」ではなく「ひらがな」に設定することをおすすめします。
日本語対応のロボットは少ないため、日本語にするだけで強力なロボット対策になります。
画像認証(CAPTCHA)を「ひらがな」に設定すると、以下のようなログインページになります。
画像認証(CAPTCHA)は、キャッシュプラグインやCDNなどを利用している場合、ログインできなくなる恐れがあります。
キャッシュプラグイン(高速化プラグイン)としては、以下のようなものがあります。
タブを切り替える前に[変更を保存]しないと、変更内容が破棄されるため注意してください。
タブメニューの[コメント]をクリックして、「コメント設定」画面を開きます。
CAPTCHAを「ひらがな」に設定して[変更を保存]をクリックします。
重要度 | 設定項目 | 説明 |
---|---|---|
高 | CAPTCHA | コメントフォームに画像認証を設置 → ユーザーはひらがなで画像認証を入力 |
低 | スパム保護フィルター | コメントフォームを日本語のみに制限 → ユーザーは気にならないが、bot増加 |
中 | スパムとして保存されているコメントのメールアドレス | スパム設定したコメントのメールアドレス制限 → コメント手動承認でないならON |
低 | スパムコメント | スパムコメントをどうするか → ブロック/ スパムとして保存 / ゴミ箱 から選択 |
高 | ボット保護チェックボックス | 「私はロボットではありません。」チェックボックスを追加 → ユーザーはチェックボックスをチェック |
「スパム保護フィルター」では、日本語タイトルをコピペするBotに突破されました。
ユーザー操作が必要になりますが、「CAPTCHA(画像認証)」か「ボット保護チェックボックス」のどちらかを設定するのをおすすめします。
両方設定してしまうと、ユーザビリティが損なわれるため、必ず片方だけ設定するようにしましょう。
「ボット保護チェックボックス」をONにすると、以下のようにコメント入力の際にチェックボックスに同意が必要になります。
これは、人とロボットプログラムの挙動を判別するためのものです。
「XO Security」を導入していれば、スパム対策プラグイン「Akismet」が不要になります。
プラグインを減らせば、それだけ不具合が減り、サイト表示速度も速くなるためSEO対策にもなります。
タブメニューの[XML-RPC]をクリックして、「XML-RPC設定」画面を開きます。
XML-RPC ピンバックの無効化のトグルをONに変更して[変更を保存]をクリックします。
XML-RPCとは、プログラム開発に利用する通信方式(プロトコル)の一種です。
ブルートフォースアタック(総当たり攻撃)などの攻撃に悪用されることがあります。
ただし、XML-RPCを無効にすると、プラグインが動かなくなってしまうことがあります。
そのため、DDoS攻撃(過負荷攻撃)に悪用されるXML-RPC ピンバックだけ無効化します。
XML-RPCがONのままだと、アクセスログにたくさん攻撃のログインログが残るはずです。
それが嫌な場合は[XML-RPCの無効化]をONに変更してください。
ただし、プラグインが動かなくなる不具合の可能性があるため、必ずサイトの動作確認を行います。
タブメニューの[REST API]をクリックして、「REST API設定」画面を開きます。
REST API の無効化を設定して[変更を保存]をクリックします。
REST APIとは、プログラム開発に利用する通信方式(プロトコル)の一種です。
これまでに、サイト改ざんなどの脆弱性を悪用する攻撃が行われています。
ただし、REST APIを無効にすると、プラグインが動かなくなってしまうことがあります。
そのため、ユーザー名の秘匿に関わる以下の項目のみ無効化するのをおすすめします。
/wp/v2/users
/wp/v2/users/(?P<id>[\d]+)
WordPress(ワードプレス)の脆弱性を悪用されないように、定期的にアップデート(更新)して最新のバージョンに保ちましょう。
タブメニューの[秘匿]をクリックして、「秘匿設定」画面を開きます。
投稿者スラッグの編集、コメント投稿者クラスの削除、バージョン情報の削除をONにして[変更を保存]をクリックします。
重要度 | 設定項目 | 説明 |
---|---|---|
中 | 投稿者スラッグの編集 | 投稿者アーカイブ(著者ページ)URLに含まれるIDの変更 → ユーザー名を秘匿するためONに変更 |
低 | 投稿者アーカイブの無効化 | 投稿者アーカイブ(著者ページ)のアクセス制限 → 記事一覧を表示するためOFFのまま |
中 | コメント投稿者クラスの削除 | コメント投稿者に含まれるIDの削除 → ユーザー名を秘匿するためONに変更 |
中 | oEmbed ユーザー名の削除 | oEmbed JSONデータに含まれるIDの削除 → ユーザー名を秘匿するためONに変更 |
低 | RSS/Atom フィードの無効化 | RSSフィードの無効化 → 「要約」配信ならOFFのまま |
中 | バージョン情報の削除 | WordPressバージョン情報の削除 → 古い脆弱性を狙われないようにONに変更 |
WordPressの「表示設定」で、「フィードの各投稿に含める内容」を[要約]に設定している場合は、RSS/Atom フィードの無効化をする必要はありません。
その他のWordPress(ワードプレス)の初期設定については、以下を参考にしてください。
投稿者スラッグの編集をONにした場合、投稿者スラッグをデフォルト設定(ユーザー名)から変更する必要があります。
左メニューの[ユーザー]→[プロフィール]もしくは右上のアイコンから、「プロフィール設定」画面を開きます。
ページ下部の「投稿者スラッグ」をユーザー名以外に変更して[プロフィールを更新]をクリックします。
投稿者スラッグを「空白」にしてしまうと、ユーザー名(ログインID)が設定されるため注意してください。
投稿者アーカイブとは、投稿者ごとに記事一覧を表示するアーカイブページです。著者ページとも呼びます。
私(suya)の投稿者アーカイブは以下です。
> https://manuon.com/author/suya/
投稿者スラッグとは、投稿者アーカイブページのURLのユーザー名(例:suya)を表す部分です。
WordPressでは、この「ユーザー名=ログインID」になっているため、簡単にログインIDがわかってしまいます。
以下のURLにアクセスしてみてください。
> https://manuon.com/?author=1
ユーザー名を知らなくても、上記のURLからリダイレクトされるので、簡単にユーザー名がわかります。
そして、不正ログイン攻撃は、ほぼこのユーザー名を特定して行われます。
そのため、投稿者スラッグからログインIDを推測できないような対策を行うわけです。
このサイトでは、投稿者スラッグ=ニックネームに変更していますのでご安心ください。
「XO Security」を導入していれば、プラグイン「Edit Author Slug」が不要になります。
プラグインを減らせば、それだけ不具合が減り、サイト表示速度も速くなるためSEO対策にもなります。
「環境設定」画面は、デフォルト設定(自動)のままで大丈夫です。
重要度 | 設定項目 | 説明 |
---|---|---|
低 | IP アドレス取得方法 | 接続IPアドレスの取得方法 → デフォルト設定(自動)のまま |
低 | ダッシュボード ログイン情報ウィジェット | ダッシュボード表示 → ご自由に |
低 | ログインログ 自動削除 | ログインログ(履歴)の保存期間 → デフォルト設定(365日以前)のまま |
低 | ログインログ デフォルトで表示する結果 | ログインログのデフォルト表示 → ご自由に |
CDN、ロードバランサー、プロキシサーバーなどを使用している場合は、IPアドレス取得方法を変更することがあります。
CDN(コンテンツ配信ネットワーク)とは、サイトデータを複製・配信して高速化するキャッシュサーバー群です。
以上で、セキュリティ対策プラグイン「XO Security」の設定は完了です。
タブを切り替える前に[変更を保存]しないと、変更内容が破棄されるため注意してください。
ログインページの変更を設定した場合、必ず変更したログインページのURLをブックマークしておいてください。
ログインページからでないと、管理画面やダッシュボード(/wp-admin/)にアクセスできなくなります。
WordPressのバージョンアップで、ログインリンク(メタ情報)はデフォルトで削除されるようになりました。
WordPress(ワードプレス)では、最初サイドバーやフッターにログインページへのリンクが表示されています。
デザインテーマによって、サイドバーかフッターのどちらに表示されているかは異なります。
このままでは、せっかく変更したログインURLが公開されてしまいます。
忘れないうちに、ログインURLを非表示しておきましょう。
左メニューの[外観]→[ウィジェット]から、サイドバーやフッターの[メタ情報]ブロックを[削除]してください。
左メニューの[ユーザー]→[ログインログ]をクリックすると、「ログインログ(ログイン履歴)」を確認することができます。
やり方を忘れそうな人は、本ページをブックマークしておきましょう。
FTPソフトやレンタルサーバーのファイルマネージャーでサーバーディレクトリにアクセスします。
/public_html/サイト/wp-content/plugins/xo-security/
を「xo-security2」などに変更します。
/サイト/public_html/wp-content/plugins/xo-security/
などの場合もあります。
プラグイン「XO Security」が無効化された状態でログインできるはずです。
/public_html/サイト/wp-content/plugins/xo-security2/
を「xo-security」に戻します。
/サイト/public_html/wp-content/plugins/xo-security2/
などの場合もあります。
必ず変更したログインページのURLをブックマークしておきましょう。
画面が変わらない場合は、Cookie(クッキー)やブラウザキャッシュをクリアするか、別のブラウザでアクセスしてみてください。
ログアウトした状態で、間違ったログインページや管理画面にアクセスしようとすると、「404 Not Found」などと表示されます。
ブックマークなどから、変更したログインページURLにアクセスしてください。
変更したログインページURLがわからなくなった場合は、1つ上の「3) URLを忘れたとき / 管理画面にログインできないときの対処法」をご覧ください。
キャッシュプラグインやCDNを利用していると、CAPTCHAの認証画像が表示されない場合があります。
キャッシュ側で除外設定が必要ですが、よくわからない場合は画像認証をOFFにして使用しましょう。
ログインする前ですので、キャッシュクリアすることはできません。
ログインURLを変更したことが原因です。
詳しい対処法は、こちらをご覧ください。
間違ったログインURLにアクセスしようとしていることが原因です。
詳しい対処法は、こちらをご覧ください。
プラグイン「XO Security」の初期設定と管理画面にログインできなくなったときの復旧方法を見てきました。
重要度の高いところは、必ず設定するようにしてください。
設定忘れてました。
セキュリティプラグインとしては、「BBQ Firewall」もおすすめです。
WordPress(ワードプレス)で最初に入れるその他の基本プラグインは、以下を参考にしてください。
さらに二段階認証でセキュリティを強化したい場合は、以下を参考にしてください。
WordPress(ワードプレス)の初期設定がまだの場合は、以下を参考にしてください。
この記事をご紹介いただいた方がいらっしゃいましたら、読者の声として掲載させていただきます。
ぜひご連絡いただければと思います。
Emanonテーマを使用しているWordPressにXO Securityをインストールした。設定はこちらの記事が参考になりました。記載通りの手順でスムーズに設定できる!解説が親切で素晴らしい記事です。
— 小平 義則 (@kohira_innocord) February 25, 2023
XO Securityの設定方法と不具合対処【初心者/SWELL向け】 https://t.co/RMg7QXJHKi @suyasiteより
xo securityの不具合だったっぽい😫こちら参考にさせてもらって復旧しましたhttps://t.co/kOcsFTMX0z
— あいず|スマホ特化型NFTブログ (@eyezroom) April 14, 2022
WordPressでログインできなくなって、数時間の作業が水の泡かと冷や汗かいてたなか救いの記事を発見!解説も読みやすくて本当に助かりました。心から感謝のシェアです。ありがとうございました!
— ひかり🐈Notion大好きブロガー (@hiina_blog) August 9, 2022
XO Securityの設定方法と不具合対処【初心者/SWELL向け】 https://t.co/BHesny1dYX @suyasiteより
コメント