Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2008-12-11 [長年日記]
_ 小さくて、できれば thread で動く httpd
apacheの
apache2-mpm-worker - Apache HTTP Server - high speed threaded modelが頭に浮かぶかもしれない。しかし、組み込みのような限定された環境だともっと小さいものが好ましい。
apt-get source boaして、Debian GNU/Linux Lenny に含まれている boa のソースを読んだが、単一のプロセスでソケットの多重化をしており、cgiのみ fork する実装であった。
sourceforge.orgを検索してみて、nullhttpdを見つけた。よさげかと思ったが、開発が終了しているようであり、(http://packetstormsecurity.org/0309-advisories/nullhttpd.xss.txt)な指摘があるが、直されていない。
2009.08.11更新 sourceforgeの本家(http://sourceforge.net/projects/nullhttpd/)と(http://aluigi.altervista.org/search.php?src=nullhttpd)で指摘されているのは同じなのか別なのか、テストしてから使った方がよさそう。本家の方は、404のXSSについて直してあるのと、DNS lookup に問題がある件はなおしているとtrackerに上がっているが、指摘している問題とぴったり呼応しているか(bad request 400問題とリソースが食いつぶされる件)は、わたしにはよくわからない。なのでテストがいるだろうなと。
lighttpd は良い選択だと思う。FAST CGI や PHP も使える。待ち受けのプロセスの数も制限できる。デフォルトは0なので、単一スレッド単一プロセスでソケット通信待ちの多重化をしているのだろう。
apt-get source lighttpdして、server.cを読んでみると良い。1005行目あたりから、
#ifdef
が多いのと、でかいので読みづらいと思うけど。
_ 100M ether のスピードでパケットキャプチャーするには
昔のいわゆる馬鹿ハブは、パケットキャプチャーし放題だった。しかしスイッチングハブが普及してきたおかげで、100Mのスピードでパケットキャプチャーする環境を作るには、それなりの機器を導入しなくては、パケットをキャプチャーすることが難しくなってきた。
アライドテレシス CentreCOM GS905LF スイッチ レイヤー2スマートスイッチ/レイヤー2スイッチ(GbE) 0368Rを使えば、比較的安価に100Mのスピードでも、ノートPCなどのNICが100M以上でCPUが追いつけばデータをとり続けることができる。安価といっても、今の時点では1万円を超えていますけど。
もう一つ、上記のスイッチを使って良い点は、電源がACアダプターじゃない。ただし3足のプラグです。この手の製品を買おうかと思っている人なら3足プラグを2足に変換するプラグはいっぱいもっているだろうけど、持ってない場合は少し慌てるかもしれないので先に書いておきます。
Linux では wireshark や tcpdump を使ってネットワークの研究/通信のデバッグ/怪しげなパケットが流れていないかの確認ができます。