FreeBSD Jails mit ezJail
Thursday, August 7th, 2008Wie in einem anderen Tutorial schon zu lesen war, befindet sich mein FreeBSD-System momentan bei Hetzner. Da Hetzner jedem Mieter weit mehr als eine IP spendiert, drängt sich der Einsatz von Jails noch viel mehr auf. Um die Jails zu erstellen und zu verwalten, bin ich mittlerweile auf das Jail Administration Framework ezJail umgestiegen.
Dieses Werkzeug erleichtert die Arbeit mit Jails wirklich enorm!
Zuerst muss ezJail natürlich installiert werden:
ezJail besteht aus dem Befehl ezjail-admin und dem rc-Script ezjail.sh, welches sich um das Starten und Stoppen der Jails kümmert.
Der erste Befehl, der in Bezug auf ezJail ausgeführt werden muss, ist ezjail-admin update. Beim ersten Aufruf bedeutet die Anweisung, dass ezJail ein Basejail erstellt mit dem die im weiteren Verlauf die Jails arbeiten. Wenn du ezjail-admin update zu einem späteren Zeitpunkt aufrufst, werden dadurch deine Jails aktualisiert. Für die Erstellung des Basisjails muss die Welt einmal neu gebaut werden, dementsprechend viel Wartezeit ist einzuplanen. In /usr/src müssen sich für dieses Unterfangen natürlich alle Quellen befinden. Die kannst du, sofern nicht vorhanden, über sysinstall nachinstallieren.
Also dann, los gehts:
Du kannst dir jetzt einen guten Film ansehen oder mal eine Stunde joggen gehen, das Bauen dauert eine ganze Weile.
Sobald das Basisjail erstellt wurde, kannst du dich daran machen Jails zu erstellen. Um direkt Warnmeldungen zu vermeiden, solltest du darauf achten, dass keine Dienste auf sämtlichen IP-Addressen lauschen. Bei meiner Installation sind die Kandidaten SSHd und Syslogd. Dem SSHd kann man dieses Verhalten mit einem Eintrag in /etc/ssh/sshd_config austreiben:
Hier solltest du die Haupt-IP-Addresse deines Servers eintragen. Syslogd kann man mit einem Eintrag in /etc/rc.conf beikommen:
Nach diesen Änderungen kannst du dich an das Jail-Erstellen machen.
ezjail-admin create web 10.0.0.4
Mit diesen beiden Anweisungen werden zwei Jails erstellt. Der Begriff nach create stellt den Namen der Jail dar. Als letzten Parameter wird eine IP erwartet.
ezjail-admin kann Jails selbstverständlich auch löschen.
Dieser Befehl würde das gerade erstellte Jail wieder entfernen. Das Jail befände sich aber weiter auf der Festplatte und könnte mit
wiederhergestellt werden. Willst du ein Jail endgültig löschen, genügt ein
Das Startscript für deine Jails befindet sich unter /usr/local/etc/rc.d/ und trägt den Namen ezjail.sh. Du kannst in /etc/rc.conf den Eintrag
hinzufügen, damit alle Jails bei jedem Systemstart geladen werden.
Zu dem Thema siehe auch:
ezJail - Offizielle Seite
