2008年3月30日

容疑者はmod-scurity

昨日(というか今日)、swapoffにしたけど、その後の様子を見ると負荷の高い状態はたびたび発生していた。
どうも、muninのグラフ更新や定時バックアップでも重たくなってるような...。

マザボ交換前とあまり変わらない環境なのに...ということで考えた結論は
mod-securityが重たい、というかウチの環境ではメモリが足りてない。

サービスがApacheだけならいいけど、Vmware上でWindows動いたりその他にも色々あるので、頻繁に来襲するスパマーを相手にするにはmod-securityを動かすメモリが足らず、スワップしていた...ように今更ながら思う。
DDR-SDRAMはDDR2に比べて倍以上なのでメモリ増設は却下。空きスロットもない。

ということで、Movabletypeのスパム対策として導入したmod-securityは、以前のmt-comments.cgiのリネームで他のスパム対策がほぼ不要になったこともあり、停止(´・ω・`)


その後は快調のようだ

2008年3月29日

スパムのせいではない

今朝、またLoadの上昇をWatchdogが検知して自動リブートがかかってた。

今まで散々Movabletypeのコメント/トラックバックスパム対策をしてきたが、サーバのリソース監視用グラフを見てたら、MTのバックエンドになってるMysqlは現在は暇そうなことがわかった。
でもスワップアウトはそれなりの頻度で発生してる...。次にあやしいサービスはairproxyか?自分用にしか使ってないので、認証がかなりザルなのがいけなかっただろうか...しかしairproxyのログも取っていなかったので詳細不明。。。とにかく対策

・認証情報を変更
・airproxyの動いてるポートをデフォルト8080から変更
・ログを取るようにする

とりあえずこれだけ。
問題の根本はスパム等の不正アクセスにやられそうなサービスで対策をしないと解決しないが、現象としては スワップ発生→Disk I/O増加 → 負荷上昇 →アボーン(´・ェ・`) なので、スワップを使わないことにしてみる。

・スワップが起きた後

# free total used free shared buffers cached Mem: 2068128 2015676 52452 0 5484 524528 -/+ buffers/cache: 1485664 582464 Swap: 2650684 1425136 1225548 # swapoff -a swapoff: /dev/hda5: メモリを確保できません

(;゚Д゚)(゚Д゚;(゚Д゚;)ナ、ナンダッテー!!
swapが大きすぎるらしい。サービスを再起動するなりしてswapを減らした後

# free total used free shared buffers cached Mem: 2068128 636600 1431528 0 4860 528492 -/+ buffers/cache: 103248 1964880 Swap: 2650684 57260 2593424 kinopio:/home/bippo# swapoff -a kinopio:/home/bippo# free total used free shared buffers cached Mem: 2068128 868008 1200120 0 5036 531584 -/+ buffers/cache: 331388 1736740 Swap: 0 0 0

たいしたサービスも提供していない自宅サーバだから、メモリ2GBとか余裕過ぎるはず。
これで問題が起きなければ、恒久的にswapナシにするか...というのはクールではない...

2008年3月22日

コメントスパム対策さらにその後

先日の対策でほぼ収束。問題なし。やはりCGIのリネームは強力らしい。

で、apacheのエラーログを見ていて、スパマー(bot?)がはいてるrefererが気になった。

[Sat Mar 22 06:26:15 2008] [error] [client 8.12.40.183] script not found or unable to stat: /xxx/cgi-bin/mt/mt-comments.cgi, referer: http://blog.lezele.org/bippo/archives/2007/05/post_448.html

このrefererのページを開くと、前の(MovableType3)テンプレートになってた。で、そのページ中のコメント欄はリネーム前のmt-comments.cgiに向いている...。
おかしいと思って調べていたら、MovableType4.1ではデフォルトで、ファイル名を「hoge-fuga.html」とハイフンで生成し、今までは「hoge_fuga.html」のようにアンダースコアだったらしい。再構築しても以前生成したHTMLは残ったままのようだ。

アンダースコアのファイルは全て削除することにする。でも、どうせリンクされてないサイトだけど404になるのはイヤだったので、アンダースコアのファイルへのアクセスは全て現在のハイフンの方へリダイレクトさせる。で、Apache側でリダイレクトするために以下の1行追加。

RedirectMatch (.*)_(.*).html$ $1-$2.html

ずいぶんと適当だけど、これでよさそう。

2008年3月18日

さらにスパム対策

MTへのコメントやらトラックバックスパムは大量同時アクセスによるものが多いので、Apache2で同時アクセスを制限するモジュールを導入した。

インストールはこれだけ

# apt-get install libapache2-mod-cband # a2enmod cband # /etc/init.d/apache2 restart

とりあえず設定はこれだけ↓Virtualhostディレクティブに書いた

CBandRemoteSpeed 1024kb/s 3 2

また様子見


2つのことを一緒にやってはいけない
のが定石なんだけど。もうスパムの嵐はヤッテラレン

2008年3月17日

スパム対策その後

前にApache2のmod-securityによる対策を行ったが、大量のspamが来ると
swap発生 → I/O待ち → 負荷上昇 → またspam
のループでフリーズしてしまうことがたびたびあった。

で、どうにも我慢できなかったのでこちらを参考に対処をしてみた
MT4を運営開始する前に設定しておくと良い9つの項目

これでしばらく様子見
さらばspam