WordPressのログインURLは「wp-login.php」と決まっています。

WordPressは今では大手企業でもよく使われていますが、彼らはセキュリティの意識も高いです。
で、ログインURLも見てみるとやはりURLを変えており流石だなと思うわけですが、

そもそもなぜWordPress管理画面のログインURLを変更するのかというとブルートフォースアタックによるセキュリティ破りから防御するためです。

ブルートフォースアタックとは正しい組み合わせが見つかるまで、ログイン資格情報の「推測」を網羅するWEBサイトの最も典型的なセキュリティ侵害です。
あなたのWordPressの管理画面のログインURLがhttp://yoursitedomain/wp-login.phpと分かっている状態ですと、毎日のようにブルートフォースアタックにさらされている可能性があります。

そして万が一にもそのままハッカーに管理画面にアクセスされてしまえば、WEBサイトのファイルを改ざんされたり個人情報の流出につながったりと今までの蓄積を一瞬でパァーにするような重大な被害に及ぶかもしれませんよね。
なのでそもそもログインURLから謎なものにしておけば、ブルートフォースアタックにさらされるリスクもある程度軽減されるかと思われますのでこのカスタマイズはしておくといつか良いことがあると思います。

さて、まずはプラグインを使わずにログインURLを変更する方法から見ていきましょう。

プラグインを使わずに管理画面ログインURLをカスタマイズする

まずはカスタマイズ前に必ずバックアップを取るのを忘れないでください。何かしら記述を誤ったときにすぐに元の状態に戻せるようにするためです。メモ帳などに保存しておくのもいいでしょう。

まずは下記コードを丸ごとコピペして.htaccessに追記してください。
.htaccessはWordPressをインストールしたルートドメインの直下にあります。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^enter/?$ /wp-login.php?45jfvo9204 [R,L]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^dashboard/?$ /wp-login.php?45jfvo9204&redirect_to=/wp-admin/ [R,L]
RewriteRule ^dashboard/?$ /wp-admin/?45jfvo9204 [R,L]
RewriteRule ^register/?$ /wp-login.php?45jfvo9204&action=register [R,L]
RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php
RewriteCond %{HTTP_REFERER} !^(.*)yoursitedomain/wp-admin
RewriteCond %{HTTP_REFERER} !^(.*)yoursitedomain/wp-login\.php
RewriteCond %{HTTP_REFERER} !^(.*)yoursitedomain/enter
RewriteCond %{HTTP_REFERER} !^(.*)yoursitedomain/dashboard
RewriteCond %{HTTP_REFERER} !^(.*)yoursitedomain/register
RewriteCond %{QUERY_STRING} !^45jfvo9204
RewriteCond %{QUERY_STRING} !^action=logout
RewriteCond %{QUERY_STRING} !^action=rp
RewriteCond %{QUERY_STRING} !^action=register
RewriteCond %{QUERY_STRING} !^action=postpass
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^.*wp-admin/?|^.*wp-login\.php /not_found [R,L]
RewriteCond %{QUERY_STRING} ^loggedout=true
RewriteRule ^.*$ /wp-login.php?45jfvo9204 [R,L]
</IfModule>

次にyoursitedomainを自分のサイトのドメインに変更します。yoursitedomainの部分は全部で5箇所あるのですべて置き換えてくださいね。

これだけの作業によりログイン画面が、
http://yoursitedomain/wp-login.php
がログイン不可になって
http://yoursitedomain/wp-login.php?45jfvo9204
でログインが可能となります。

45jfvo9204のところは自分の好きな覚えやすい文字列に置き換えてみるといいでしょう。

「あれ?.htaccessが見つからな~い」ってときはWordPressの管理画面から.htaccessにアクセスできるこのようなプラグインが便利です。FTPソフトを利用する手間が省けます。

https://wordpress.org/plugins/wp-htaccess-editor/

Xserverならサーバーパネルから.htaccessを設定することも可能なはずです。
tcd201610210001

WordPressのログインURLを変更するプラグイン

プラグインを用いれば上記の作業を一瞬で可能とするので時間短縮の面ではとても便利です。ただしプラグイン自体にもセキュリティの脆弱性を孕んでいることは覚えておかなければなりません。

WPS Hide Login


https://wordpress.org/plugins/wps-hide-login/
ログインURLを変更するならこれだけで十分なプラグインです。管理画面>一般>設定からログインURLを変更できるようになります。
tcd201610210002

iThemes Security


https://wordpress.org/plugins/better-wp-security/
セキュリティを強化する上では高機能すぎるプラグインです。
これはログインURLを変更する以外にも多数の機能があります。

「iThemes Security」でできること
・データベースの定期バックアップ登録
・管理者が管理画面を利用しない時間帯に管理画面をロック
・ログインURLのスラッグを変更
・ユーザーエージェントを判別してbotが投稿するスパムコメントを拒否
・拒否したいユーザー及びbotのIPアドレスを指定して接続拒否
・管理画面ログイン試行回数の制限

これだけでかなり充実したプラグインであることが分かります。

まとめ

以上となりますが、これだけでもけっこうセキュリティ効果はありそうですよね。
だがしかしデフォルトでのユーザー名の「admin」の使用を避けることや、WordPressやプラグインのバージョンを最新にしておくことも重要なようです。
詳しくは弊社で以前に書いたこちらの記事を参考にしていただけますと幸いです。

また下記記事で紹介しているプラグインも多機能で、かつ設定も簡単ですので、よろしければご覧ください。