*Debian-chrootメモ **メリット -立ち上げているサービス(SMTPやHTTPD)が攻撃され、万が一侵入されても、chrootされている仮想ROOT内のみ影響を受けることになり、他のサービスを含めシステム全体にまで影響を与えることがない。 -システムが小分けにして管理されるため、パスの検索等による待ち時間が短く、結果としてシステム全体が軽快に動作する。 **デメリット -各chrootディレクトリ内でaptを実行しないといけなくなる。 **debootstrap -Debianでchroot環境を構築するツール。 # debootstrap woody ./chroot-dir を実行することにより、パッケージがダウンロードされchroot環境が作成される。 -Debootstrapにより作成された環境は、余計なパッケージも多く含まれているため、 # chroot /chroot-dir apt-get remove --purge hogehoge によりできるだけ削除するのがよいと思われる。 ちなみにインストールは # chroot /chroot-dir apt-get install hogehoge -ちなみに僕が調べてみた最小構成(依存関係で怒られない状態)は以下のとおり apt base-files base-passwd bash bsdutils debianutils diff dpkg e2fsprogs fileutils findutils grep gzip hostname libc6 libcap1 libdb3 libncurses5 libpam-modules libpam-runtime libpam0g libstdc++2.10- login mawk mount ncurses-base ncurses-bin perl-base sed shellutils slang1 sysvinit tar textutils util-linux **BindMount -PostfixやIMAP等でHomeディレクトリがchroot-jail内から見えないといけない場合、BindMountをしなければならない。 -chrootする前に実行する必要あり # mount --bind /home /chroot-dir/home **procfs -procをマウントする必要あり。 # chroot /chroot-dir mount -t proc none /proc **syslogについて -woodyのsysklogdはリモートログを収集しようがしまいがudp/514を開いてしまうため、親ルート側のsyslogのポートと競合してしまう。 -syslog-ngを使用することにより、ポートが開かなくなるため、この問題を回避できる。 -/chroot-dir/etc/syslog-ng/syslog-ng.confの内容は以下のとおり options { long_hostnames(off); sync(0); }; source src { unix-dgram("/dev/log"); internal(); }; destination loghost { udp("127.0.0.1" port(514)); }; log { source(src); destination(loghost); }; -親ルート側の/etc/syslog.confでリモートからログを受信するために/etc/init.d/sysklogd内でSYSLOGD="-r"と設定する。(woody/sid双方とも同様) **init-script -上記のことをふまえた上で、起動スクリプトは以下のような感じで。 ROOT=/chroot-dir case "$1" in start) mount --bind /home $ROOT/home chroot $ROOT mount -t proc none /proc chroot $ROOT /etc/init.d/syslog-ng start chroot $ROOT /etc/init.d/postfix start ;; stop) ..... esac