SiteGuard WP Plugin でWordPressのセキュリティ対策

WordPressは圧倒的メジャーなCMS。使い方やプログラムの情報が豊富でさまざまなサイトに対応できることが大きな魅力ですが、攻撃の対象にもなりやすいデメリットもあります。
オープンソースのため、どこにアクセスすれば、ログインできるか、どこにセキュリティホールがあるかなどもオープンになっているのです。

不正ログインやスパム、ひいてはWebサイトの改ざんなどが行われ、深刻な状況になる可能性もあります。少しでもリスクを減らすためにも、セキュリティ対策は必須です。

そこでセキュリティを強化してくれるプラグイン「SiteGuard WP Plugin」の使い方についてメモしていきます。

動作確認環境

  • WordPressバージョン  :  6.3.2
  • プラグインバージョン  :  1.7.6
  • 動作確認日  :  2023/11/11

SiteGuard WP Pluginとは

SiteGuard WP Pluginは(株)ジェイピー・セキュアが開発・提供を行っている、WordPressのセキュリティプラグインです。
SiteGuard WP Plugin | ソフトウェアWAFのJP-Secure

セキュリティ対策は何をすればいいかをあげるとキリがありませんが、SiteGuard WP Plugin は主にログイン・管理ページへのアクセスへの対策をすることができます。

  • 国産のプラグインで、日本語対応も完璧。
  • プラグインの更新もまめにあるので、メンテナンス面も安心。
  • 不正ログインやコメントスパムを防ぐ。
  • 不正ログインをチェックできる。
  • 管理ページ(/wp-admin/)へのアクセスを制限できる。

レンタルサーバーのWordPressの簡単インストールを行うと、デフォルトで SiteGuard WP Plugin がインストールされていることもあるほど、メジャーなプラグインです。

有効化したらログインページを確認

SiteGuard WP Pluginはプラグインメニューからインストールできます。

プラグイン追加画面

【プラグインページ】
SiteGuard WP Plugin – WordPress プラグイン | WordPress.org 日本語

後でログインできない…という状況にならないように、有効化したらすぐにログインができるか確認しましょう。

有効化すぐであれば、プラグイン一覧の上部に「ログインページURLが変更されました」という表示が出てくるので、ここから新しいログインページが確認できます。

メールでもURLは確認できます。有効化すると、管理者のメールアドレスに SiteGuard WP Plugin からメールが届きます。ここにもログインURLが記載されているので、ここからログインページにとぶこともできます。

新しいログインページにいくと、このように表示されます。

インストール > 有効化 したら、問題なくログインできるか試してみましょう。初期設定で画像認証もONになっているので、ひならが入力が追加されています。

SiteGuard WP Pluginの機能・設定

SiteGuard WP Plugin の設定項目はこちら。

管理ページアクセス制限・ログインページ変更・画像認証・ログイン詳細エラーメッセージの無効化・ログインロック・ログインアラート・フェールワンス・XMLRPC防御・ユーザー名漏えい防御・更新通知・WAFチューニングサポート・ログイン履歴

緑色のチェックが付いている項目は、設定がONになっている状態です。初期で設定されているものは基本そのままに。必要・不要が分かったら都度設定していきましょう。

初期の状態のままでもひとまず大丈夫ですが、よりセキュリティを上げるために、いくつか設定し直す必要があります。

また、プラグインを有効化してエラーが出た場合もこの設定を変更することで解決する場合もあるので、それぞれがどういう内容なのかは覚えておきましょう。

管理ページアクセス制限

この設定で /wp-admin/ への不正アクセスを防ぎます。

デフォルトはOFFになっているのですが、ONにすると「ログインしているIPアドレスのみ管理ページ(/wp-admin/以降) へアクセスできる」ようになります。
設定の際には以下の点に注意が必要です。確認して問題がなければ設定していきましょう。

  • 自分のPCのIPアドレスが変わると再度ログインが必要
  • 24時間以上ログインがない場合も再度ログインが必要

IPアドレスが時間毎で定期的に変わる、セッションが切れた場合にIPアドレスが変わるといった場合は都度ログインし直す必要があります。

「除外パス」の項目で、この機能を除外するページを指定することもできます。

ログインページの変更

ログインページのURLは、初期で https://domain/login_5桁の数字 に設定されています。

login_5桁の数字 は変更することができます。使える文字は「英数字」「-(ハイフン)」「_(アンダーバー)」です。

オプションの「管理者ページからログインページへリダイレクトしない」にもチェックを入れておきましょう。これがないとセキュリティ半減です。

なぜログインページを変えるのか

WordPressのログインページは初期の状態で /wp-login.php または /wp-admin/ でアクセスできます。 /wp-login.php がログイン画面で、/wp-admin/ は管理者ページへのURLです。
ログインしていない状態で /wp-admin/ にアクセスすると、ログインページにリダイレクトするのがデフォルトの仕様です。

攻撃してくる人たちは、このことを分かっています。なので、初期仕様のままにすると不正ログイン攻撃を受けやすくなります(ブルートフォース攻撃やリスト攻撃)

それを防ぐために、ログインページの変更と /wp-admin/ にアクセスした時にリダイレクトをしないように設定する必要があります。

画像認証

この設定で、ログインページやコメントページに画像認証を追加します。設定することでブルートフォース攻撃やコメントスパムを受けにくくなります。

初期設定ではひらがな入力となっていて、英数字入力への変更もできます。

「英数字」にチェックを入れた場合のログイン表示

ログイン詳細エラーメッセージの無効化

こちらはON・OFFのみの設定。

IDやパスワードが間違っているとエラーメッセージが表示されます。
WordPressの初期仕様では、「ユーザー名を入力してください」「パスワードを入力してください」の表示がされます。


どちらかが合っていると、合っている方の表示が消えます。

これを、どちらが合っていたとしても「入力内容を確認の上、もう一度送信してください」という一律表示にします。
表示を一つにすることで「どちらかが合っている」ということを伝えないようにしています。

ONにした場合の表示

ログインロック

不正ログインの攻撃では、正解に当たるまで何度もログイン情報を入力して突破しようとする方法があります。
これを防ぐために、「指定した時間内で失敗できる回数」を制限し、連続して入力できないようにログイン画面にアクセスできなくする時間を設定します。

デフォルトでは「5秒間に3回のログインがあった場合、1分間アクセスできなくなる」というものです。

初期設定のままでも問題はありません。

運用しているサイトが一時期頻繁にブルートフォース攻撃にあっていて、その度に「このIPからのログインをロックした」というメールが送られてきたときはビクビクしていました。
設定は必須ですね。

ログインアラート

ONにしていると、ログインした瞬間にSiteGuardからメールが送信されます。自分がログインしていないのに、ログインされた場合すぐ気づくことができます。

フェールワンス

「フェールワンス」は正しいログイン情報を入力しても、必ず一度エラーにする、というもの。リスト攻撃への対策になります。

「一度失敗したログインを再度入力する」という不正アクセスが少ないため、この機能があります。

一度エラーになった後、5秒〜60秒以内に再度正しいログイン情報を入力することで、ログインすることができます。

ログイン時の入力が手間にならなければ、ONにしてセキュリティを高めておきましょう。

XMLRPC防御

「XMLRPC」とはWordPressと他のシステムとの通信ができるようにした仕様のこと。「ピンバック」はリンクを貼られたら自動的に通知され、WordPress同士で相互リンクを促す仕組みです。

便利な機能ではあるものの、脆弱性もあり攻撃対象になる可能性があります。脆弱性のあるピンバックは、スパマーからのリンクがたくさん来る可能性があるので、初期のまま無効にしておきましょう。

デフォルトでは「ピンバック」のみを無効化している状態です。今ではRESET APIが主流なのでXMLRPC全体を無効にすることを推奨していることもありますが、他のプラグインや連携している外部のツールによっては支障が出る場合もあるので、無効化する場合は確認必須です。

現在では、REST APIがXML-RPCに取って代わったため、サイトのxmlrpc.phpは無効にするのがいいでしょう。

引用元 : https://kinsta.com/jp/blog/xmlrpc-php/

ユーザー名漏えい防御

WordPressサイトでは https://domain/?author=数字 でユーザー名がわかります。
このURLでアクセスすると https://domain/author/ユーザー名 にリダイレクトされるためです。

ユーザー名が分かると、ログイン情報の一つが判明してしまいます。あとはパスワードを入れるだけになるので、セキュリティリスクが高まります。

REST APIを無効化

「/wp-json/wp/v2/users」にアクセスすると、WordPressにあるユーザー情報を見ることができます。知らなかったという人はぜひ自分のサイトでチェックしてみてください。json形式で情報が書かれているのが確認できると思います。

これを防ぐために「REST APIを無効化」があります。

ここにチェックを入れることで、WP REST APIにアクセスしてもエラーコードが表示され、情報が取得できません。

プラグインの中にはWP REST APIを利用しているものもあります。プラグインごとの除外ができるので、分かる場合はONにしておきましょう。

注意点は、プラグイン以外は除外できないことです。もしプラグイン以外でWP REST APIを利用している場合、正常に動作しなくなります。その場合はここにはチェックを入れず、ユーザー情報の漏えい防止のためのコードを別途記述する必要があります。

更新通知

デフォルトはONの状態なので、不要な通知は無効に設定する必要があります。

毎日、もしくは定期的にログインしてサイトをチェックしている場合には、設定しなくてもいいと思います。放置サイトを運営している場合は設定していた方が無難です。

WAFチューニングサポート

WAFは改ざんや情報漏洩を防ぐ機能のことです。

サーバーにWAF (SiteGuard Lite)が導入されていないと意味がありません。レンタルサーバーによってはセキュリティのために導入しているところもあります。

WAFは外部からの攻撃を防ぐと同時に、攻撃でないものもブロックすることもあります。このことを防ぐために、除外ルールをここで設定します。
WAFによってエラーが出てしまった場合は、ONにしてこの除外ルールを設定してみましょう。

セキュリティ向上のためには設定しておいた方が良いものの、ONにしてみて誤作動やログインできないといった状態になるならOFFにしておきましょう。

ログイン履歴

ユーザー名が使用していないもの、使用していないIPアドレスからの履歴などは不正ログインの証拠です。定期的にチェックしてみましょう。

【PR】

プログラミング言語の人気オンラインコース

無効でもOKだと思う機能

機能がたくさんあるのがSiteGuard WP Pluginの魅力ですが、全てを有効化する必要はありません。
以下は必要に応じて有効化する形でも問題ないかなと思う機能です。

  • 管理ページアクセス制限
  • XMLRPC防御
  • WAFチューニングサポート

メールが邪魔くさい、頻繁にサイトチェックする人は、以下の設定も無効でいいと思います。

  • ログインアラート
  • 更新通知

もちろんよりセキュリティを強化したい場合は、全てチェックして設定した方が良いです。

セキュリティは完璧になることはありませんので、できる範囲のことをしっかりやることが大切です。

変更したログインページの確認

プラグイン内ではもちろん、ログインURLは最初に送られるメール、.htaccessでも確認ができます。
ログインURLがわからなくなってしまった場合は、これらから確認します。

.htaccess を確認できるならこの部分を確認します。

#==== SITEGUARD_RENAME_LOGIN_SETTINGS_START
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteRule ^login_xxxxx(.*)$ wp-login.php$1 [L]
</IfModule>
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_END

RewriteRule ^login_xxxxx(.*)$ wp-login.php$1 [L]login_xxxxx が変更されたログインURLです。

ログインできなくなった

SiteGuard WP Plugin を導入後に管理画面にログインできなくなってしまうこともしばしばあります。考えられる原因はいくつかあるので、思い当たるところから解決方法を試していきましょう。

ログインURLを間違えていないか

間違いなく変更したログインURLでアクセスしているのか確認します。

SiteGuard は有効した時点で新しいログインURLが生成され、自分で設定せずともそちらに変更されます。SiteGuard によって変更されたログインURLにアクセスしているかもう一度確認しましょう。
変更したログインページの確認

/wp_admin/ でログイン画面が表示されない

ログインURLではなく、管理画面である /wp_admin/ にアクセスすると404エラーを返されることがあります。

「ログインページの変更」で「管理者ページからログインページへリダイレクトしない」にチェックを入れている場合、/wp_admin/ へアクセスしてもログイン画面は表示されません。また「管理ページアクセス制限」を有効にしている場合も同様です。

この場合も正しいログインURLでアクセスしてログインできるか確認してみましょう。

キャッシュやクッキーを削除してみる

ブラウザのキャッシュやクッキーによってうまくログイン画面にアクセスできないこともあるようです。
ブラウザを変えてログインできるか試したり、ブラウザのキャッシュやクッキーを削除して表示されるか試してみましょう。

【参考】Siiteguardが原因でログインできない理由と5個の解決法|東日印刷株式会社

フェールワンス設定がされていたら一度はエラーになる

前述したように「フェールワンス」は正しいログイン情報を入力しても一度エラーにする、というものです。一度ログインできなくても5秒〜60秒以内に再度正しいログイン情報を入力するとログインできます。

もし一度きりのログインで諦めてしまっている、2度目は別のログイン情報を入力していた、といった場合はこちらを試してみましょう。

原因がわからずログインできない場合はプラグインを無効化・削除してみる

ログインURLもログイン情報もSiteGuardの設定も問題ないがログインできない場合、最終手段としてプラグインの無効化・削除を行います。

WordPressにログインしていない状態でも SiteGuard の無効化は可能です。.htaccess にあるSiteGuardの関する記述を削除します。

#SITEGUARD_PLUGIN_SETTINGS_START
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_START
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteRule ^wp-signup\.php 404-siteguard [L]
    RewriteRule ^wp-activate\.php 404-siteguard [L]
    RewriteRule ^login_0000(.*)$ wp-login.php$1 [L]
</IfModule>
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_END
#SITEGUARD_PLUGIN_SETTINGS_END

.htaccess はあまり触りたくないな…という場合はプラグインの削除も方法の一つです。FTPソフトにてsiteguardプラグインのフォルダを削除します。
【wp-content > plugins > siteguard(これを削除)】

「ログインができない」ということ以外にもいくつかFAQがあるので、もし siteguard で困っていることがあれば確認してみてください。
【参照】FAQ | WebセキュリティのEGセキュアソリューションズ

カテゴリー : WordPress

TOPへ