WordPressのセキュリティ対策は何をやればいいのかな?
SiteGuard WP Pluginがいいと聞いたので導入しましたが専門用語が多くてどう設定したらいいのかよくわかりません。
SiteGuard WP Plugin(サイトガード) はWordPressのセキュリティ対策プラグインです。
インストールすると、管理画面を隠したり、不正アクセスを起こりにくくしてくれます。
ただ、セキュリティ関係は専門用語が多く、ヘルプを読んでもどう設定したらいいのか判断がつかないという方も多いはず。
そこで本記事では SiteGuard WP Plugin の設定方法について解説します。
あわせて、SiteGuard WP Plugin はログイン画面のURLを変更するのでログインできなくなった、ということが頻繁に発生してしまいがち。
万が一、WordPressの管理画面にログインできなくなった時の対処法もあわせて解説しますので、最後までお読みいただければセキュリティについての心配がなくなりますよ。
- SiteGuard WP Pluginって必要?
- SiteGuard WP Pluginをインストールすると強化されるセキュリティ機能の内容
- SiteGuard WP Pluginの設定方法・使い方
SiteGuard WP Plugin は必要か
本題に入る前に、SiteGuard WP Plugin の導入が必要なのかどうかについて改めて確認しておきましょう。
結論から言えば絶対に必要です。理由を解説していきます。
WordPressのセキュリティは「ガバガバ」
WordPressの管理画面にログインするには、下記の3つの情報が必要です。
- ログインURL
- ユーザー名
- パスワード
実は、何のセキュリティ対策もしていない素のWordPressサイトは、上記のうちログインURLとユーザー名は素人でも知ることができてしまうのです。
ログインURLを知る方法
WordPressのデフォルトのログインURLは以下のように決まっています。
- https://domain.com/wp-login.php(ドメイン直下にインストールしている場合)
- https://domain.com/wp/wp-login.php(サブディレクトリにインストールしている場合)
※ https://domain.com/の部分を自分のサイトに読み替えてください。
※ wp/ の部分はWordPressをインストールしたディレクトリに読み替えてください。
万が一ログインURLが変更されていても、
https://domain.com/wp-admin/
にアクセスすると、ログインURLにリダイレクトされる可能性が高いです。
このことを知ってればログイン画面には容易に到達できてしまいますね。
ユーザー名を知る方法
WordPressには投稿者アーカイブという機能があり、登録しているユーザーが書いた記事一覧ページを表示する機能があります。
投稿者アーカイブは https://domain.com/author/user-name/ のようなURL形式になっており、赤字部分がユーザー名です。
サイト上で投稿者アーカイブにリンクを張っている場合もあるでしょうし、そうでなくても、下記のアドレスを打ち込めばリダイレクトして表示してくれます。
https://domain.com/?author=1
※ https://domain.com/の部分を自分のサイトに読み替えてください。
パスワードは総当たりでログインを試せばログインできてしまう
上記のように3つのログイン情報のうち、素人でも簡単に2つまで知ることができてしまいます。
それでいて、WordPressはデフォルトの状態ではログインを試す行為を何度でもできます。
ということは、パスワードを生成し何度もログインを試行するプログラムがあれば、多少時間をかければ管理画面にログインできてしまいますよね。
つまり、デフォルトのWordPressの状態で運営するのは、「乗っ取ってください」と言っているようなものなのです。
個人サイトでも頻繁に攻撃対象になっている
上記はあるサイトに対する不正アクセスのログです。
主にXMLRPCを狙ったものですが、アメリカ・中国・ロシアなど海外からログイン試行されていることが多く見受けられます。
不正アクセスというと、大規模なサイトで起こるものと思いがちですが、案外個人ブログレベルであっても不正にログインすることを狙っている人は多いのです。
個人サイトでも攻撃したい理由
重要な個人情報などを保存していないような個人サイトでも攻撃しようとする目的は以下のとおり。
- 悪意のあるプログラムをサイトに仕込み訪問者に実行させる
- 他のサイトを攻撃するための踏み台として使う
- サイトが持つ個人情報を取得する
- ウェブサイトの改ざんし広告などを設置する
- データを暗号化して身代金を請求
こういったことが起こると、
- Googleが感知し、手動でペナルティを課す
- ブラウザでアクセスしたときに真っ赤な画面で警告をして遮断する(コンテンツが見れなくなる)
- アフィリエイトでは提携を解除される・成果がキャンセルされる
- 読者からのクレームが来る
- 場合によっては警察から事情聴取される・損害賠償を請求される
といったことになりかねません。
さすがに警察沙汰になるところまではいかないでしょうし、無実であることは証明できるとは思いますが、少なくとも運営しているサイトの信頼性は地に落ち、マネタイズすることはほぼ不可能になります。
セキュリティ対策は個人サイトであっても絶対に必要なのです。
SiteGuard WP Pluginが良い理由
セキュリティ対策のプラグインはたくさんありますが、SiteGuard WP Pluginを導入するのが2024年時点ではベストチョイスです。
理由はシンプルで、インストールするだけで、何もしなくてもOKだから。
- インストールするだけで、何もしなくても基本OK
- WordPressの挙動に影響が出る機能はデフォルトではOFFになっている
- 運営者の負担が極端に増える機能もデフォルトではOFFになっている
設定画面を見ると専門用語が多く、難しく感じるかもしれませんが、わからなければ何もしなくても一定以上のセキュリティ対策をしたことになるのが魅力です。
インストールした時点で適用されるセキュリティ強化の内容を次に見ていきましょう。
SiteGuard WP Pluginはインストールするだけでセキュリティが強化される
SiteGuard WP Plugin をおすすめする理由は、何といっても「インストールするだけで何もしなくても十分」である点です。
後半では目的別に設定方法を紹介しますが、大半の人にとってはインストールするだけで何もしなくても構いません。
とはいえ、何が強化されているのかわからないのも不安だと思いますので、どういった点が強化されるのか解説します。
- ログインURLが変更される
- ログイン時にひらがなの入力が必要になる(画像認証)
- ログイン失敗時に何を間違ったか表示されなくなる
- 間違えすぎると一定時間ログインできなくする(ログインロック)
- XMLRPCを狙った攻撃を無効化
- ログインされたことがメールで通知される
ログインURLが変更される
SiteGuard WP Pluginを導入すると、WordPressの管理画面にログインするためのURLが変更されます。
デフォルトで設定されるのは「login_94528」のようなlogin_とランダムな5桁の数字です。
ログインURLがバレている状態を何とかする機能というわけです。
ログイン時にひらがなの入力が必要になる(画像認証)
WordPressにログインに必要な情報を一つ追加することでログインされにくくしようというものです。
しかし情報を一つ追加しただけでは、プログラムで時間をかけてログインを何度も試行されてしまえばいつかは突破されてしまいますよね。
そこで、人間には読めて、プログラムでは容易に判読できない画像を生成します。
デフォルトではひらがなの入力が必要になるので海外からの攻撃に対しても強くなりますね。
ログイン失敗時に何を間違ったか表示されなくなる
例えばユーザー名を間違えると、図のように「何を間違ったのか」をWordPressはわざわざ教えてくれます。
親切を通り越してアホですよね(笑)
これを、何を間違ったのかを教えないようにする機能がデフォルトで有効化されます。
間違えすぎると一定時間ログインできなくする(ログインロック)
ユーザー名やパスワードを何度か失敗すると一定時間ログインすることができなくする機能です。
ログインを試すのに時間がかかるようにしてあきらめさせようという機能です。
ピンバックを無効化
WordPressには管理画面ではなく、外部のプログラムからWordPressをコントロールする仕組みがあります。
代表的な機能としてピンバックがあります。自分のブログにリンクを張ってくれたら通知する仕組みで、承認するとこちらからも自動でリンクを張り返す機能です。
ただ、スパムが非常に多いため、あまり有効な機能とは言えません。
SiteGuard WP Pluginをインストールすると、デフォルトでピンバックを無効化してくれます。
ログインされたことがメールで通知される
あってはならないことですが、最悪ログインに成功されてしまった時に管理者に対してログイン通知をする機能です。
知らない間に悪さをされていた、という事態を避けるためのものです。
悪用される前にレンタルサーバーの管理画面から、WordPressを削除し、バックアップ機能から復旧した後でセキュリティ設定を再強化すれば被害の発生を防ぐことができます。
SiteGuard WP Pluginの設定方法
SiteGuard WP Plugin はインストールしただけでも、デフォルトの状態に比べれば格段にセキュリティが高い状態になります。
初心者の方であれば、特に何もしなくても構いません。
ですが、セキュリティ対策は利便性とトレードオフの関係になっています。簡単に言えば、ログインするときに面倒が増えるということですね。
- もう少し利便性を高めたい
- もっとセキュリティを強化しておきたい
という場合の2点においておすすめの設定方法を以下に紹介します。
設定項目 | デフォルト | 利便性優先設定 | セキュリティ優先設定 |
---|---|---|---|
管理ページアクセス制限 | OFF | OFF | ON |
ログインページ変更 | ON | ON | ON |
画像認証 | ON | OFF | ON |
ログインエラー理由説明 | ON | ON | ON |
ログインロック | 5秒 3回 1分 | OFF | 30秒 3回 5分 |
ログインアラート | ON | OFF | ON |
フェールワンス | OFF | OFF | ON |
XMLRPC防御 | ピンバック無効 | ピンバック無効 | XMLRPC無効化 |
ユーザー名漏えい防御 | OFF | ON | ON REST API無効化 |
更新通知 | ON | OFF | ON |
WAFチューニング | OFF | OFF | OFF |
管理ページアクセス制限
デフォルト | OFF |
---|---|
利便性を優先する設定 | OFF ※変更なし |
セキュリティを優先する設定 | ON |
WordPressの「管理画面」のURLには/wp-admin/が含まれます。
管理ページアクセス制限を有効化すると、ログインしていない状態でアクセスした際に404エラー(ページがない)を返します。
やや煩わしいのでデフォルトでも無効化されていますが、さらにセキュリティの設定を高めるのであれば有効化しておくと良いでしょう。
ログインページ変更
デフォルト | ON(login_+5桁の数字) |
---|---|
利便性を優先する設定 | ON(login_+5桁の数字) ※変更なし |
セキュリティを優先する設定 | ON(自分で決めた10桁以上の文字列) リダイレクトしないにチェック |
ログインURLを単純に変更する(隠す)だけでもセキュリティ効果はかなり高いため、利便性を優先する場合であってもログインURLだけは変更しておくことをおすすめします。
セキュリティをさらに高めたい場合は、デフォルトの「login_+ランダムな5桁の数字」部分を完全にユニークな10桁以上の文字列にしておきましょう。
というのも、攻撃者もSiteGuardが導入されているとわかれば、多くのユーザーは「login_」の部分を変更していないこと・数字が5桁であることを知っています。
であれば、数字部分を最大99,999回アクセスしてみれば、いつかたどり着けるので、少し時間がかかるだけです。
完全にユニークな文字列に変えることで、桁数も不明なら使われている文字種も不明なので到達するまでにさらに多くの時間がかかるようになり、セキュリティをより強化できます。
尚、ログインURLを隠しても、管理者ページ(/wp-admin/以下のページ)にアクセスすると、ログインページにリダイレクトするようになっています。
せっかく隠したのに簡単に見つけることができてしまうので、「管理者ページからログインページにリダイレクトしない」にはチェックを入れるようにしましょう。
画像認証
デフォルト | ON(ひらがな) |
---|---|
利便性を優先する設定 | OFF |
セキュリティを優先する設定 | ON(ひらがな) ※変更なし |
デフォルトでは、画像認証が有効化され、ログイン時にひらがなを4文字入力しないといけなくなっています。
利便性を優先する場合はこの入力をオフにすると大幅に楽になります。
反対にセキュリティを高めたい場合はデフォルトのままにしておきましょう
ログイン詳細エラーメッセージの無効化
デフォルト | ON |
---|---|
利便性を優先する設定 | ON ※変更なし |
セキュリティを優先する設定 | ON ※変更なし |
ログイン時に何を間違ったのか説明してくれる機能を無効化する機能ですが、特別煩わしく感じることはないはずなので、基本はONにしておきましょう。
ログインロック
デフォルト | 5秒間に3回間違えると1分間ログインをロック |
---|---|
利便性を優先するc設定 | OFF |
セキュリティを優先する設定 | 30秒間に3回間違えると5分間ログインをロック |
デフォルトでは5秒間に3回間違えると1分間ログインをロックするようになっています。
利便性を優先する場合は、入力を何度か間違えることを想定してOFFにしておいてもいいでしょう。
セキュリティを高める場合は、30秒に3回間違えると5分ロックされるようにしておきます。
ログインアラート
デフォルト | ON |
---|---|
利便性を優先する設定 | OFF |
セキュリティを優先する設定 | ON ※変更なし |
ログインがあったことをメールで通知する機能です。
毎回メールされると煩わしいので、利便性を優先する場合はOFFに、セキュリティを優先する場合はそのままにしておきましょう。
フェールワンス
デフォルト | OFF |
---|---|
利便性を優先する設定 | OFF ※変更なし |
セキュリティを優先する設定 | ON |
正しいログイン情報を入力しても一度は失敗したかに見せる機能です。
2回ログイン情報を入力することになり、かなり煩わしいので、デフォルトからOFFになっています。
基本はOFFにしておくほうがいいと思いますが、セキュリティを徹底的に高めたいならONにしてもいいでしょう。
XMLRPC防御
デフォルト | ON(ピンバック無効化) |
---|---|
利便性を優先する設定 | ON(ピンバック無効化) ※変更なし |
セキュリティを優先する設定 | ON(XMLRPC無効化) |
ピンバックはほとんど海外からのアクセスが中心になるので、通知がきてもピンバックすることはほぼありません。
デフォルトで有効化されているのでそのままにしておくと利便性が高い状態になっています。
セキュリティを高めるためにはXMLRPCを無効化すると良いですが、現在動作しているプラグインが動かなくなったり、追加で今後導入するプラグインも正しく動かない可能性もあるのでしっかり確認することが必要です。
ユーザー名漏えい防御
デフォルト | OFF |
---|---|
利便性を優先する設定 | ON |
セキュリティを優先する設定 | ON+REST API無効化 |
SiteGuard WP Plugin は、投稿者アーカイブやREST APIからユーザー名が漏えいするのを防ぐ機能があります。
デフォルトではOFFにされていますが、有効化しても利便性が低下することはないのでONにしておきましょう。
さらにセキュリティを強化したい場合は、「REST API無効化」にチェックを入れましょう。
REST API無効化にチェックをいれると、一部のプラグインがうまく動作しなくなる場合があるので、動作しなくなった場合は除外リストに追加しましょう。
更新通知
デフォルト | ON |
---|---|
利便性を優先する設定 | OFF |
セキュリティを優先する設定 | ON |
WordPress本体・テーマ・プラグインに更新があるときに通知する機能です。
デフォルトではONになっていますが、メールで都度連絡されると煩わしい場合も多いので利便性を高めるならOFFにしておくと良いでしょう。
WAFチューニングサポート
デフォルト | OFF |
---|---|
利便性を優先する設定 | OFF |
セキュリティを優先する設定 | OFF(必要に応じてONに切り替え) |
上級者向けの機能です。
WAF(Web Application Firewall)とは、Webアプリケーション(WordPress)の脆弱性を狙った攻撃に対してWebサーバーに至る前に通信内容を検査し攻撃とみなした通信を遮断する機能です。
サーバー側でWAFを有効化していて、誤検知された場合に例外として許可する設定をすることができますが、かなり詳しい知識が必要になりますのでどうしても必要であると判断した場合を除いて通常はOFFのままにしておけばいいです。
SiteGuard WP Pluginを設定する際に知っておくべきこと
SiteGuard WP Plugin の設定をしていくにあたって、知っておくと判断の際に役に立つことを解説します。
ログインユーザー名とニックネームは違う名前にする
WordPressではログインユーザー名のほかに、ニックネームが設定できます。
ニックネームはログインユーザー名と別のものを設定することができ、記事内で表示するユーザー名をどちらか選択することが可能です。
ログインユーザー名とニックネームを別のものにし、サイト上ではニックネームを表示するようにしましょう。
WordPress本体やプラグインは最新バージョンにしておく
WordPressやプラグインはなるべく最新の状態を保つようにしましょう。
というのは、最新版は新たに発見された脆弱性に対策が行われることが多いのでより安全だからです。
ただし、リリース直後は不具合が残っていることがあるので、リリースされてから1週間程度様子を見た後でアップデートするのがおすすめです。
ログイン履歴を活用する方法
ブログのセキュリティ対策で重要なことは、とにかくログインURLへのアクセスを防ぐことです。
この時重要なのがSiteGuard WP Pluginのログイン履歴画面。
ログインタイプを「ログインページ」にして絞り込んだ時に、あちこちからアクセスされている形跡がある場合、攻撃者はログイン画面に到達できており、ログインを試行しているということなので、ログインURLを変更する・ログインURLを特定されなくするための対策を取るということが重要です。
- ログインURLを変更する
- 管理者ページからログインページへリダイレクトしないにチェックを入れる
- ユーザー名漏えい防御を有効化する
- REST API無効化にもチェックを入れる
セキュリティ強化の目的は攻撃者に「面倒なサイト」だと思わせること
- ログインURLを隠す
- ユーザー名を隠す
- ログインロックする
といったものはどれも攻撃をしようとする人間に対して「面倒なサイトだな」と思わせることです。
なぜなら、他にいくらでも簡単にセキュリティを突破できるサイトがあるのに、わざわざ苦労してセキュリティを突破しないといけない理由が攻撃者にはないためです。
ブログのセキュリティも、攻撃者に対して「このサイトはちゃんとセキュリティ対策をしているっぽいから面倒そうだ」と思わせれば勝ちということですね。
SiteGuard WP PluginでログインURLを忘れた時の対処法
SiteGuard WP Plugin はインストールすると、ログインURLが変更になります。
ログインページがわからなくなった時の対処法を最後に解説します。
古いログインURLにアクセスしてしまっている
SiteGuardをインストールすると、デフォルトでログインURLが変更されます。
自分で変更したわけではないので元のアドレスでアクセスできると思ったら、アクセスできなくなっていた、というケースです。
新しいURLにアクセスしてみてください。
/wp-admin/ではなくログインURLにアクセスする
「管理ページアクセス制限」が有効化されている場合、ログインしていない状態で/wp-admin/以下のページを表示しようとすると、ページがありませんと404ページが表示されます。
この場合、/wp-admin/ではなく、ログインURLにアクセスしログインしてください。
ログインURLをブックマークし忘れた場合
うっかりブックマークをし忘れた場合は以下の方法でURLを確認しましょう。
メールを確認する
SiteGuardを導入直後は、ログインURLが変更になるので新しいログインURLが送られてきているはずです。
そのメールに新しいログインURLが書かれているのでそちらでログインしてください。
.htaccessファイルで確認する
メールを削除してわからない場合は.htaccessの内容を確認し、URLを確認しましょう。
- FTPソフトや、サーバー管理画面のファイルマネージャ―で、サイトのルートフォルダにある「.htaccess」というファイルを開きます。
- wp-login.phpという文字を検索し、その前に書かれている「login_5桁の数字」がログインURLです。
- https://domain.com/login_5桁の数字にアクセスしましょう。
#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_22760(.*)$ wp-login.php$1 [L]
</IfModule>
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_END
#SITEGUARD_PLUGIN_SETTINGS_END
まとめ:SiteGuard WP Pluginを設定してセキュリティを高めよう
実は私は、WordPressは世界中で利用されているCMSソフトなので、当然セキュリティも万全と思っていました。
実際にはパスワードしか隠せていないという事実を知った時、かなり衝撃でした。
とりわけ、収益ブログを運営している人にとって、ブログが誰かに乗っ取られたり、データを全て削除されたりすると収益がゼロになってしまいますよね。
悪用されてしまってからでは遅いので、これを機会に是非SiteGuard WP Pluginを導入してセキュリティを高めておいてください。