16.4. Einrichtung und Verwaltung von Jails
Zurück | Kapitel 16. Jails | Weiter

## 16.4. Einrichtung und Verwaltung von Jails

Einige Administratoren unterscheiden zwei verschiedene Jail-Arten: „Komplette“ Jails, die ein echtes FreeBSD darstellen und Jails für einen bestimmten „Dienst“, die nur einer bestimmten Anwendung oder einem Dienst (der möglicherweise mit besonderen Privilegien laufen soll) gewidmet sind. Dies ist aber nur eine konzeptuelle Unterscheidung, die Einrichtung einer Jail bleibt davon gänzlich unberührt.

`#` `setenv D `/hier/ist/die/jail`` `#` `mkdir -p $D` `#` `cd /usr/src` `#` `make buildworld` `#` `make installworld DESTDIR=$D` `#` `make distribution DESTDIR=$D` `#` `mount -t devfs devfs $D/dev`

Das Festlegen des Installationsorts für das Jail eignet sich am besten als Startpunkt. Hier wird sich die Jail innerhalb des Host-Dateisystems befinden. Eine gute Möglichkeit wäre etwa `/usr/jail/`name_der_jail``, wobei `name_der_jail` den Hostname darstellt, über den die Jail identifiziert werden soll. Das Dateisystem unterhalb von `/usr/` stellt normalerweise aussreichend Platz für eine Jail zur Verfügung (bedenken Sie, dass eine „komplette“ Jail ein Replikat einer jeden Datei der Standardinstallation des FreeBSD-Basissystems enthält.

| Wenn Sie bereits ihre Systemanwendungen mittels `make world` oder `make buildworld` neu erstellt haben, können Sie diesen Schritt überspringen und die Systemanwendungen in die neue Jail installieren.
| Dieser Befehl wird den Verzeichnisbaum mit allen notwendigen Binärdateien, Bibliotheken, Manualpages usw. erstellen.
| Der `distribution`-Befehl lässt make alle benötigten Konfigurationsdateien installieren, es werden also alle installierbaren Dateien aus `/usr/src/etc/` in das Verzeichnis `/etc` der Jail installiert (also nach `$D/etc/`).

Das Einhängen des devfs(8)-Dateisystems innerhalb der Jail ist nicht unbedingt notwendig. Allerdings benötigt fast jede Anwendung Zugriff auf wenigstens ein Gerät. Es ist daher sehr wichtig, den Zugriff auf Devices aus der Jail heraus zu kontrollieren, da unsaubere Einstellungen es einem Angreifer erlauben könnten, in das System einzudringen. Die Kontrolle über devfs(8) erfolgt durch die in den Manualpages devfs(8) und devfs.conf(5) beschriebenen Regeln.

Ist eine Jail einmal erst erstellt, kann sie durch jail(8) gestartet werden. jail(8) benötigt zwingend mindestens vier Argumente, die im Abschnitt Abschnitt 16.3.1, „Was ist eine Jail?“ des Handbuchs beschrieben sind. Weitere Argumente sind möglich, um beispielsweise die Jail mit den Berechtigungen eines bestimmten Benutzers laufen zu lassen. Das Argument ``command`` hängt vom Typ der Jail ab; für ein virtuelles System ist `/etc/rc` eine gute Wahl, da dies dem Startvorgang eines echten FreeBSD-Systems entspricht. Bei einer Service-Jail hängt dieses von der Art des Dienstes ab, der in der Jail laufen soll.

Jails werden häufig mit dem Betriebssystem gestartet, da der `rc`-Mechanismus von FreeBSD dafür eine einfach zu realisierende Möglichkeit bietet.

1. Eine Liste der Jails, die mit dem Betriebssystem gestartet werden sollen, wird in die Datei rc.conf(5) geschrieben:

   jail_enable="YES" # Set to NO to disable starting of any jails jail_list="`www`" # Space separated list of names of jails

   ### Anmerkung:

   Die Namen der Jails in der `jail_list` sollten nur alphanumerische Zeichen enthalten.

2. Für jede Jail in der `jail_list` sollten in rc.conf(5) einige Einstellungen vorgenommen werden:

   jail_`www`_rootdir="/usr/jail/www" # jail's root directory jail_`www`_hostname="`www`.example.org" # jail's hostname jail_`www`_ip="192.168.0.10" # jail's IP address jail_`www`_devfs_enable="YES" # mount devfs in the jail jail_`www`_devfs_ruleset="`www_ruleset`" # devfs ruleset to apply to jail

   Beim Start einer in rc.conf(5) konfigurierten Jail wird das `/etc/rc`-Skript der Jail (das "annimmt", dass es sich in einem kompletten System befindet) aufgerufen. Für Service-Jails sollten die Startskripte der Jail durch das Setzen der Option `jail_`jailname`_exec_start` entsprechend angepasst werden.

   ### Anmerkung:

   Eine vollständige Liste der Optionen findet sich in der Manualpage zu rc.conf(5).

Das `/etc/rc.d/jail`-Skript kann zum manuellen Starten und Stoppen der Jail genutzt werden, wenn ein Eintrag in `rc.conf` angelegt wurde:

`#` `/etc/rc.d/jail start `www`` `#` `/etc/rc.d/jail stop `www``

Es gibt momentan keinen sauberen Weg, eine jail(8) zu stoppen. Dies liegt daran, dass die Kommandos zum sauberen Herunterfahren eines Systems innerhalb einer Jail nicht ausgeführt werden können. Der beste Weg eine Jail zu beenden ist es daher, innerhalb der Jail den folgenden Befehl auszuführen (alternativ können Sie auch jexec(8) von außerhalb der Jail aufrufen):

`#` `sh /etc/rc.shutdown`

Weitere Informationen zu diesem Thema finden Sie in der Manualpage jail(8).

Zurück | Nach oben | Weiter
16.3. Einführung | Zum Anfang | 16.5. Feinabstimmung und Administration

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.