先日、サイトが重くなってssh接続もままならない状態になってしまった。

サーバ会社からは、Dos攻撃を検知したので防御しましたという案内があり、
Dosかぁと思ったけど、対処方法がよくわからない。
ひとまず、Dosの方はサーバ会社が守ってくれるのかなと安心しておきました。

しかし、それでも重さは変わらず、
やっとつながったsshでサーバ(redhat)リモートログインして、
アクセスログを見ると、「Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)」というユーザエージェントのログが、
1秒間に平均10件。しかも、このサイトで一番重いページにアクセスしてくる。
このログはどうやら、百度(baidu.com)という検索エンジンのクローラがやっているようです。
アクセス元のIPアドレスはばらばらで、IP制限がかけられない状態。

まず、サーバがパンクしてしまうので、このアクセスを止めねばと、
iptablesの設定を行った。

sshログイン後、rootに切り替えて、
/sbin/iptables -I INPUT 1 -p tcp -d 接続先ドメイン名 --dport 80 -j DROP
※INPUTチェインの1番目に設定

このサイトへのhttp接続は全てシャットアウトするようになりました。
これで、サーバはかなり軽くなったのですが、もちろんサイトは誰も見れなくなっています。


それから、baiduのクローラだけをシャットアウトするために、httpd.cnfに設定を入れました。
参考サイト:http://nob-log.info/2013/09/09/deny-from-baidu/

そして最後に、iptablesに設定した内容を削除
/sbin/iptables -D INPUT 1
※INPUTチェインの1番目の設定を削除



なんやかんや調べて、失敗して試行錯誤してましたので、
発生から24時間後に復旧したので、
クローラをうまく防御できたのか、クローラの巡回が終わっただけなのか、分かりませんしょぼん


!!警告!!
サーバの知識が全然ないのに、専用サーバでサイトを運営しようとしないでください!
私のように、毎日泣きたくなります!