WP-Search
キーワードコンソール
SEOキーワードツール
この記事では、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(画像認証) | ○ | ○ |
中 | 2要素認証 | ○ | × |
高 | コメントチェックボックス | ○ | × |
低 | コメント日本語のみ制限 | ○ | × |
中 | ログインエラーメッセージの簡略化 | ○ | ○ |
高 | ログインロック(試行回数制限など) | ○ | ○ |
高 | メールアドレスのログイン拒否 | ○ | × |
中 | ログインアラート(メール通知) | ○ | ○ |
中 | ログインログ(履歴) | ○ | ○ |
低 | フェールワンス(必ず一回ログイン失敗) | × | ○ |
高 | 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 | 投稿者スラッグの秘匿 |
Two-Factor | 2要素認証 |
アンインストールしてしまいましょう。
セキュリティ対策プラグインとして「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(プログラミングコード)の編集が必要 |
中 | ログインエラーメッセージ | ログイン失敗時のエラー表示 → 簡略化してログイン失敗理由を秘匿 |
中 | 2要素認証 | スマホアプリによる2要素認証 → 通常は不要(必要な場合は後述) |
ログインページの変更を設定した場合、必ず変更したログインページのURLをブックマークしておいてください。
ログインページからでないと、管理画面やダッシュボード(/wp-admin/)にアクセスできなくなります。
最後に復旧方法をまとめているので、もしログインできなくなった場合は参考にしてください。
SWELLテーマを使用している場合に、ログインURLを変更すると勝手にログアウトすることがあります。
以下の記事を参考に、Prefetchの除外設定をしてください。
ログイン ID の種類は、メールアドレスのログインを拒否するため、「ユーザー名のみ」にするのがおすすめです。
悪意のある人物・ロボットが、公開されているメールアドレスを収集して、不正ログインに用いる恐れがあります。
ログインエラーメッセージは、存在するユーザー名を秘匿するため簡略化するのがおすすめです。
WordPress(ワードプレス)では、以下のようにユーザーが存在するかどうか、エラーメッセージで判別できてしまいます。
ユーザーが存在しない場合
ユーザーが存在する場合
このエラーメッセージを同じにすることで、ユーザー名やメールアドレスが特定されるのを防止します。
2要素認証は、その他のセキュリティ設定を行なっていれば過剰な対策です。
ログイン操作が煩雑になり、スマホを変えたりしてログインできなくなる場合もあります。
以下のようなケースで利用したい場合は、設定方法を後述します。
CAPTCHA、ログインアラートを変更して[変更を保存]をクリックします。
重要度 | 設定項目 | 説明 |
---|---|---|
高 | CAPTCHA | ログインフォームに画像認証を設置 → 海外ロボットが対応しにくい「ひらがな」を選択 |
低 | パスワードリセットリンク | 「パスワードをお忘れですか?」のリンク表示 → 本当に忘れたときのために「有効」のまま |
低 | サイトへ移動リンク | 「← デモサイト へ移動」のリンク表示 → ドメイン同じなら「有効」のまま |
中 | ログインアラート | 誰かがログインしたときのメール通知 → 自分以外のログインに気づくためにON |
画像認証(CAPTCHA)は、日本語サイトであれば、「英数字」ではなく「ひらがな」に設定することをおすすめします。
日本語対応のロボットは少ないため、日本語にするだけで強力なロボット対策になります。
画像認証(CAPTCHA)を「ひらがな」に設定すると、以下のようなログインページになります。
画像認証(CAPTCHA)は、キャッシュプラグインやCDNなどを利用している場合、ログインできなくなる恐れがあります。
詳しいエンジニアに作業を依頼することをおすすめします。
キャッシュプラグイン(高速化プラグイン)としては、以下のようなものがあります。
タブを切り替える前に[変更を保存]しないと、変更内容が破棄されるため注意してください。
記事にコメント可能な設定にしている場合は、必ず設定を行いましょう。
WordPressのコメント設定は以下をご覧ください。
タブメニューの[コメント]をクリックして、「コメント設定」画面を開きます。
ボット保護チェックボックスをONにして[変更を保存]をクリックします。
重要度 | 設定項目 | 説明 |
---|---|---|
高 | CAPTCHA | コメントフォームに画像認証を設置 → ユーザーはひらがなで画像認証を入力 |
低 | スパム保護フィルター | コメントフォームを日本語のみに制限 → ユーザーは気にならないが、bot増加 |
中 | スパムとして保存されているコメントのメールアドレス | スパム設定したコメントのメールアドレス制限 → コメント手動承認でないならON |
低 | スパムコメント | スパムコメントをどうするか → ブロック/ スパムとして保存 / ゴミ箱 から選択 |
高 | ボット保護チェックボックス | 「私はロボットではありません。」チェックボックスを追加 → ユーザーはチェックボックスをチェック |
スパム保護フィルターでは、日本語タイトルをコピペするBotに突破されます。
ユーザー操作が必要になりますが、「CAPTCHA(画像認証)」か「ボット保護チェックボックス」のどちらかを設定するのをおすすめします。
両方設定してしまうと、ユーザビリティが損なわれるため、片方だけで十分です。
「ボット保護チェックボックス」をONにすると、以下のようにコメント入力の際にチェックボックスに同意が必要になります。
これは、人とロボットプログラムの挙動を判別するためのものです。
「XO Security」を導入していれば、コメントスパム対策プラグイン「Akismet」が不要になります。
タブメニューの[XML-RPC]をクリックして、「XML-RPC設定」画面を開きます。
XML-RPC の無効化とXML-RPC ピンバックの無効化のトグルをONに変更して[変更を保存]をクリックします。
重要度 | 設定項目 | 説明 |
---|---|---|
中 | XML-RPC の無効化 | XML-RPC認証の無効化 → できればON |
高 | XML-RPC ピンバックの無効化 | XML-RPC ピンバックの無効化 → 必ずON |
XML-RPCとは、プログラム開発に利用する通信方式(プロトコル)の一種です。
ブルートフォースアタック(総当たり攻撃)などの攻撃に悪用されることがあります。
ただし、XML-RPCを無効にすると、プラグインが動かなくなってしまうことがあります。
その場合は、XML-RPC の無効化をOFFにしてみてください。
XML-RPCがONのままだと、アクセスログにたくさん攻撃のログインログが残るはずです。
それだけ、XML-RPCを狙った攻撃は多いです。
タブメニューの[REST API]をクリックして、「REST API設定」画面を開きます。
REST API の無効化を設定し、以下をチェックして[変更を保存]をクリックします。
/wp/v2/users
/wp/v2/users/(?P<id>[\d]+)
重要度 | 設定項目 | 説明 |
---|---|---|
中 | REST API の無効化 | REST API機能の無効化 → 必要な箇所のみ無効化 |
REST APIとは、プログラム開発に利用する通信方式(プロトコル)の一種です。
これまでに、サイト改ざんなどの脆弱性を悪用する攻撃が行われています。
ただし、REST APIを無効にすると、プラグインが動かなくなってしまうことがあります。
そのため、ユーザー名の秘匿に関わる以下の項目のみ無効化するのをおすすめします。
タブメニューの[秘匿]をクリックして、「秘匿設定」画面を開きます。
投稿者スラッグの編集、コメント投稿者クラスの削除、oEmbed ユーザー名の削除、バージョン情報の削除、readme.html の削除をONにして[変更を保存]をクリックします。
重要度 | 設定項目 | 説明 |
---|---|---|
中 | 投稿者スラッグの編集 | 投稿者アーカイブ(Authorページ)のURL変更 → ユーザー名を秘匿するためONに変更 |
低 | 投稿者アーカイブの無効化 | 投稿者アーカイブ(Authorページ)の無効化 → Authorページが不要ならON |
中 | コメント投稿者クラスの削除 | コメント投稿者に含まれるIDの削除 → ユーザー名を秘匿するためONに変更 |
中 | oEmbed ユーザー名の削除 | oEmbed JSONデータに含まれるIDの削除 → ユーザー名を秘匿するためONに変更 |
低 | RSS/Atom フィードの無効化 | RSSフィードの無効化 → RSSフィードが不要ならON |
中 | バージョン情報の削除 | WordPressバージョン情報の削除 → 古い脆弱性を狙われないようにONに変更 |
中 | readme.html の削除 | WordPressの標準ファイル → WordPressとバレないようにONに変更 |
WordPressの「表示設定」で、「フィードの各投稿に含める内容」を[要約]に設定している場合は、RSS/Atom フィードの無効化しなくても大丈夫です。
その他のWordPress(ワードプレス)の初期設定については、以下を参考にしてください。
投稿者スラッグの編集をONにした場合、投稿者スラッグをデフォルト設定(ユーザー名)から変更する必要があります。
左メニューの[ユーザー]→[プロフィール]もしくは右上のアイコンから、「プロフィール設定」画面を開きます。
ページ下部の「投稿者スラッグ」をユーザー名以外に変更して[プロフィールを更新]をクリックします。
投稿者スラッグを「空白」にしてしまうと、ユーザー名(ログインID)が設定されるため注意してください。
投稿者アーカイブとは、投稿者ごとに記事一覧を表示するアーカイブページです。著者ページとも呼びます。
私(suya)の投稿者アーカイブは以下です。
> https://wp-search.org/ja/blog/author/suya/
投稿者スラッグとは、投稿者アーカイブページのURLのユーザー名(例:suya)を表す部分です。
WordPressでは、この「ユーザー名=ログインID」になっているため、簡単にログインIDがわかってしまいます。
以下のURLにアクセスしてみてください。
> https://wp-search.org/ja/blog/?author=1
ユーザー名を知らなくても、上記のURLからリダイレクトされるので、簡単にユーザー名がわかります。
そして、不正ログイン攻撃は、ほぼこのユーザー名を特定して行われます。
そのため、投稿者スラッグからログインIDを推測できないような対策を行うわけです。
このサイトでは、投稿者スラッグ=ニックネームに変更していますのでご安心ください。
「XO Security」を導入していれば、プラグイン「Edit Author Slug」が不要になります。
「メンテナンス」画面は、サイトをメンテナンスする際に利用します。
メンテナンスモードにすると、サイトがメンテナンス表示になります。
ログインしたままだと通常表示のままなので、必ずログアウトして確認してください。
メンテナンスモード中でも、変更されたログインURLからログインが可能です。
「環境設定」画面は、デフォルト設定(自動)のままで大丈夫です。
重要度 | 設定項目 | 説明 |
---|---|---|
低 | IP アドレス取得方法 | 接続IPアドレスの取得方法 → CDNなどで利用 |
低 | ダッシュボード ログイン情報ウィジェット | ダッシュボード表示 → ご自由に |
低 | ログインログ 自動削除 | ログインログ(履歴)の保存期間 → ご自由に |
低 | ログインログ デフォルトで表示する結果 | ログインログのデフォルト表示 → ご自由に |
以上で、セキュリティ対策プラグイン「XO Security」の設定は完了です。
タブを切り替える前に[変更を保存]しないと、変更内容が破棄されるため注意してください。
ログインページの変更を設定した場合、必ず変更したログインページのURLをブックマークしておいてください。
ログインページからでないと、管理画面やダッシュボード(/wp-admin/)にアクセスできなくなります。
左メニューの[ユーザー]→[ログインログ]をクリックすると、「ログインログ(ログイン履歴)」を確認することができます。
2要素認証は、その他のセキュリティ設定を行なっていれば過剰な対策です。
ログイン操作が煩雑になり、スマホを変えたりしてログインできなくなる場合もあります。
以下のようなケースでのみ利用するようにしましょう。
2要素認証をONにした場合は、ユーザープロフィールから追加設定を行います。
スマホに「Google Authenticator」や「Authy」などのTOTP(ワンタイムパスワード)アプリをインストールします。
アプリから管理画面のQRコードを読み込み、認証コード(ワンタイムパスワード)を入力します。
次回から、ログイン時に同じようにアプリの認証コード(ワンタイムパスワード)を入力することになります。
Authyのほうが評判はいいです。
よくわからない場合は、以下を参考にしてください。
「XO Security」を導入していれば、2要素認証プラグイン「Two-Factor」が不要になります。
やり方を忘れそうな人は、本ページをブックマークしておきましょう。
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(ワードプレス)の初期設定がまだの場合は、以下を参考にしてください。
コメント