Table of Contents

jail設定

起動・停止関連

Jailを起動するスクリプトを作成する。
/root/Toolsを作成し、以下のファイルを作成する。

ファイル名 用途
start_jail.shjail起動スクリプト
stop_jail.shjail停止スクリプト
hosts.normaljail停止時のjailer向けhostsファイル
hosts.jailjail起動時のjailer向けhostsファイル

start_jail.sh

jail起動スクリプトを作成する。

#!/bin/sh

service ntpd stop
ifconfig bridge0 cerate up
ifconfig epair0 create
ifconfig epair1 create
ifconfig epair2 create
ifconfig epair3 create

ifconfig bridge0 addm epair0a addm epair1a addm epair2a addm epair3a

ifconfig epair0a up
ifconfig epair1a up
ifconfig epair2a up
ifconfig epair3a up

route delete -net 0.0.0.0
ifconfig vtnet0 down
ifconfig epair0b inet 192.168.100.253 netmask 255.255.255.0
route add -net 0.0.0.0 192.168.100.254

cp /root/Tools/hosts.jail /etc/hosts

jail -c fw
jail -c web
jail -c desktop

service ntpd start

stop_jail.sh

jail停止スクリプトを作成する。

#!/bin/sh

service ntpd stop

jail -r desktop
jail -r web
jail -r fw

route delete -net 0.0.0.0

ifconfig epair0a destroy
ifconfig epair1a destroy
ifconfig epair2a destroy
ifconfig epair3a destroy
ifconfig bridge0 destroy

cp /root/Tools/hosts.normal /etc/hosts

ifconfig vtnet0 inet <Global IP> netmask <subnet mask>
route add -net 0.0.0.0 <さくらのVPS 指定>

kldunload if_bridge
kldunload if_epair

service ntpd start

hosts.*

jailer向けhostsファイルとして以下のファイルを作成する。

jail設定

/etc/jail.confを作成し、各prisonerの定義を行う。

exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.clean;
mount.devfs;
vnet = new;
allow.mount;
allow.mount.procfs;
allow.mount.devfs;
allow.sysvipc;

persist;
path = "/usr/jail/$name";
fw {
        vnet.interface = vtnet0, epair1b;
}

web {
        vnet.interface = epair2b;
}

desktop {
        vnet.interface = epair3b;
}

prisoner作成

ハンドブックに従い、prisonerを作成する。

格納場所作成

# mkdir -p /usr/jail/fw
# mkdir -p /usr/jail/web
# mkdir -p /usr/jail/desktop

展開

# cd /usr/src
# make installworld DESTDIR=/usr/jail/fw
# make distribution DESTDIR=/usr/jail/fw
# make installworld DESTDIR=/usr/jail/web
# make distribution DESTDIR=/usr/jail/web
# make installworld DESTDIR=/usr/jail/desktop
# make distribution DESTDIR=/usr/jail/desktop