数日前から、突然このblogをホストしている仮想マシンのメモリ使用率が100%張り付き&ディスクがページファイルへのアクセスでほぼ無応答という状況に陥るようになった。
短期的な回避策としてVMを強制再起動していたところ、それはそれで、mySQLに格納されたMovableTypeのセッション情報のテーブルが破損するんで、自分自身もまともにログオンできなくなる始末。(mySQLの管理コンソールからtable repair mtdb.mt_session;を実行して都度対処)
一体どうなってんだよ?と調べてみたところ、、、
アクセスログに記録されている大量のMovableTypeの検索リクエスト(検索エンジンからやってきたという意味ではなくで、blogのキーワード検索機能のほう)のIPアドレスをwhoisで見てみると、軒並み中国のIPアドレスだった。
そもそも、IIS 7.5のサイトの設定で同時接続数の上限は既定のままにしていたから、何万という接続を許していたわけで、それはそれで無防備だったなと反省。とりあえず、個人のブログでしかないから、同時接続数は20まで減らした。(10だと、自分自身も管理者としてアクセスできなくなることがあったんで)
更に、確認できている範囲で、中国のIPアドレスをいくつか拒否リストに追加。ただ、アドレス範囲を追加しても追加しても、別のアドレスからやってくることがしばらく続いてエンドレスか?って思い始めた頃にあらかた止まった。
なんつっても、一発検索されるごとに内部ではperl.exeが起動されるわけで、同時に何発も検索された日にゃ、それぞれ70MBくらいメモリを食うperl.exeが150個以上起動されることもあったほど。大体、平常時は40前後しかプロセスが無いのに、おかしくなると200くらいまで跳ね上がるんだから。それも、メモリ不足でページファイルへのアクセスは止まらないし、次々検索のリクエストが来るしで、一度始まると絶対終わらない。ホント酷かった。いわゆるDoS攻撃だよね。個人のblogにそんなことして何になるっていうわけよ?
あと、中国からのアクセスをブロックしたことで、大量のコメントスパムもほぼ無くなった。コメントスパムの元も中国だったんだろうな。
コメント