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 allAuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName MembersOnly
AuthType Basic
require valid-userSatisfy Any
</Files>
ErrorDocument 403 “Not acceptable”
これて、許容IPなら制限なし、その他IPからの場合Basic認証の画面がポップアップ。リソースも使われない対策できた。