====== jail 構築 ======
===== /etc/rc.conf =====
portmap_enable="NO"
rpcbind_enable="NO"
fsck_y_enable="YES"
jail_sysvipc_allow="YES"
===== /etc/sysctl.conf =====
デフォルトのカーネルの設定ではjail環境の中からraw_socketやbpfを使用した通信はできないようになっています。\\
以下の1行を追加してシステムを再起動すると、jail環境からraw_socketやbpfが利用できないという制限を解除できます。
security.jail.allow_raw_sockets=1
===== イメージファイルを作成 =====
dd if=/dev/zero of=/dskN/xx.xx.xx.xx.dsk bs=1M count=10000
(ex. 10GB case)
===== イメージファイルをマウント =====
mdconfig -a -t vnode -f /dskN/xx.xx.xx.xx.dsk -u X (X...number)
bsdlabel -w mdX auto
newfs mdXc
mkdir /vds
mkdir /vds/xx.xx.xx.xx
mount /dev/mdXc /vds/xx.xx.xx.xx
===== Jail設定 =====
setenv D /vds/xx.xx.xx.xx
cd /usr/src
mkdir -p $D
make world DESTDIR=$D
cd etc
make distribution DESTDIR=$D
mount_devfs devfs $D/dev
mkdir $D/usr/ports
mount_nullfs -o ro /usr/ports $D/usr/ports
cd $D
ln -sf dev/null kernel
====== 簡単な操作方法 ======
===== ゲスト一覧確認 =====
# jls
JID IP Address Hostname Path
68 xx.xx.xx.xx fqdn.fqdn.com /vds/xx.xx.xx.xx
===== ゲスト環境へ入る =====
jail /vds/xx.xx.xx.xx testhostname xx.xx.xx.xx /bin/sh
===== 停止 =====
killall -TERM -j JID
===== 起動 =====
/usr/sbin/jail /vds/xx.xx.xx..xx fqdn.fqdn xx.xx.xx.xx /bin/sh /etc/rc
===== 一時停止 =====
/sbin/ifconfig rl0 inet xx.xx.xx.xx netmask 255.255.255.255 -alias