WordPress Brute Force Attacksにリソース使われない対策

4月頃から、WordPressを標的とする Brute Force Attacks が激しい!

自分のサーバも度々リソース使い果たされ、数度サービス停止に追い込まれました。

対策がとっても、更に大規模なアタックが押し寄せる。

WordPress公式サイトには、一応対策が書いてある。

http://codex.wordpress.org/Brute_Force_Attacks

しかしそれらの対策は、ハッキングされる危険が減るもので、サーバのリソースがたくさん使われることが変わりがない、リソース使い果たされる危険がまたある。

ネットでいろいろ調べるところ、ログイン自体を制限する方法が有効と考えられる。

早速.htaccess に下記のようにIP制限してみる。

RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^118\.9\.70\.195$
RewriteRule ^(.*)$ – [R=403,L]

なぜか効かない!そこでApacheの設定で、ログイン自体を制限する試みる。

<Files ~ “^wp-login.php”>
Order allow,deny
Deny from all
Satisfy All
</Files>
ErrorDocument 403 “Not acceptable”

確かアタックに効く!リソースも使われない。けど、使いたいときは、外さないとログインできない!

一層Basic認証と、IP制限を組み合わせしてみた。最終の形はこうでした。

<Files ~ “^wp-login.php”>
Order deny,allow
Allow from 118.9.70.195
Allow from 192.168.1
Deny from all

AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName MembersOnly
AuthType Basic
require valid-user

Satisfy Any
</Files>
ErrorDocument 403 “Not acceptable”

これて、許容IPなら制限なし、その他IPからの場合Basic認証の画面がポップアップ。リソースも使われない対策できた。