サーバ高負荷への対処

時は2013年11月のこと。

我がレンタルサーバが酷く重くなってしまい、XoopsCubeへのログインもままならないのに気付いた。

元々は「banされているのを解除してくれ」というメールがきっかけだった。心当りの無い情報だったので早速調べようとしたところ、自分もログインできないほどの高負荷だったわけだ。うん、気付くの遅いよね。反省します。急いで対応します。

アクセスログを確認したところ、以前使っていた掲示板用cgiにDOS攻撃のようなPOSTが来ていた。どこかのサイトへのリンクを含んだSPAMのようだが、頻度や数が途方もない。これは「サイバー攻撃だ」と呼べるレベルのものだが、焦ったところで仕方は無い。使わないcgiを、リンクを切ったとは言え古いままで放置していた自分が悪い。

このcgiはテキストファイルを書き換えるタイプなので、ファイル読み書きが頻発することで負荷がかかってしまう。データベースにアクセスするタイプではないから、逆にWebサーバのみがやられることになる。とは言え、レンタルサーバだし同居しているユーザさんにも迷惑をかけてしまっていることだろう。

どうせ使っていないんだからと、まずはcgi本体をとっとと削除する。大量アクセスに対しては「404 Not Found」だけが返ることになり、負荷が一気に下がる。まずはこの状態で様子を見よう。

エラーが戻るようなら、SPAMアクセスもそのうち減ってくるだろう。

—- そして約半年が過ぎ —-

その後、高負荷状態は起きずサーバは安定を見せている。エラーログを確認したところ、それでもまだまだアクセスが来ている。人間だったら飽きているはずだけど、一度設置されたSPAMロボットが粛々と動き続けているんだろう。

ヒット数はかなり下がっているから、今度はエラーログが埋まらないように工夫をしてみよう。

ファイル名に合わせてApacheからエラーを返すようにすればエラーログには残らないようだ。ということで、mod_rewriteでステータス「410 Gone」を返すようにしてみた。掲示板cgiのファイル名は「keijiban」として.htaccessに反映したサンプルを書くとこんな感じだ。

RewriteEngine on
RewriteCond %{REQUEST_URI} keijiban [NC]
RewriteRule ^.*$ – [G,L]

実際には必ず同じURLめがけてくるわけでもないので、もうちょっと色んなパターンを置いてあるんだけどね。

 

記事を共有:Email this to someoneShare on FacebookShare on Google+Tweet about this on Twitter
taquinoy

taquinoy について

ネットワークサービスやビジネスのことや食い物のことや憤慨していることや、もしかしたら誰かの何かの役に立つかもしれないようなことを掲載しています。
カテゴリー: IT and IS パーマリンク

コメントを残す

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