WordPressの初期状態は、セキュリティ的にあまり強いとは言えません。今回は有名なセキュリティ対策プラグイン「SiteGuard WP Plugin」の導入と使い方を説明しながら、セキュリティ対策を行う方法を解説していきます。
■WordPress「SiteGuard WP Plugin」の設定方法と使い方(動画解説版)
プラグインは便利ですが、古いプラグインやご利用のテーマやプラグインの組み合わせによっては、不具合を起こす場合もあります。
本記事では特定の環境下での手順を示したものであり、ご利用の環境によっては本記事記載の手順以外の設定が必要になることもあります。
そのため本番環境下へのプラグインの導入は、バックアップを取った上自己責任で実施をお願いいたします。
セキュリティ対策プラグイン「Site Guard(サイドガード)」とは
SiteGuard WP Pluginは、WordPressにインストールするだけで、セキュリティを向上させることができるシンプルなセキュリティ対策プラグインです。不正ログインの防止を中心としたセキュリティを強化してくれます。
このたび、WordPressへのセキュリティ対策を更に強化するため、従来より行っておりました「WordPressへの攻撃に対する検知と.htaccessを利用した防御機能」を停止し、セキュリティプラグイン『SiteGuard WP Plugin』の推奨を決定いたしました。
WordPressをご利用の方は、サイトの改ざんを防ぐため、ぜひ『SiteGuard WP Plugin』のインストールをお願いいたします。
WordPressへの攻撃に対する検知・防御機能に関して | ロリポップ公式サイトより引用
合わせて読みたい記事
WordPressは、オープンソースで自由に利用でき、世界的にもシェアが高い一方、攻撃を受けやすくハッキングされる例も多々あります。
実際にここ最近、身近にWordpressがハッキングされたサイトを見かけ、対処する機会がありましたので、事例や気をつけるべきことを「【WordPressハッキング事例】ウイルス・マルウェア感染」で詳しく取り上げました。
SiteGuard WP Pluginのインストール
まずは、Site Guard WP Pluginをインストールしていきます。プラグイン>新規追加を選択します。
キーワードに「SiteGuard」と入力します。表示されたSiteGuardを今すぐインストールします。
SiteGuardを有効化します。
以上で、SiteGuardの導入は完了です。SiteGuardの設定は、管理メニューのSiteGuard>ダッシュボードからセキュリティの設定ができます。
(補足)ログイン先のURLについて
http(s)://サイトURL/wp-login.phpで普段アクセスしている方は、SiteGuardを有効化するとログインURLが自動的に変更されるので注意しましょう。
ログインURLはSiteGuard>ダッシュボードのログインページ変更から確認・変更することができます。
確認を忘れた場合は、WordPress管理者宛にメールでも通知されているはずなのでメールを確認してみましょう。
ただし、http(s)://サイトURL/wp-admin/で普段アクセスしている方は、これまで通りリダイレクトされてログイン画面に入ることはできます(後半で説明)。
SiteGuardの設定項目とおすすめ設定
SiteGuardは有効化するだけで、すでに基本機能が有効化されますので、セキュリティが強化されます。
(例)SiteGuard導入後は、次回ログインするときに「かな」入力の画像認証が求められるようになります。
SiteGuardの設定項目と当サイトが実施している設定
ここでは、SiteGuardの設定項目と当サイトが実施している設定をご紹介します。
SiteGuardでは、下記のセキュリティ設定ができます。
下記は、当サイトで実施している設定です。更新通知などの通知はOFFにして、そのほかは少し厳しい目に設定しています。
設定項目 | 意味 | 当サイトでよくする設定 |
---|---|---|
管理ページアクセス制限 |
ログインしていない接続元から管理ディレクトリ(/wp-admin/)を守ります。 初期状態OFF |
OFFのまま |
ログインページ変更 |
ログインページ名を変更します。 初期状態ON |
ON+オプションで「管理者ページ(/wp-admin/)からログインページへリダイレクトしない」にチェック |
画像認証 | ログインページ、コメント投稿に画像認証を追加します。 | 初期状態ONのまま |
ログイン詳細エラーメッセージの無効化 | ログインエラー時の詳細なエラーメッセージを単一のあいまいになメッセージにします。 | 初期状態ONのまま |
ログインロック | ログイン失敗を繰り返す接続元を一定期間ロックします。 | ON+厳しい目の設定(30秒間に3回ログイン失敗したら5分ロックアウト) |
ログインアラート |
ログインするたびにメールが通知されます。第三者が不正ログインした時にもすぐに通知されるので、一定のセキュリティ効果があります。 初期状態ON |
初期状態ONのまま (ログインのたびメール通知を避けたい方はOFFに設定) |
フェールワンス |
正しい入力を行なっても、ログインを一回失敗します。 初期状態OFF |
初期状態OFFのまま |
XMLRPC防御 |
XML RPCの悪用を防ぎます。 初期状態ON:ピンバック無効化 |
初期状態ON + XMLRPC無効化に変更 |
ユーザー名漏洩防止 |
"/?author=数字" のアクセスによるユーザー名の漏えいを防止します。 また、REST API によるユーザー名の漏えいを防止するため、REST API を無効化することができます。 初期状態OFF |
ONに設定 (オプションのREST APIはOFFのまま) |
更新通知 |
WordPress、プラグイン、テーマの更新が必要になった場合に、管理者にメールで通知します。通知が来ることによりスピーディーな更新ができるようになります。 初期状態ON |
無効化に設定 (更新通知をいち早く知りたい方はONに設定) |
WAFチューニングサポート | WAF(SiteGuard Lite)の除外ルールを作成します。 |
基本初期状態のまま (WAF誤検知が起きた際に必要に応じて除外設定) |
※セキュリティ的には、もっと厳しい設定をしようと思えばできます。あくまで当サイトがしている設定ということでご参考ください。
管理ページアクセス制限機能の設定
管理ページアクセス制限は管理ページをIPアドレスにより制限する機能です。
初期状態はOFFになっています。当サイトでは基本初期状態OFFのまま特に設定変更していません。
管理ページアクセス制限機能の特徴
管理ページアクセス制限をONにすることで、記録のない接続元IPアドレスの端末から/wp-admin/にアクセスしたときに404エラーページを表示して不正ログイン攻撃を防ぐことができます。
管理ページ(/wp-admin/以降)に対する攻撃から防御するための機能です。ログインが行われていない接続元IPアドレスに対して、管理ページのアクセスを、404(Not Found)で返します。ログインすると、接続元IPアドレスが記録され、当該ページのアクセスを許可します。24時間以上ログインが行われない接続元IPアドレスは、順次削除されます。この機能を除外するURL(/wp-admin/以降)を指定することができます。
管理ページアクセス制限について | 公式サイトJP-Secure
ただし、WordPressを始めたばかりの方やIPアドレスの意味がわからない・FTPでサーバーの中を触れない方は本機能をONにすると最悪ログインできなくなるので、自信のない方は一旦はOFFのままでも良いと思います。
ログインしている・していない状態にかかわらず、IPアドレスが変わると突然繋がらなくなるので利便性は下がります。
もし、管理ページアクセス制限機能をONにする場合は、ONにする前にログインページ変更のURLを必ずメモしておきましょう。
本機能を有効化すると、http(s)://サイトのURL/wp-admin/での管理者ページログインはできなくなります。代わりに、https(s)://サイトのURL/login_xxxxxでログインする必要があります。
このURLを忘れるとログインできなくなり、復旧にはFTPで.htaccessを確認したり、SiteGuardを無効化したりする必要があるため、少し手間がかかります。
また、ブラウザによってはキャッシュ機能によって、https(s)://サイトのURL/login_xxxxxでログインした後で403エラーが表示される場合がありますが、その場合は、キャッシュをクリアして読み込みしましょう。
ログインページ変更機能の設定
ログインページ変更は通常のログインページ「https://サイトURL/wp-login.php」のアドレスを「https://サイトURL/login_xxxxx(5桁の乱数).php」に変更する機能です。
初期状態はONになっています。不正ログインに対するセキュリティ強度を上げるので、当サイトではONのままにしています。
また、http(s)://サイトURL/wp-admin/でログイン画面を見せたくない方は、オプションの「管理者ページからログインページへリダイレクトしない」にチェックを入れると、/wp-admin/でログイン画面に移動(リダイレクト)させなくすることができます。当サイトでもチェックを入れています。
もしチェックを入れる場合は、かならずhttps://サイトURL/login_xxxxx.phpのログイン画面をメモ・ブックマークしておきましょう(忘れるとログインできなくなります)。
ブルートフォース攻撃、リスト攻撃等の、不正にログインを試みる攻撃を受けにくくするための機能です。ログインページ(wp-login.php)の名前を変更します。初期値は、「login_<5桁の乱数>」ですが、お好みの名前に変更することができます。
ログインページ変更について | 公式サイトJP-Secure
■海外のIPアドレスからアクセスした例
画像認証機能の設定
画像認証は、ログインやコメントフォームに画像認証を設ける機能です。ひらがなと英数字を選ぶことができます。
初期状態はONになっています。不正ログインに対するセキュリティ強度を上げるので当サイトではONのままにしています。
ブルートフォース攻撃、リスト攻撃等の、不正にログインを試みる攻撃や、コメントスパムを受けにくくするための機能です。画像認証の文字は、ひらがなと英数字が選択できます。
■ログインフォームの例。かな文字が表示されている。
ログイン詳細エラーメッセージの無効化機能の設定
ログイン失敗時のエラーメッセージを曖昧にする機能です。初期状態はONになっています。
不正ログインを防ぐセキュリティ機能を上げる効果がありますのでONのままにしておきましょう。
ログイン詳細エラーメッセージの無効化機能の特徴
WordPress初期状態では、ログイン時にユーザーIDが間違っていたらユーザーIDが違う・パスワードが間違っていたらパスワードが違うと親切にエラーメッセージを表示させてしまいますが、不正ログインのヒントにもなってしまいます。
ログイン詳細エラーメッセージの無効化をONにすることでエラーメッセージからログイン情報を把握できなくなります。
■SiteGuard有効化前 ログインエラーメッセージが詳細で類推できてしまう
■SiteGuard有効化後 ログインエラーメッセージが曖昧になっている
ユーザー名の存在を調査する攻撃を受けにくくするための機能です。ログインに関するエラーメッセージがすべて同じ内容になります。ユーザー名、パスワード、画像認証のどれを間違えても同じエラーメッセージを表示します。
ログイン詳細エラーメッセージの無効化について | 公式サイトJP-Secure
ログインロック機能の設定
ログインロックは、短時間にログイン試行を繰り返す端末に対して、IPアドレスを元にログインロックする機能です。
初期状態はONです。不正ログインを防ぐセキュリティ機能を上げる効果がありますので、当サイトではONにしています。
ブルートフォース攻撃、リスト攻撃等の、不正にログインを試みる攻撃を受けにくくするための機能です。特に、機械的な攻撃から防御するための機能です。ログインの失敗が指定期間中に指定回数に達した接続元IPアドレスを指定時間ブロックします。ユーザーアカウント毎のロックは行いません。
ログインアラート機能の特徴
ログインアラートは、WordPressにログインがあるたびにログインユーザー(通常は管理者)にメールが送信されます。
初期状態はONになっており、当サイトはONにしています。メール通知されるのが嫌な方はOFFにしておくことができます。
■SiteGuardログインメール通知の例
不正なログインに気づきやすくするための機能です。ログインすると、ログインユーザーにメールが送信されます。ログインした心当たりがないのにメールを受信した場合は、不正なログインを疑ってください。サブジェクトとメール本文には、次の変数が使用できます。(サイト名:%SITENAME%、ユーザ名:%USERNAME%、日付:%DATE%、時刻:%TIME%、IPアドレス:%IPADDRESS%、ユーザーエージェント:%USERAGENT%、リファラー:%REFERER%)XML-RPCによるアクセスは通知されません。
フェールワンス機能の特徴
フェールワンスは正しいログインをしても一度ログイン失敗にする「Fail Once(一回失敗)」機能です。
初期状態はOFFで当サイトはOFFにしたままです。セキュリティ機能を少しでもあげたい方はONにすることができます。
リスト攻撃を受けにくくするための機能です。正しいログイン情報を入力しても、1回だけログインが失敗します。5秒以降、60秒以内に再度正しいログイン情報を入力すると、ログインが成功します。
XMLRPC防御機能の特徴
XMLRPC防御は、ピンバック機能(リンク元がリンク先に通知する機能)の無効化、または、XMLRPC( xmlrpc.php )を無効化する機能です。
初期状態ではONになっています。当サイトではONにしつつ、より厳しい、XMLRPC無効化の設定をしています(※)。
※すでに色々なプラグインなどを導入済みのWordPressにXMLRPC無効化設定をする場合、XMLRPCを使用したプラグインに支障をきたす場合があるので注意してください。
WordPressのXML RPCとは
WordPressのXML RPCとは、WordPressの管理画面からではなく、プログラムなどでWordPressの外側からWordPressをコントロールするための機能です。XMLといわれるデータ形式で通信します。
例. 外側のプログラムから、投稿を作成したり削除したり、など
Pingback機能を無効化する、あるいは、XMLRPC全体( xmlrpc.php )を無効化し、悪用を防止します。XMLRPC全体を無効化すると、XMLRPCを使用したプラグインやアプリの使用ができなくなります。支障がある場合には、本機能を使わないでください。
ユーザー名漏えい防止機能
ユーザー名漏えい防止は、WordPressのユーザー名を防止する機能です。WordPressではサイトURL/?author=0 と入力すると、ユーザー名がわかります。
初期状態ではOFFになっていますが、WordPressのログインユーザー名を知られたくない方はOFFにしておくと良いでしょう。
※REST APIをOFFにして利用しているプラグインだけ除外設定をするということも可能です。よくわからない方はとりあえずデフォルトのチェックを外したままで良いと思います。
例)「サイトURL/?author=0」で自分のサイトにアクセスしてみてください。
(ご利用のテーマによっては、ページが見つからない(404.php)と表示される場合もあるかもしれません。その場合は以降の手順は無視してOKです)
リダイレクトされて、自分のユーザーIDがアドレスバーに表示されています。URLからユーザーID名がわかります。
(関連記事)【WordPressログインユーザー名(ID)表示を変更・隠す方法】
更新通知機能の特徴
更新通知とは、WordPress本体、プラグイン、テーマの新しいバージョンがリリースされたときに管理者にメール通知する機能です。
初期状態ではONになっています。当サイトではOFFにしています。(よりタイムリーに更新したいという方はONのままで良いと思います)
セキュリティの基本は、常に最新のバージョンを使用することです。WordPress、プラグイン、テーマの更新が必要になった場合に、管理者にメールで通知します。更新の確認は、24時間毎に実行されます。
WAFチューニングサポート機能の特徴
WAFチューニングサポートとは、WAF(Web Application FireWall)の除外設定をする機能です。必要なとき以外は初期状態のまま何も設定しなくてもOKです。
WebサーバーにJP-Secure製のWAF ( SiteGuard Lite ) が導入されている場合に、WordPress内での誤検知(正常なアクセスなのに、403エラーが発生する等)を回避するためのルールを作成する機能です。WAFは、Webサーバーに対する外部からの攻撃を防ぎますが、WordPressの機能や、プラグインの機能によっては、WAFが攻撃でないのに攻撃と判断して、その機能をブロックする場合があります。除外ルールを作成することで、特定の機能での誤検知を防ぎつつ、全体としてのWAFの防御機能を活かすことができます。
WAFチューニングサポートについて | 公式サイトJP-Secure
詳細設定機能の特徴
詳細設定は、IPアドレスの取得方法を設定する機能です。通常は何も設定しなくてもOKです。
IPアドレスの取得方法を設定します。通常はリモートアドレスを選択してください。Webサーバーの前段にプロキシーサーバーや、ロードバランサーが存在して、リモートアドレスでクライアントのIPアドレスが取得できない場合は、X-Forwarded-ForからIPアドレスを取得できます。レベルは、X-Forwarded-Forの値の右端から何番目かを表します。
ログイン履歴機能の特徴
ログイン履歴は、ログインした履歴を一覧で閲覧する機能です。不正ログインを機にする場合にログイン履歴を閲覧できます。通常は何もしなくて構いません。
ログインの履歴が参照できます。怪しい履歴がないか確認しましょう。履歴は、最大10,000件記錄され、10,000件を超えると古いものから削除されます。
まとめ
まとめです。今回は、セキュリティ対策プラグイン「SiteGuard WP Plugin」の使い方について説明しました。
セキュリティの設定は奥が深く、難易度が上がるためここでは簡単にできる設定のみ紹介しましたが、用途や重要度に応じてもっと厳しく設定する必要がある場合もあります。
まずは、パスワードを複雑にする(記号や大文字・小文字など入れて8桁以上・類推されにくいものにするなど)など、基本的なところも絶対に意識しておきましょう。
なお、そのほかのよく使うおすすめプラグイン一覧を「WordPressおすすめプラグインを一覧・目的別紹介」でご紹介していますので、プラグインをお探しの方はあわせてご参考いただけると幸いです。
今回は以上になります。最後までご覧いただきありがとうございました。
あわせて読みたい記事
個別指導形式のスクールでは、自分の知りたいことをピンポイントで学習・達成でき、自分で更新もできるというメリットもあります。
教室の無料事前相談もしておりますので、まずはお気軽にご登録ください。
YouTubeチャンネル開設しました!
最大月間50万PVの当ブログをベースに、Youtube動画配信にてWordPress、ホームページ作成、ブログのことについてお役立ち情報を随時配信していきます。
ご興味ある方はぜひチャンネル登録をしていただけますと幸いです。