PR
WordPress

WordPressのログイン画面URLを変更する

ログイン画面のセキュリティー WordPress

今回はブログ運営関係の備忘録です。

ブログ運営でもセキュリティーって、やっぱり大事ですよね。WordPressを使用する中でも、セキュリティー強化のためにできることって、少なくありません。

その中の一つが、ログイン画面URLの変更です。

なぜログイン画面URLの変更が必要か?

ログイン画面は、いわばブログ管理のための玄関です。

WordPressの場合、このログイン画面のURLは、デフォルト状態で、

【サイトURL】/wp-login.php

または、

【サイトURL】/wp-admin


となっているため、そのサイトを知っている人であれば、誰でもそこまでたどり着くことができます。もちろん、ユーザー名とパスワードという鍵があるので、それを知る人しかその先へは進めません。

しかし、いわゆるブルートフォース攻撃(総当たり攻撃)という最も典型的なセキュリティー侵害は頻繁に行われているため、そこを突破されるリスクはいつでも存在するということです。実際、私自身も、ほとんど使っていなかった自分のTwitterのアカウントが乗っ取られるという被害に遭った経験があります。ショックでした。これは恐らくブルートフォース攻撃によるものだと思います。

それで、ログイン画面URLを変更することで、そもそもブログ管理の玄関にたどり着きにくくして、セキュリティーを高めようというのが今回の目的です。

もちろん、このブログのような弱小サイトが狙われることなどはないと思いますが、それでもセキュリティー対策をするに越したことはありません。

というわけで、ログイン画面URLを変更することとしました。

ログイン画面URLの変更方法

ログイン画面URLの変更方法には、以下の2種類があります。

  • プラグインを使用する方法
  • プラグインを使用しない方法

プラグインを使用する方法

プラグインを使用すると、初心者でも簡単にログイン画面URLを変更できるようです。

使えるプラグインの例
  • WPS Hide Login
  • SiteGuard WP Plugin

私は自分でできることは自分でしたいタイプなので、まだプラグインを使った方法を試したことはありません。

プラグインを使用しない方法

一方、プラグインを使用しない方法もあります。

通常、自分では触らないようなファイルを触ることになるので、バックアップを取りながら進めることをおすすめします。

まずは下記コードをそのままコピーして.htaccessというファイルの末尾に貼り付けます。

この.htaccessというファイルは、大抵WordPressをインストールしたルートドメインの直下にあります。

ファイルの内容を変更する際は、.htaccessのコピーを作り、ファイル名を.htaccess.bak などに変更して、バックアップしておきましょう。こうしておけば、もしも失敗しても、.htaccess.bak を再び .htaccess に変更すれば、元に戻すことができます。

.htaccess の末尾にコピペするコード(出典:tcd-theme.com

<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>

ちなみにこのコードは、TCD様のサイトを参考にさせていただきました。ありがとうございます!!

コピー後は、【yoursitedomain】の部分を自分のサイトドメインに変更しましょう
全部で5カ所あります。

以上のように.htaccess を変更すれば、ログイン画面のURLは以下のように変更されているはずです。

https://【サイトURL】/wp-login.php?45jfvo9240

あとは、青字の45jfvo9240を自分の好きな任意文字列に変更しておけばOKです。
6カ所あります。

以上、お疲れさまでした。

タイトルとURLをコピーしました