Jails sind eine Besonderheit von FreeBSD. Man kann es vielleicht als Mischung aus chroot und Virtualisierung bezeichnen. Hierbei wird im Grunde die Verzeichnisstruktur von FreeBSD nachgebildet und die nötigen Dateien verknüpft. Man kann so Dienste voneinander abgrenzen und die Systemsicherheit erhöhen.

EzJail ist ein tolles Tool mit dem sich Jails auf einfachste Art und Weise einrichten und administrieren lassen. In diese Jails werden wir später unseren Mail- und Webserver installieren. Zudem werden wir in jeder Jail den SSH-Dienst laufen lassen, sodass wir uns die etwas komplizierte Handhabung vom Hostsystem aus sparen können. Was auch ein interessantes Feature ist, dass man sogenannte "Flavours" anlegen kann, die als Vorlage für anderen Jails dienen können. So kann man bspw. eine Vorlage für Webserver-Jails erstellen usw. Im Gegensatz zur Basisjail werden die Daten aus Flavours nicht gemeinsam verwendet.

  1. Als erstes müssen wir unserem Interface weitere IP-Adressen zuweisen. Über diese internen IP-Adressen können diese später erreicht werden. Wir haben diese ja bereits bei unseren Firewall-Regeln berücksichtigt. Um nun unserem Interface IP-Adressen zu zuweisen, tragen wir folgendes in unsere '/etc/rc.conf' ein:

    ifconfig_lnc0_alias0="10.0.0.1/32"
    ifconfig_lnc0_alias1="10.0.0.2/32"

  2. Du kannst nun entweder den Server neustarten um die IPs zu zuweisen oder du führst diese Befehle zusätzlich einmal von Hand aus, das sieht dann so aus:

    # ifconfig lnc0 10.0.0.1/32 alias

    # ifconfig lnc0 10.0.0.2/32 alias

  3. Wir müssen uns jetzt erstmal den Quelltext von FreeBSD besorgen um die Jails zu bilden. Hierfür brauchen wir ein  Programm, dass wir mit folgendem Befehl installieren:

    # cd /usr/ports/net/cvsup-without-gui/ && make install clean

  4. Jetzt müssen wir das Programm noch konfigurieren, was allerdings wirklich kein Problem darstellen dürfte. Wir führen dazu folgende Befehle aus:

    # cp /usr/share/examples/cvsup/standard-supfile /etc/source-supfile

    Wir müssen diese Datei jetzt, nachdem wir sie an die richtige Stelle kopiert haben, noch anpassen. Folgende Zeile muss geändert werden:

    *default host=CHANGE_THIS.FreeBSD.org auf

    *default host=cvsup2.de.FreeBSD.org

    Dann ändern wir noch folgende Zeile:

    *default compress auf

    #*default compress

    Nun müssen wir noch die Betriebssystem-Version angeben, bei uns ist das die 6.2. Daher ändern wir die Zeile wie folgt ab:

    *default release=cvs tag=RELENG_6_2

  5. Nach dem Abspeichern müssen wir natürlich das Verzeichnis '/usr/src' aktualisieren:

    # cvsup /etc/source-supfile
  6. Jetzt installieren wir EzJail mit folgendem Befehl:

    # cd /usr/ports/sysutils/ezjail/ && make install clean

  7. Wir müssen nun EzJail erstmal konfigurieren. Das machen wir in der Datei '/usr/local/etc/ezjail.conf'. Die Kommentare erklären eigentlich alles, daher will ich das hier nicht nochmal wiederholen.
  8. Wir erstellen nun die Basisjail, die später in alle anderen Jails eingebunden wird. Das dauert, also besorgt euch ein gutes Buch oder nen Film oder nen Kaffee oder zwei oder drei

    # ezjail-admin update -b

    Mit diesem Befehl müssen wir auch später die Basisjail updaten, wenn wir das Betriebssystem upgedatet haben.