[解決]DoS攻撃を受けていたのでIP制限した

   

数日前からこのブログのサーバが重い…

かと言って爆発的なアクセス数があるかというとそうでもない。

まあ普通にアクセスしてきているなら、キャッシュを返しているはずなので、そこまでサーバに負荷がかかる訳ではない。今まで記事がバズった時でもまあ普通にこなせているのに何故なんだよ…って思いつつも忙しかったので放置していたのですが、ちょっと時間が出来たので見てみたらこんな感じになってた。

==> /var/log/nginx/geeorgey.com.access.log <==
aaa.aaa.aaa.aaa - - [30/Jul/2015:21:55:49 +0900] "POST /wp-login.php HTTP/1.0" 403 3377 "-" "-" "-"
bbb.bbb.bbb.bbb - - [30/Jul/2015:21:55:49 +0900] "POST /wp-login.php HTTP/1.0" 403 3376 "-" "-" "-"
bbb.bbb.bbb.bbb - - [30/Jul/2015:21:55:51 +0900] "POST /wp-login.php HTTP/1.0" 403 3376 "-" "-" "-"
aaa.aaa.aaa.aaa - - [30/Jul/2015:21:55:51 +0900] "POST /wp-login.php HTTP/1.0" 403 3377 "-" "-" "-"
bbb.bbb.bbb.bbb - - [30/Jul/2015:21:55:54 +0900] "POST /wp-login.php HTTP/1.0" 403 3376 "-" "-" "-"
aaa.aaa.aaa.aaa - - [30/Jul/2015:21:55:54 +0900] "POST /wp-login.php HTTP/1.0" 403 3377 "-" "-" "-"
bbb.bbb.bbb.bbb - - [30/Jul/2015:21:55:57 +0900] "POST /wp-login.php HTTP/1.0" 403 3376 "-" "-" "-"
bbb.bbb.bbb.bbb - - [30/Jul/2015:21:55:59 +0900] "POST /wp-login.php HTTP/1.0" 403 3376 "-" "-" "-"
aaa.aaa.aaa.aaa - - [30/Jul/2015:21:56:02 +0900] "POST /wp-login.php HTTP/1.0" 403 3377 "-" "-" "-"
bbb.bbb.bbb.bbb - - [30/Jul/2015:21:56:06 +0900] "POST /wp-login.php HTTP/1.0" 403 3376 "-" "-" "-"

Oh...ロードアベレージも常時10超えという感じなのでmysqlが落ちたりしてた。

wp-login.phpにPOSTでアクセスが来ていてキャッシュは無意味。そりゃ負荷も上がるわ。と言うことでこの2つのIPをBANしたい。

基本ですね。iptableです。

iptables -I INPUT -s aaa.aaa.aaa.aaa -j DROP
iptables -I INPUT -s bbb.bbb.bbb.bbb -j DROP

とやって2つのIPをアクセス禁止にしたら、ロードアベレージが無事に下りました。めでたしめでたし。

オススメNginx本

nginx実践入門 (WEB+DB PRESS plus) 単行本(ソフトカバー) – 2016/1/16

nginxを現場で活用するための知識を、実践的なノウハウを交えて解説した書籍です。nginxのインストール方法や基本的な設定方法からはじめ、nginxを利用した「静的コンテンツ配信サーバ」「HTTPSサーバ」「Webアプリケーションサーバ」「大規模コンテンツ配信システム」の構築方法をそれぞれ詳しく紹介しています。後半ではnginxサーバのモニタリングやログの収集、そして軽量スクリプト言語Luaでnginxを拡張する方法について解説しているので、nginxをこれから使う方はもちろん、さらに活用したい方にもお勧めです。

 - Tips