お役立ちコラム
WordPress

セキュリティ対策プラグイン「XO Security」の使い方・設定方法

※本記事には広告が含まれます

WordPressは多くの利用者に支持されているブログ構築システムですが、しばしばハッキングの対象にされることがあります。

そのため、WordPressインストール後はセキュリティ対策プラグインを入れておくことが大切です。

今回は、国産で日本人にとっても使いやすいセキュリティ対策プラグイン「XO Security」の使い方・設定方法について解説します。

XO Securityを使ってログイン周りのセキュリティ対策を強化し、安全にサイト運営を行いましょう。

セキュリティ対策プラグイン「XO Security」

XO Securityは、ログイン関連のセキュリティを強化するのに適したプラグインです。

日本人開発者によって開発された国産プラグインのため、設定項目が日本語で扱いやすいのが特徴です。

また、ログインだけでなく、コメントフォームに対するスパム対策も提供しています。

「Wordfence」や「SiteGuard」といったセキュリティ対策プラグインと比べると、機能は必要最低限といった印象ではありますが、バグ修正や最新のWordPressバージョンへの対応は継続して行われているため、シンプルで扱いやすく信頼できるプラグインを探している方にはおすすめです。

XO Securityのインストール方法

XO SecurityはWordPressの公式ディレクトリに登録されているため、管理画面からインストールできます。

「プラグイン>新規プラグインを追加」から「XO Security」と検索し、出てきたこちらのプラグインをインストールします。

「有効化」をクリックします。

以上でXO Securityがインストール・有効化されました。

インストールが完了すると、「設定」の中に「XO Security」が追加されます。

XO Securityの使い方・設定方法

XO Securityの設定は「設定>XO Security」から行っていきます。

ログイン

「ログイン」タブでは、ログイン周りの様々な設定ができます。

試行回数制限

同一IPアドレスからのログイン試行回数を制限できます。

デフォルトでは「試行回数の制限なし」が選択されていますが、総当たり攻撃や自分でログインに失敗したときのことを考慮して「12時間の間に3回まで」リトライを許可する設定がおすすめです。

ブロック時の応答遅延

ログインをブロックした時に応答を遅延させる設定ができます。

設定できる最大時間である「120秒」に設定しておくのがおすすめです。

失敗時の応答遅延

ログインに失敗した時に応答を遅延させる設定ができます。

設定できる最大時間である「10秒」に設定しておくのがおすすめです。

ログインページの変更

WordPressログイン画面のURLを設定できます。

デフォルトのWordPressでは、サイトURL末尾に「/wp-login.php」と記述すれば、誰でもログイン画面まで辿り着けるような仕様になっています。

例:https://e-valueworks.com/wp-login.php

そのため、ログインファイル名を「login_1234.php」のように変更して、デフォルトの状態から変更しておくのがおすすめです。

変更前:https://e-valueworks.com/wp-login.php
変更後:https://e-valueworks.com/login_1234.php

しかし、変更したログインファイル名を忘れてしまうと、ログイン画面に入れなくなってしまうので、どこかにメモを残しておくようにしましょう。

ログインファイル名を忘れてログインできなくなった際の対処法は後述する「WordPressダッシュボードに入れなくなった際の対処法」で解説します。

ログインIDの種類

ログイン時にIDとして使用できるものを設定できます。

プルダウンメニューを開くと以下の3つが選択肢として表示されますが、メールアドレスは第三者に知られる可能性が比較的高いため、「ユーザー名のみ」を選択しておくのがおすすめです。

  • 「ユーザー名またはメールアドレス(デフォルト)」
  • 「ユーザー名のみ」
  • 「メールアドレスのみ」

ログイン言語制限

ログイン言語制限では、ログインを許可するブラウザの言語設定を指定できます。

ログイン言語制限はWordPressの管理画面からは設定できず、「wp-config.php」に別途コードを追記する必要があります。

// 日本語の場合のみ許可する例:
define('XO_SECURITY_LANGUAGE_WHITE_LIST', 'ja');

ログインエラーメッセージ

ログインに失敗した際に表示されるエラーメッセージの文言を設定できます。

「デフォルト」を選択している場合、仮にユーザー名は当たっている場合、「ユーザー名○○○のパスワードが間違っています。」といった文言が表示され、ユーザー名は当たっていることを暗に教えてしまうことになります。

そのため、「簡略化」を選択しておくのがおすすめです。

2要素認証

スマホアプリを使った2要素認証を設定できます。

こちらでは、2要素認証を有効にしたい権限グループのみ選択して、実際の設定は、プロフィール設定画面で行います。

2要素認証の設定にはワンタイムパスワードアプリ(例:Google AuthenticatorやMicrosoft Authenticatorなど)のインストールが必要です。

2要素認証の設定方法(Google Authenticatorを使用)

「ユーザー>ユーザー一覧」を開きます。

2要素認証を設定したいユーザーの編集画面を開きます。

Google AuthenticatorでQRコードをスキャンします。

スキャンができたら、Google Authenticatorにサイトが追加されるので、認証コードを入力して「プロフィールを更新」をクリックします。

以上で、2要素認証の設定が完了です。

実際にログインしようとすると、2要素認証が設定されていることが確認できます。

(ログイン)CAPTCHA

ユーザーがボットではないかどうかを判断するためのテストを追加できます。

選択肢は「無効」「英数字」「ひらがな」の3つから選べます。

 海外からの不正アクセスに対応できるよう「ひらがな」を選択するのがおすすめです。

パスワードリセットリンク

WordPressログイン画面下に表示される「パスワードをお忘れですか?」のリンクを表示するかしないかの設定ができます。

パスワードをしっかり管理できている方にとってはどちらでも問題ありませんが、万が一忘れてしまった場合に備えて「有効」にしておくと良いでしょう。

サイトへ移動リンク

「〇〇〇〇 へ移動」と書かれたサイトトップへのリンクを表示するかしないかの設定ができます。

どちらでも問題ありませんが、表示させておきたい方は「有効」にしておきましょう。

ログインアラート

誰かがサイトにログインした際にメール通知を行うかどうかの設定ができます。

また、「管理者のみ」にチェックを入れると、管理者権限を持つユーザーがログインしたときのみ、アラートメールが送信されるようになります。

セキュリティ的には「オン」にしておいた方が、不正ログインに気がつけるためおすすめです。

しかし、「オン」にすると自分がサイトにログインしたときもメールが送られてくるので、お好みに合わせて設定しましょう。

ログインログは「ユーザー>ログインログ」からも確認できます

ログインログには、日時やIPアドレス、ユーザーエージェントやユーザー名などの情報が表示されます。

コメント

「コメント」タブでは、スパムコメント対策ができます。

(コメント)CAPTCHA

コメントスパム対策として、コメント欄にCAPTCHAテストを設置できます。

(ログイン)CAPTCHA同様、「無効」「英数字」「ひらがな」の3つから選択でき、「ひらがな」がおすすめです。

スパム保護フィルター

「日本語を含まないコメント」や「スパムとして保存されているメールアドレスから書き込まれたコメント」をスパムとするかの設定ができます。

基本的に日本語のブログに、外国語だけで書かれたコメントがつくことは少ないため「オン」にしておくのがおすすめです。

スパムコメント

スパムと判定したコメントの取り扱いをどうするかの設定ができます。

「ブロックする」「スパムとして保存する」「ゴミ箱へ入れる」の3つの選択肢から選べます。

ボット保護チェックボックス

「私はロボットではありません」というチェックボックスを表示させるかどうか設定できます。

フォームを表示してから3秒以内に応答があった場合や、チェックボックスがチェックされていない場合は、ボットによるアクセスと見なされ、コメントが拒否されます。

スパム対策をより強固にしたい場合は「オン」がおすすめですが、CAPTCHAの設定もしている場合は、ユーザーの利便性も考えると「オフ」でも問題ありません。

XML-RPC

XML-RPCは、WordPressを管理画面にログインせずともリモートで操作できるようにする仕組み、機能のことです。

WordPressのモバイルアプリなどは、この仕組みを使ってスマホからの記事投稿を可能にしています。

XML-RPCは便利な一方、セキュリティ脆弱性をもたらし、DDoS攻撃やブルートフォースアタックなどのようなサイバー攻撃に利用されてしまうことがあります。

そのため、WordPressアプリを使っていない方・外部システムと通信が無いサイトの場合は、無効化しておくのがおすすめです。

「ピンバックの無効化」も「オン」にしておきましょう。

REST API

APIとは、アプリケーションのさまざまな機能を外部から利用できるように設計されたインターフェースのことです。

WordPressのREST APIもその一種で、投稿データの取得やユーザー情報の管理などを、外部から行うための仕組みを提供しています。

過去には、WordPressのREST API を悪用して投稿内容を任意の内容に書き換えられる被害が報告されていましたが、現在ではそういった被害報告は見つかりません。

また、REST API を利用するプラグインは多数存在するため、すべて無効化してしまうと、一部のプラグインや機能に不具合が生じる可能性があるため、以下2つのみ無効化しておくのがおすすめです。

  • /wp/v2/users
  • /wp/v2/users/(?P<id>[\d]+)

秘匿

「秘匿」タブでは、ユーザー名やWordPressバージョンなどを隠す設定ができます。

投稿者スラッグの編集

投稿者アーカイブ(投稿者ごとの記事一覧ページ)のURLにデフォルトで表示されるユーザー名の文字列を編集できる機能です。

デフォルトでは「https://ドメイン/?author=1」にアクセスすると、投稿者アーカイブページにリダイレクトされます。

投稿者アーカイブページのURLには、「https://ドメイン/author/ユーザー名/」という形でユーザー名が表示されてしまうため、対策をしていないと誰にでもログインに使用するユーザー名がばれてしまいます。

そのため、チェックを入れて、スラッグを変更しておくのがおすすめです。

チェックを入れると、ユーザープロフィール画面からスラッグが編集できるようになります。

■投稿者スラッグを変更した場合

変更前:https://ドメイン/author/ユーザー名/
変更後:https://ドメイン/author/変更後の文字列/

なお、後ほど紹介する「投稿者アーカイブを無効化」設定で、アーカイブページ自体を無効化している場合はオフでも問題ありません。

投稿者ベースの編集

パーマリンクの設定画面に投稿者ベースの入力欄を表示できる機能です。

ここで投稿者ベースに任意の文字列を入れることで、「author」の部分の文字列を変更できます。

■投稿者スラッグを変更した場合

変更前:https://ドメイン/author/ユーザー名/
変更後:https://ドメイン/変更後の文字列/ユーザー名/

こちらも後述する「投稿者アーカイブを無効化」設定でアーカイブページ自体を無効化している場合はオフで問題ありません。

投稿者アーカイブの無効化

投稿者アーカイブの無効化では、投稿者アーカイブページを表示するかどうかの設定ができます。

WordPressではデフォルトで、ドメインの末尾に「/?author=1」と記載すれば、投稿者アーカイブにリダイレクトされるようになっています。

投稿者アーカイブが表示されてしまうと、URLからユーザー名が漏洩してしまう恐れがあるため、「オン」にして無効化しておくのがおすすめです。

コメント投稿者クラスの削除

コメント投稿にデフォルトで付与されるユーザー名が入ったクラス名を削除できます。

コメント機能を使用して、コメントをくれた人に対して返信を書く方は、「オン」にして削除しておくのがおすすめです。

oEmbedユーザー名の削除

oEmbed とは、URL を入力するだけで記事のタイトルやアイキャッチ画像、抜粋等をプレビュー表示できる機能です。

こちらもユーザー名が表示されてしまうおそれがあるため、「オン」にしておくのがおすすめです。

RSS/Atomフィードの無効化

RSSフィードは、Webサイトに新しい情報が更新されたときに、その通知を受け取れるようにする仕組みを言います。

RSSフィードが不要であればオンがおすすめですが、利用している場合はオフでも構いません。

しかし、RSSフィードは悪用されるとコピーサイトに使われてしまうので、対策としてフィードの各投稿には「抜粋」のみ含めるのがおすすめです。

フィードの各投稿に含める内容は、「設定>表示設定」から設定できます。

バージョン情報の削除

WordPressのバージョン情報をソースコード上から削除するかの設定ができます。

WordPressのバージョン情報を公にしていると、そのバージョンに特有の脆弱性が既に発見されている場合、悪意のある攻撃者によってサイトが狙われる可能性があります。

そのため、チェックを入れておくのがおすすめです。

readme.htmlの削除

readme.htmlはWordPressコアにデフォルトで含まれるファイルです。

古いバージョンのWordPressサイトを使用している場合、readme.html内にWordPressのバージョン情報が表示されてしまうので、チェックを入れておくのがおすすめです。

メンテナンス

メンテナンスタブでは、メンテナンスモードを利用するかの設定ができます。

メンテナンスタブをONにすると、管理者以外のユーザーに対して、ログインページ以外の全てのページをメンテナンス画面に切り替えることができます。

必要に応じてオンにしましょう。

メンテナンス画面は、XO Securityのプラグインフォルダ内にの「maintenance-page.php」ファイルをテーマディレクトリにコピーし、編集することで変更できます。

環境

「環境」タブで設定できる項目は以下の通りです。

IPアドレス取得方法

ログインログに表示されるIPアドレスの取得方法を設定できます。

基本的に「自動」でOKです。

ログイン情報ウィジェット

WordPressダッシュボード上にログイン情報ウィジェットを表示するかどうかの設定ができます。

(ログインログ)自動削除

ログインログを何日前まで保存しておくかを設定できます。

「自動削除しない」「30日以前」「365日以前」から選択できますが、好きな期間で問題ありません。

(ログインログ)デフォルトで表示する結果

ログインログにデフォルトで表示する結果は、「すべての結果」「失敗」「成功」の3つから選択できます。

ログインに失敗したユーザーのみログに残したい場合は「失敗」、成功したユーザーのみログに残したい場合は「成功」を選択します。

CAPTCHAタイプ

CAPTCHAタイプでは、CAPTCHAのフォントスタイルを設定できます。

WordPressダッシュボードに入れなくなった際の対処法

「新しい管理画面のURLを忘れてしまった」「ログインに失敗して管理画面に入れなくなった」という場合は、XO Securityを一時的にオフにしてあげる必要があります。

XO Securityを一時的にオフにするには、サーバーにアクセスし、プラグインフォルダ「xo-security」の名前を一時的に変更してあげる必要があります

例として「_xo-security」に変更しておきます。

ConoHa WINGのファイルマネージャー機能を使って、サーバー上の公開フォルダにアクセスしている例
ConoHa WINGのファイルマネージャー機能を使って、サーバー上の公開フォルダにアクセスしている例

これで、XO Securityが一時的に無効化され管理画面に入れるようになります。

ログインしたあとは、フォルダ名を基の名前「xo-security」に戻した後で、再度有効化すればOKです。

まとめ

今回はWordPressのセキュリティ対策プラグイン「XO Security」の使い方・設定方法を解説しました。

WordPressは利用者数が多い一方で、サイバー攻撃の被害が多いことでも知られています。

そのため、WordPressを運用する際はセキュリティ対策を怠らないようにしましょう。

今回は以上になります。最後までご覧頂き、ありがとうございました。

HOMEお役立ちコラムWordPressセキュリティ対策プラグイン「XO Security」の使い方・設定方法