宇宙怪獣トラックバックスパム襲来

もはや業界では大きな脅威となってしまったトラックバックスパムがまた来ました。ラジコンやガンダムSEED DESTINYの感想のサイトにも、online pokerを勧めてくれるんですね。

MT-Blacklistで書き込みは抑制されているので安心していたのですが、サーバーからの応答がありません。pingには反応します。sshがかかりません、、、と思ったら重いだけでした。しかしその重さ尋常じゃありません。なんとload average 53以上!!

こんなの初めて!とか恥ずかしがっている場合じゃないんですよ。なんとかしなきゃ。

とりあえず httpd再起動。しかしその直後にまたもやmt-tbが動き出してます。もう諦めて

#chmod -x mt-tb.cgi

しました。つまりトラックバックは機能させてません。

電車の中でリッジレーサーズをやりながら色々と考えました。本格的な対応はともかく、まずはApacheのパラメータチューニングをすることに。

今回は結果的にDoS攻撃に近いため、少なくとも死なない程度にしてみます。そこでhttpd.confのうち、以下のパラメータを調整しました。

Apacheプロセス生成

105,106c105
< #Timeout 300
< Timeout 60
---
> Timeout 300
119c118
< MaxKeepAliveRequests 20
---
> MaxKeepAliveRequests 100
125c124
< KeepAliveTimeout 10
---
> KeepAliveTimeout 15
148c147
< StartServers 5
---
> StartServers 8
174c173
< MaxRequestsPerChild 4
---
> MaxRequestsPerChild 0

MaxRequestsPerChild ディレクティブは、 個々の子サーバープロセスが処理できるリクエストの最大数を設定します。 MaxRequestsPerChild で指定された数のリクエストを処理すると、子プロセスは終了します。 なお、0 を指定すると、プロセスは限りなく動きつづけます。

MaxRequestsPerChild により、最大数を 0 以外の値に設定することは、二つの有益な効果があります:

* (予期せぬ) メモリリークによってプロセスが消費する メモリの総量を制限することができます。
* プロセスの実行時間制限が設けられることにより、 サーバの負荷低減時にプロセスの数を減少させることを助けます。



やはり無限はいけません。ということでとりあえず上記のようなパラメータで試してみます。

で今load averageをみたら24!?
今度はコメントスパム攻撃です、、、orz