Erstellen eines Jails unter FreeBSD

Dieses ist eine kleine und daher leider auch unvollständige Beschreibung des Aufbaus eines Jails unter FreeBSD.

Konfiguration anpassen

vim /etc/jail.conf
test {
    host.hostname = "test.jail";
    ip4.addr = "lo1|127.0.0.101";
    ip4.addr = "wlan0|192.168.123.101";
    path = "/jail/test";
    mount.devfs;
    exec.clean;
    exec.start = "/bin/sh /etc/rc";
    exec.stop = "/bin/sh /etc/rc.shutdown";
}

Jail-Umgebung installieren

mkdir - /jail/test
cd /jail
fetch http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/12.1-RELEASE/base.txz
tar xjvf base.txz -C test

Basiskonfiguration des Jails:

vim /jail/test/etc/rc.conf
# jail hostname
hostname="test"

# jail ip address and routing
ifconfig_wlan0="inet 192.168.123.101 netmask 255.255.255.0"
defaultrouter="192.168.123.1"

# Start or stop services
cron_flags="$cron_flags -J 15"
sendmail_enable="NONE"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
syslogd_flags="-c -ss"
ipv6_activate_all_interfaces="NO"
sshd_enable="NO"

Nameserver konfigurieren:

cp /etc/resolv.conf /jail/test/etc

Für den Fall, dass die resolv.conf vom Hostsystem “anders” aussieht, kann die Konfiguration auch per Hand angepsst werden.

vim /jail/test/etc/resolv.conf
nameserver 192.168.123.1

Zeitzone setzen:

cp /usr/share/zoneinfo/Europe/Berlin /jail/test/etc/localtime

Host-System anpassen

Damit die Jail-Umgebung eigenständig startet, muss in der /etc/rc.conf dieses eingeschaltet werden.

vim /etc/rc.conf
jail_enable_="YES"

Jail starten

service jail start test
Starting jails: test.

Mit jls können sich die laufenden Jails angezeigt werden.

jls
JID  IP Address      Hostname                      Path
  1  192.168.123.101 test                          /jail/test

Um in das neue Jail zu “springen”, kann jexec verwendet werden.

jexec test /bin/tcsh