読者です 読者をやめる 読者になる 読者になる

OpenBSD の chroot された httpd に Tokyo Promenade をセットアップし…、できるわけなかった。

Tokyo Promenade OpenBSD

ここから最初の内容

俺なんかにできるわけなかった。

前提

OpenBSD に一緒についてくる httpd(8) は、 Apache1 系を fork したテオ様公認のセキュア httpd でありデフォルトで ServerRoot に対し chroot した状態で上がります。

やったこと

OpenBSDhttpd の ServerRoot が /var/www だとして。

  • Tokyo Cabinet と Tokyo Promenade を --prefix=/var/www でインストール

この時点で chroot /var/www して cgi-bin においた promenade.cgi を実行しても abort trap 。Tokyo Cabinet の各種バイナリも同じく abort trap 。 ( chroot /var/www せずに promenade.cgi を実行すると正しく HTML が STDOUT されてくることも確認)

  • zlib と bzip2 も各々 --prefix 相当のことをしてインストール

Tokyo Cabinet のドキュメントに、 zlib と bzip2 に依存してますとしっかり書いてあるので、これら各々も /var/www にインストール。

問題

chroot /var/www した環境だと、 bzip2 のバイナリがことごとく abort trap する。そりゃ libbzip2 もだめでしょね…。 bzip2 の依存をまったく解決できてないっぽく、これ以上追えないのでやめた。 rpm などパッケージ系のサイトでいくつか依存関係が見つかるが、到底すべて把握して追える量では無かった。すごい当たり前なものに依存してるっぽいんだけど、僕じゃあどれだかわからんぜよ…。ldd しても libc.so くらいだぜ…。

なぜ /var/www に chroot した状態で動くのか?といえばそれは /var/www 以下に入れるものをすべて把握してから入れろ。というのが OpenBSD httpd …、というよりテオ様の考えるセキュリティのあり方だと思うので、 OpenBSDアイデンティティの上で動こうとすれば追えない時点でその資格なしである。僕なんぞスタティックファイルをどっかで生成して /var/www/htdocs に追いてなさいよという話である。

平林様とテオ様はともに僕の崇拝の対象であるが、さすがに比べるとテオ様の方が好きであるので、ここは諦めることにしたい…のだが、今のできるエンジニアの間では自分のブログを Tokyo Promenade で立ち上げるのが一つのステータスであるので、妥協して OS を Ubuntu にするかどうか迷っているところです。 -u して httpd をあげるくらいなら( unsecure httpd とか言われる)、 OpenBSD を使わないのがテオ様の示す道であろう。

Q. OpenBSD をフロッピーブートしたいんですが?
A(テオ様). お前、バカなの?。お前は今の世の中でもっとも脆弱なメディアの上に入れようとしてるんだぜ。 Linux でも入れてろよ。

であるからして。