FreeBSD6をインストールしたときに、せっかくjail用のパーティションを切ったので、jailで遊んでみた。
手順は、man jail そのままと言っても良いくらい、マニュアルが詳しい。
jexecがあれば十分なので、jail上ではあえてsshdとかは動かさなかった。
手順は、man jail そのままと言っても良いくらい、マニュアルが詳しい。
- /etc/rc.confに、以下のような行を追加して、ネットワークインターフェイスにエイリアスをつける
ifconfig_rl0_alias0="inet 192.168.0.2 netmask 0xffffff00"
- make worldする
set D=/jail1 cd /usr/src make world DESTDIR=$D cd etc make distribution DESTDIR=$D mount_devfs devfs $D/dev cd $D ln -sf dev/null kernel
- マニュアルの、「ホスト環境の設定」のセクションにしたがって、ネットワークデーモンが新しいエイリアスのIPでLISTENしないようにする
jailのマニュアルにないものや、注意がいるものは以下- inetd
-a オプションでLISTENするIPが指定できるが、複数指定できない。うちの場合はFreeBSDがルータなので、2つのIPでLISTENして欲しいので困ってしまう。最終的にはinetdは全てのアドレスでLISTENするようにしてしまった。(jail 環境では、ホスト環境がinetdでサービスしているポートは使えないと言うこと) - sshd
/etc/ssh/sshd_config に、ListenAddress の行を追加する - courier-imapd
/usr/local/etc/courier-imap/imapdの、PORT=の行を追加するIPアドレス.143 を , で区切って並べる - squid
/usr/local/etc/squid/squid.conf の、http_portの行を追加する。(もともと、家庭内からしか使えないように記述してあったので変更なし) - apache
/usr/local/etc/apache2/httpd.conf の、Listen の行を追加する。IPアドレス:ポートを、複数行書く - samba
/usr/local/etc/smb.conf のinterface=にIPアドレスを書く。さらに、bind interfaces only = yes の行を追加。(これも、もともとやってあった) - postfix
/usr/local/etc/postfix/main.cf で、inet_interfaces の行に、, 区切りでIPアドレスを書く - named(BIND9)
/etc/namedb/named.conf で、options {} の中に listen-on { } を書き、その中にIPを; 区切りで書く - postgresql
/usr/local/pgsql/data/postgresql.conf の virtual_host行。(これももともとlocalhostだけだった)
- inetd
- jailでshの起動
jail /jail1 zaudev 192.168.0.2 /bin/sh
これで、jail上のシェルが起動するので、後はマニュアルに従って設定する- 空の/etc/fstabを作る
- 以下の内容で/etc/rc.confを作る
network_interfaces="" portmap_enable="NO" inetd_enable="NO" syslogd_flags="-ss" sendmail_enable="NONE"
- 設定が終わったら、ホストOSの起動時にjailが起動するようにする。ホスト側の/etc/rc.confに以下を追加する
jail_enable="YES" jail_list="jail1" jail_set_hostname_allow="NO" jail_jail1_rootdir="/jail1" jail_jail1_hostname="zaudev" jail_jail1_ip="192.168.0.2" jail_jail1_exec_start="/bin/sh /etc/rc" jail_jail1_exec_stop="/bin/sh /etc/rc.shutdown" jail_jail1_devfs_enable="YES" jail_jail1_fdescfs_enable="NO" jail_jail1_procfs_enable="YES" jail_jail1_mount_enable="NO"
これで、/etc/rc.d/jail start とかやればjailが起動する。
jexecがあれば十分なので、jail上ではあえてsshdとかは動かさなかった。
カテゴリ
FreeBSDトラックバック(0)
このブログ記事を参照しているブログ一覧: jailで遊んでみた
このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/1018
コメントする