Since: 2003/9/24
Last Update: 2004/2/1
2004/2/1 更新
devfs の ruleset が jail 環境に適用されない件(下の方)ですが、とある方よりご指摘いただき解決しました。
/etc/rc.conf に
jail_www_devfs_enable="YES"とした場合、 /etc/defaults/devfs.rules の
[devfsrules_jail=4] add include $devfsrules_hide_all add include $devfsrules_unhide_basic add include $devfsrules_unhide_loginこういった jail 用の default ruleset が適用されます。
jail_www_devfs_ruleset="11" ↓ jail_www_devfs_ruleset="devfsrules_jail_www"わざわざ /etc/rc.d/jail や /etc/rc.subr の挙動がおかしいんじゃないかと調整してデバックメッセージを仕込んで再起動したりとか、 ルールセットを適用するスクリプトを書いたりする必要なんか無いわけです。
FreeBSD-5.0 から導入された devfs 。従来の /dev 以下はデバイスファイルがなければ自分で sh MAKEDEV hoge で作るのがあたりまえでしたが、 devfs では認識されたデバイスに必要なデバイスファイルが自動で「生えて」くるのです。
カコイイ! カコイイヨ!
jail とは、ホスト環境からディレクトリもプロセスも隔離した、もう一つの環境。
jail環境が汚染されても、ホスト環境には被害は及びません。しかもリソースの許す限りいくらでも環境を増殖できます。
それもイイ! イイヨ!
しかしここで、妙なところで妙なこだわりを持つ当サイト管理者が妙な事態に...
D=/home/jail/www cd /usr/src mkdir -p $D make installworld DESTDIR=$D cd etc make distribution DESTDIR=$D cp -Rp /usr/share/zoneinfo/Asia/Tokyo $D/etc/localtime cat /dev/null > $D/etc/fstab mount_devfs devfs $D/dev cd $D ln -sf dev/null kernelobject はホスト側アップデートのものをそのまま(笑)
/etc/rc.conf -------------------- # jail 用のIPアドレスをaliasするですよ〜 ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask 0xffffffff" # ここから jail の設定ですよ〜 jail_enable="YES" jail_list="www" jail_set_hostname_allow="NO" jail_socket_unixiproute_only="YES" jail_sysvipc_allow="NO" jail_stop_jailer="NO" jail_www_rootdir="/home/jail/www" jail_www_hostname="www.hogehoge.foo" # <-- 今さら隠してもねぇ jail_www_ip="xxx.xxx.xxx.xxx" jail_www_exec="/bin/sh /etc/rc" jail_www_devfs_enable="YES" jail_www_fdescfs_enable="NO" jail_www_procfs_enable="NO" jail_www_devfs_ruleset="11"security をほんのすこーし考えてみて jail 内から見える devfs のデバイスファイルをカット。
/etc/devfs.rules -------------------- [devfsrules_jail_www=11] add include $devfsrules_hide_all add include $devfsrules_unhide_basic"$devfsrules_hide_all", "$devfsrules_unhide_basic" は /etc/defaults/devfs.rules が参照されまっす。
> jls
JID IP Address Hostname Path
1 xxx.xxx.xxx.xxx www.hogehoge.foo /home/jail/www
をぉっ、いますよいますよ〜。# jexec 1 /bin/tcsh # hostname www.hogehoge.foo #侵入OK!(おい
# devfs rule -s 11 show 100 include 1 200 include 2ruleset はある...
# devfs -m /home/jail/www/dev rule -s 11 applyset # ls /home/jail/www/dev null random urandom@ zeroあ〜ん、ちゃんと効いてますぅ〜。
ってな感じで、いや〜はまりました。
この devfs in jail 、時間があったら追跡してみます。
ってこの設定したマシン、もう動いちゃってるんですけど〜。
みなさん見ているこのページ...