ホスト環境
ports からインストール
前提環境
HOST: 192.168.X.1
jail: 192.168.X.3
ezjail.conf を設定
# cd /usr/local/etc/ # cp ezjail.conf.sample ezjail.conf # vi ezjail.conf ezjail_jaildir=/usr/local/jails ← 適当に修正する ezjail_jailtemplate=${ezjail_jaildir}/newjail ezjail_jailbase=${ezjail_jaildir}/basejail ezjail_sourcetree=/usr/src ezjail_ftphost=ftp.jp.freebsd.org ← 日本のサイトに変更 ezjail_mount_enable="YES" ezjail_devfs_enable="YES" ezjail_devfs_ruleset="devfsrules_jail" ezjail_procfs_enable="YES" ezjail_fdescfs_enable="YES"
Jail 環境の雛形作成
# ezjail-admin update -b # ezjail-admin update -i
rc.conf の設定
ezjail の有効化、新しい仮想マシンに仮想 IP アドレスを割り当てる。
# vi /etc/rc.conf defaultrouter="192.168.X.1" hostname="HOSTNAME.example.com" sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" ezjail_enable="YES" ifconfig_re0_alias0="192.168.X.3 netmask 255.255.255.255"inetd_enable="YES"inetd_flags="-wW -C 60 -a 192.168.X.1"# /etc/netstart ← ネット設定の再読込
sysctl.conf の設定
# vi /etc/sysctl.conf security.jail.allow_raw_sockets=1 ← jail 内から ping や traceorute が使える security.jail.set_hostname_allowed=0 ← jail システムでホスト名の変更不可
ssh 設定
jail 側に送られるパケットまで拾ってしまうので、HOST 側のアドレス (192.168.X.1) で Listen するように設定。
# vi /etc/ssh/sshd_config ListenAddress 192.168.X.1
Jail 環境の作成
# ezjail-admin create JAILNAME 192.168.X.3 (中略) /usr/local/jails/JAILNAME/./basejail Warning: Some services already seem to be listening on IP 192.168.X.3 This may cause some confusion, here they are: root ntpd 1163 28 udp4 192.168.X.3:123 *:* Warning: Some services already seem to be listening on IP, (including 192.168.X.3) This may cause some confusion, here they are: dhcpd dhcpd 2904 5 udp4 *:67 *:* root syslogd 2871 9 udp4 *:514 *:* root sshd 1200 4 tcp4 *:22 *:* root ntpd 1163 20 udp4 *:123 *:* root mpd4 999 10 tcp4 *:5005 *:* root apcupsd 986 5 tcp4 *:3551 *:* #
ezjail 開始
# /usr/local/etc/rc.d/ezjail.sh start ezjailConfiguring jails:. Starting jails: JAILNAME. # jls JID IP Address Hostname Path 1 192.168.X.3 JAILNAME /usr/local/jails/JAILNAME #