WordPressのログイン画面へのアタックはすごい数が来ますよね。
プラグイン等でレポートを出すと、滅入るしパスワード破られたら嫌ダナーと思いますよね。
本来は複雑な長いパスワードにすればいいのですが、ちょっと苦手なんです。
そのため?過去にいくつかのワードプレスで作ったブログを乗っ取られた経験があります^^;
そこで、今回はログイン画面への不正アタックの対応として、自サーバーにプロキシーサーバーを立てて、そこから経由のみアクセスを出来るようにする対応を行いました。
CentOS7 だと
1.プロキシサーバー(Squid)を構築
1-1. Squidインストール
# yum -y install squid
1-2. Squidの設定
# vi /etc/squid/squid.conf
# And finally deny all other access to this proxy
http_access deny all
↓
#http_access deny all ← 下でパスワード認証の記述をするためコメントアウト
---ファイルの最後に追記
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/.htpasswd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl CONNECT method CONNECT
acl password proxy_auth REQUIRED
http_access allow password
http_access deny all
1-3. Squidの起動
# squid -z ← キャッシュディレクトリ作成
# systemctl start squid ← Squid起動
# systemctl enable squid ← squid自動起動設定
2. WordPressの管理画面のアクセス制限
2-1. .htaccessの編集
# vi /var/www/html/.htaccess
---ファイルの最初に追記
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from 127.0.0.1 ← 自サーバーからのアクセスのみ許可
Allow from localhost ← 自サーバーからのアクセスのみ許可
</Files>
※外部のプロキシーサーバーを利用する場合は
Allow from XXX.XXX.XXX.XXX
とする
これによりWordPressのログイン画面にアクセスが出来ないので、ぐっとアタックが減りました。
(WordPressが関知出来るレベルではゼロのなっています)
VPS等で自サーバーでプロキシーを立てられない人でも、外部の無料プロキシーサーバーを指定してアクセス制限をかけるといいと思います。
プロキシーサーバーで制限をかけるWordPressへのアタック対応はおすすめです。