こんばんわ、とろこてんです。
今回は、AWSのLightsailのWordPressでログインページを隠蔽する方法を紹介します。
本記事は、以下の方が対象です。
- AWSのLightsailのWordPressを構築した直後
- 「SiteGuard」を使ってログインページを変更しようとしたら、上手くいかなかった (>_<)
なぜ隠蔽するのか
WordPressを構築した直後ですと、
「http://サイトURL/wp-login.php」
で、管理者用のログイン画面が表示されます。
この仕組みは、サイト管理者にとっては都合が良いけども、もし悪意を持った人が居た場合に管理者用のURLが推測される事になるので、極力変更したいところですね。
※2段階認証やログイン回数制限を設ける等、様々な対処方法がありますが、管理者用のURLが隠蔽されていれば、そもそも攻撃を受けるリスクが軽減できるので、他の対処と合わせて実施したい内容ですね。
どうやって隠蔽するか
WordPressのプラグインがありますので、それを導入すればOKです。
有名どころとして「SiteGuard WP Plugin」があります。
本プラグインは、サイトの防御(ログインページ変更、画像認証等)を上げる事が出来る優れたセキュリティツールで、様々なサイトや動画で紹介されています。
ただ、LightSailのWordPressの場合だと・・・
※Lightsailの場合、この状態でログアウトしてはいけません!!(その後、ログイン不可になります)
↓「プラグイン」を有効にすると、ログインページURL(赤枠)が変更された旨が表示されますが・・・
いざクリックすると・・・
「404 NOT FOUND」
となって、ログインページにアクセスできなくなります・・・orz
原因は何なの?
原因はLightsailのWordPressだからです。
と書くと、ざっくりすぎるので補足すると、
「SiteGuard WP Plugin」では、ログインページの変更に「.htaccess」の設定値を変更する事で実現しています。
ただ、LightsailのWordPressの場合、「.htaccess」を用いていないので、上手くいかない、という訳です。
(※)この辺の話は、前提としているWebサーバが異なっているから発生している話で、「.htaccess」はApache Webサーバを利用している場合に有効ですが、Lightsailではnginxを使用しており、「.htaccess」を利用しないので、上手くいかないという事のようですね。
WPS Hide Loginを導入
調べたら「WPS Hide Login」というWordPressのプラグインがあるので、それを導入する事で対応可能です。
という訳で、ここからが本題みたいな感じですねw
SiteGuardの設定
「SiteGuard」を導入している場合には、ログインページ変更の機能をOFFにします。
WPS Hide Loginをインストール
管理メニューからプラグインのインストールで行えます。
インストール後、有効にします。
WPS Hide Loginの設定
管理者メニューの、「設定>一般」を選ぶと、右ペインの下に「WPS Hide Login」の項目が表示されるはずです。
「Login url」を、好きな文字列(ログインする際のパス)を指定します。
終わりに
対象のサーバ構成(今回のLightsail、Xサーバ等の他のサービス)によって、多少の手順が異なる部分はありましたが、プラグインだけで、これほど簡単に機能を実現できた事に驚きです!
WordPressとプラグインを組み合わせると、今まで大変だと思っていた事も、案外どうにかなるのかもしれませんね(^ω^)
この内容が参考になれば幸いです。
コメント