wp-login.phpにアタックがキター(゚∀゚)

キターっていうか、ずっと前から来てたんだけども、最近はネタもないので対策を載せてみようかと思った。
そいでは、ちょっとLogwatchの一部を載せます。

403 Forbidden
/wp-login.php: 290 Time(s)
/wp-login.php: 130 Time(s)
/wp-login.php: 209 Time(s)
403 Forbidden
/wp-login.php: 115 Time(s)
/wp-login.php: 2452 Time(s)
/wp-login.php: 1884 Time(s)

こんな感じで多いでは2,000回以上のアタックが来ている訳ですが、被害は0です。
これはたけけんがすごい訳ではなく、対策を作った先人達の知恵なのです。
いまのとこ対策と言えることとしては3つほどしてます。

簡単に紹介したいと思います。

まずWordpressのプラグインから。

Simple Login Lockdown

これはいわゆる、何回かログインをミスるとしばらくYouをLockするっていうやつです。
でも最低ラインでも5回なんで、たけけん的には3回で設定したいなあっていうか・・・。

ただこれはサーバーの管理権限がなくても使えるのでおすすめなんだなあ。
そして、ログがForbiddenなのはこいつのせいやね~。

余談ですがWordpressなので、DBへガシガシと書き込みます。
DBのテーブルに載っていくので、phpmyadminから引っかかったIPの解除とか確認ができますのですじゃ。
ちょっと覗いたら、見ろ!IPアドレスがゴミのように見えるーっていう状態でした。

いっぱいあったってことです。

 

続いてfail2ban、こいつはログを監視してヒットしたらbanします。
そのままやんけ~というものですが、不正アクセスにはfail2banはとても有効です。
wp-loginへのアタックは海外でも盛んなようで、っていうか海外から来ているのばっかりですけどw

海外サイトで見つけたconfファイルを少しいじって流用してます。
これはサーバーの管理権限が必要だけど、簡単に導入できるのでVPSとかでおすすめですじゃ。

sudo cat /etc/fail2ban/jail.conf

[apache-wplogin]
enabled  = true
filter   = apache-wplogin
action   = iptables-multiport[name=apache-wplogin, port="http,https", protocol=tcp]
logpath  = /var/log/httpd/access_log
maxretry = 3
bantime  = 86400

sudo cat /etc/fail2ban/filter.d/apache-wplogin.conf 

failregex = ^<HOST>\ \-.*\"POST\ \/wp-login.php HTTP\/1\..*\"

ごらんのようにこのままだとPOSTが3回続くとbanしちゃいます。

そんな摂政なって方は設定を変えればだいじょうぶ。

ちなみにfail2banをリロードすれば解除されるはずなんですが、何が原因か分からなくて困ってて、リロードしても制限が解除されなくなってしまってテスト時にちょっと困った状態になってますww
SYSLOGが絡んでるようなんだけど、ちょっと謎。

 

最後にmod_dosdetector、はてなの田中慎司さんという方が作ったApacheのモジュールで閾値を設定しておいて、閾値に絡んで来るとフラグが立ってリライトで飛ばします。

閾値は2段階で設定できます。

これはWP-LOGINへというかDoS攻撃の対策で、国産の超モジュールです。
もちろん管理権限が居るのでVPSとかにおすすめ。

sudo cat /etc/httpd/conf/httpd.conf | grep dosdetector

LoadModule dosdetector_module /usr/lib64/httpd/modules/mod_dosdetector.so


sudo cat /etc/httpd/conf.d/dosdetector.conf 

DoSDetection On
DoSPeriod 5
DoSThreshold 20
DoSHardThreshold 35
DoSBanPeriod 10
DoSTableSize 100
DoSIgnoreContentType jpeg|gif|png|image|application|javascript|css

 

セキュリティを高くして、楽しいサーバーライフを過ごそう。

というか、root権限なしでどこまで戦えるのかって感じですが、プラグインだとあまりにたくさん来た時にDBへの負荷が上がっちゃうような気がするから、やっぱりサーバー側で戦わないといけないのかなあなんて思ったり。

となると.htaccessなのかしら。

 

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です