WordPressの管理画面を見ていたら、驚くような数字が出ていました。
それは、悪意のあるログイン試行でした。

どこの誰かはわからないけれど、1万回以上もログインを試されてたと言うことです。
私が書いているへなちょこブログでも、乗っ取られたら大変です。
そこで、 WordPressのログイン画面のセキュリティを高めるために知識のないおばちゃんでもできた対策をお話しします。
WordPressログイン画面のセキュリティ対策
最初はプラグインは入れる方法が簡単だと思ったので、さっそくプラグインを入れるようにしました。導入したプラグインは、SiteGuardです。
きちんと設定したのに、翌日からログインできなくなってしまいました。
ログインページを開くと、 404で返すのです。
その時は、SiteGuardプラグインを無効化して、管理画面に入ることができました。
ところが、翌日も同じように、 404が表示されました。
ログインのURLをSiteGuardで変更して、その後ログインしてもやはり404を返します。
で、SiteGuardを諦め他の方法を探すようにしました。
.htaccessの書き換え
プラグインを使わない方法をググっていたら、.htaccessの書き換えで対策できるということがわかりました。
.htaccessに下記を付け加えましょう。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^enter/?$ /wp-login.php?password [R,L]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^dashboard/?$ /wp-login.php?password&redirect_to=/wp-admin/ [R,L]
RewriteRule ^dashboard/?$ /wp-admin/?password [R,L]
RewriteRule ^register/?$ /wp-login.php?password&action=register [R,L]
RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php
RewriteCond %{HTTP_REFERER} !^(.*)domainname/wp-admin
RewriteCond %{HTTP_REFERER} !^(.*)domainname/wp-login\.php
RewriteCond %{HTTP_REFERER} !^(.*)domainname/enter
RewriteCond %{HTTP_REFERER} !^(.*)domainname/dashboard
RewriteCond %{HTTP_REFERER} !^(.*)domainname/register
RewriteCond %{QUERY_STRING} !^password
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?password [R,L]
</IfModule>
上記のコードの内下記の2点を必ず修正して.htaccessファイルに書き足してください。
- passwordの部分は自分が決めたパスワードを記入します。
- domainnameには、あなたのサイトのドメインを記入します。このblogの場合は、ai7.infoです。
設定完了したら、ログインURLは下記になります。
https://あなたのドメイン/wp-login.php?設定したpassword
passwordをlove12345に設定した場合は、
https://ai7.info/wp-login.php?love12345になります。
いかがですか?きちんとログインできたでしょう?
SiteGuardで404が表示されてログインできない対策方法
SiteGuardプラグインを入れると、自動的に.htaccessに書き込まれる記述が原因で404が表示されログインできない状態になっているのです。
ftpで.htaccessをダウンロードします。
そして、下記の記述を探してください
#==== SITEGUARD_ADMIN_FILTER_SETTINGS_START
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^404-siteguard - [L]
RewriteRule ^wp-admin/css - [L]
RewriteRule ^wp-admin/images - [L]
RewriteRule ^wp-admin/admin-ajax\.php - [L]
RewriteRule ^wp-admin/load-styles\.php - [L]
RewriteCond %{REMOTE_ADDR} !^○\.○\.○\.○$
RewriteRule ^wp-admin 404-siteguard [L]
</IfModule>
#==== SITEGUARD_ADMIN_FILTER_SETTINGS_END
#SITEGUARD_PLUGIN_SETTINGS_END
すると、ログインできるはずです。
WP 悪意のあるログイン試行への対策 まとめ
今日は、悪意のある論文試験への対策としてpluginと.htaccessを書き換える方法を紹介しました。
SiteGuardで、 404が表示されloginできないことも解消されたので、とても使い勝手が良くなっています。
自分のブログを守るためあなたも悪意あるログイン試行への対策をしてみませんか?

