呑んだくれ改めレッツゴー痛風日記
2006-03-09
_ 今日から金芽米
気のせいかもしれないが、美味しい気がする。穀物感がする感じ。
_ またしてもサーバダウンそして復旧失敗。
また、Out Of Memoryによるサーバダウン発生。下記のようなエラーが大量にコンソールに吐き出されて、サーバが全く触れない状況になっていたり。
kernel: Out of Memory: Killed process 32101 (ruby). kernel: Out of Memory: Killed process 31794 (apache).
どうにも、爆弾リファラの攻撃により、apacheとrubyが火を噴いてしまっているみたい。俗に言うDoSですか。
とりあえずウンともスンとも言わないので手動で再起動。すると、なんとLILOが立ち上がらなくなってしまった。LIまで表示されるのですが、その後何も動かない。。。がちょーん。昨日、LILOのupgradeをしたときにどこか手順漏れがあったようです。どうにもできなくなっちゃった。。。CDブートでリカバろうとしたのだが、今度はキーボードが壊れているらしく、BIOSでbootメニューが選べない。十字キーが全く使えなくてどうにもならん。。。
まずはキーボードを手に入れなければ!ということで、仕事の帰りにヨドバシでHHKを買って帰る。思わぬ出費。
で、RedHatのインストールCDでboot: linux rescueしてレスキューメニュを動かしてみる。ブートローダの起動に失敗した場合の対処方法を参考にしながら、masyに助けを請いながら復旧してみる。ところが、ファイルシステムにインストールされているLinuxを認識できないらしく、ルートパーティションをマウントしてくれない。しょうがないのでrootなパーティションを/mnt/debianに手動マウント。liloとやってみる。 。。。LILOは動くようになった。が、
crc error --System halted
その後、再度liloの復旧時に今度はMBRのあるパーティションを/mnt/debian/bootにマウントする手順を加えて再実行。しかーし、やっぱり起動せず、やけくそになって手動で強制再起動すると、あれ?起動した!なぜなぜ?意味がわからん。。。
ともあれ動くようになったので、DoS対策をねってみることにした。鬼のようにリファラを投げてくるサーバに対して.htaccessでdenyすることにした。tdiaryで制御すると結局rubyプロセスが火噴いちゃうので、apache側でブロックしようと。SetEnvIf ディレクティブとDeny ディレクティブの書き方をみながら制御してみた。
SetEnvIf Referer "^http://.*\.example1\.com/" block_ref_1 SetEnvIf Referer "^http://.*\.example2\.com/" block_ref_2 deny from env=block_ref_1 deny from env=block_ref_2
こんな感じで書いてあげると、おお、ちゃんとガードしてますねぇ。access.logをtailしていると1秒間隔くらいでリファラが飛んできていますが、拒否設定したリファラからのアクセスは403を返却するようになりました。うむ。これでとりあえず様子をみてみよう。
ついで、liloを捨ててgrubを利用しようと思って、grubを入れてみたり。で、やっぱりインストールを間違って、またbootできなくなりました。まぁ、でもgrubは手動で設定直しながらbootできるので問題なくbootできましたが。。
う〜ん、ちょっと反省だな。もっとちゃんと調べて正しい知識を身につけなければ。
気のせいかもしれないが、水加減難しくありません?<金芽米<br>上手く炊けない...
たしかに、ちょっと難しいかもしれません。ちょっと水多めにしないとガシガシになっちゃうので。「ちょっと」という匙加減が微妙。