Brute force attackとの戦い(レンタルサーバー Apache編)

事前に@wokamotoさんの”Brute force attack との戦い”でユーザ名がadminでのログイン対策などは行っていても”/?author=1”でユーザー名を特定されてガシガシ色んなところから来てはるので対策。

 

レンタルサーバに設置してあるWordPressからログインエラーのメールがやたらときていたので、「Crazy Bone (狂骨)」プラグインでエラー出まくっている状況をチェック

スクリーンショット 2015-01-15 10.30.33するとIPは偽装されて毎回変わってるのでプラグインの「Limit Login Attempts」ではロックできないので少し困った状況、、、

ユーザーエージェントが”Netscape Navigator 5.0″って事らしいので少し乱暴ですが、
.htaccessでユーザーエージェント”Netscape”のアクセスを拒否してみる事にしてみました。

 

対策その1 (Apacheで.htaccessが使える場合)

SetEnvIf User-Agent "Netscape" ng_ua
order allow,deny
allow from all
deny from env=ng_ua

が、
まだログインアタックが続くのでApacheのログを見てみるとエラーログインが記録されたIPのユーザーエージェントを見てみると
“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”
って事でグーグルさんを偽装しているようなのでww乱暴な方法でMozillaやGoogleを”.htaccess”で拒否するのも難しい状況^^;
なので、クライアントさん含めてログインするのはMacしかないので、wp-login.phpへのアクセスをMac(Apple)以外のユーザーエージェントは拒否してみました。

※WebサーバーがNginxの方は@wokamotoさんの”Brute force attack との戦い”の”ユーザーエージェントで拒否する”を参考にされると良いと思います。

対策その2 (Apacheで.htaccessが使える場合)

<Files ~ "wp-login\.php$">
SetEnvIf User-Agent "Apple" ok_ua
order deny,allow
deny from all
allow from env=ok_ua
</Files>