Jails mit ezjail erstellen

Manga

Well-Known Member
Ich bin zufällig bei bsdforums auf ezjail[1] gestossen.
Wem asg sehr gutes Jails-Tutorial noch zu aufwändig ist, für den ist vielleicht ezjail das richtige.
Der Vorteil von ezjail ist die äußerst einfache Erstellung und das Updaten der jails.
Ausserdem sind die frisch erstellten jails gerade mal ~1.5 MB groß, da alle Verzeichnisse nur
aus einer Basejail verlinkt werden.

ezjail ist in den ports, liegt aber auch schon vorkompiliert als pakage vor.

Nach der installation mit pkg_add –r, oder einer anderen Installationmethode der Wahl und einem rehash,
stehen ezjail.admin, ezjail.sh + manpages zur Verfügung.


Mit

Code:
ezjail-admin update

wird erst einmal die Basisjail erstellt.
(das kann ein wenig dauern (~2-3h), da als erstes make world aufgerufen
wird – wer sein Hostsystem schon upgedated hat kann das mit der
Option –i übergehen und den Vorgang deutlich beschleunigen)

danach lassen sich mit

Code:
ezjail-admin create Jailname JailIP

die Jails erstellen z.B.:

Code:
ezjail-admin create web1 192.168.2.101
ezjail-admin create web2 192.168.2.102


Die IP´s sollten schon vorher den Interface(s) zugewiesen worden und
in der rc.conf eingetragen sein:
(ifconfig_fxp0_alias0="inet 192.168.2.101 netmask 255.255.255.255")
(ifconfig_fxp0_alias1="inet 192.168.2.102 netmask 255.255.255.255")

nach dem Kopieren der Dateien wird man netterweise gewarnt, wenn irgendwelche Dienste laufen
die sich an alle IP´s des Systems binden, wie z.b. bind oder sendmail.
Mehr dazu in asg´s Jail-howto[2] unter „Problematische Dienste“.

Mit

Code:
 /usr/local/etc/rc.d/ezjail.sh

lassen sich die so erstellten jails nun starten, stoppen und neustarten.
Als Argument nimmt ezjail.sh den Namen entweder einer oder mehrerer Jails.
Wenn keine Argumente mitgegeben werden, sind alle Jails betroffen.
Um die Jails automatisch bei Systemstart mit zu starten genügt der Eintrag:

Code:
ezjail_enable="YES“

in der rc.conf des Hostsystems.


Mit ezjail-admin update lassen sich dann nach den nächsten update des Hostsystems alle jails bequem auf einmal aktualisieren.


Um nun zb einen Webserver in einer jail zu starten,
sollten noch einige Dateien der jail angepasst werden:

in der /usr/jails/web1/etc/resolv.conf

Code:
nameserver     IP-des-DNS-Servers

und damit der apache automatisch startet
in der /usr/jails/web1/etc/rc.conf

Code:
apache_enable=“YES“

danach sollte sich vom Hostsystem mit

Code:
jexec JID pkg_add –r apache

der Webserver installieren lassen.
Die JID lässst sich mit ‚jls’ herausfinden.

Beim nächsten Neustart läuft der apache nun in einer jail.


Für Mehr Info´s siehe:
[1]http://erdgeist.org/arts/software/ezjail/
[2]http://www.grunix.de/doku/howto/jails/index.html
 
Wow, danke für den Tip. Klingt superinteressant. Ich habe mich bislang nicht mit Jails beschäftigt, wollte da demnächst nochmal genauer einsteigen.
 
Hmm, tönt ja sehr verlockend. Möchte mal wissen was asg dazu meint? Schade habe ich keine Testmaschine vorrätig im Moment ;)
 
es funzt auf 6.1 auf 2 maschinen. Eine intel und eine amd. Lief auf beiden ohne probleme.
 
Bei mir funktioniert es auch soweit unter einem aktuellen fbsd 6.1.

Ich bekomme beim starten nur immer:
Code:
 ezjailConfiguring jails:.
Starting jails:ifconfig: interface alias does not exist
obwohl ich vorher "ifconfig sis0 alias inet 192.168.0.10 netmask 255.255.255.255" ausgeführt und mit ifconfig überprüft habe, dass der alias auch wirklich vorhanden ist.

Beim stoppen sehe ich:
Code:
 ezjailStopping jails: irisifconfig: illegal option -- i
usage: ifconfig [-L] [-C] interface address_family [address [dest_address]]
                [parameters]
       ifconfig interface create
       ifconfig -a [-L] [-C] [-d] [-m] [-u] [-v] [address_family]
       ifconfig -l [-d] [-u] [address_family]
       ifconfig [-L] [-C] [-d] [-m] [-u] [-v]
.

Ich schnall es zwar nicht ganz, aber es scheint trotzdem alles zu funktionieren. Eigentlich sind es ja nur ein paar scripte die ezjail ausmachen aber ich habe dort leider nix gefunden was mit ifconfig zu tun hat.
 
Von der ezjails Homepage:

News
FreeBSD's /etc/rc.d/jail is broken in 6.1-RELEASE preventing more than one ezjail to start up. Due to an unrelated bug this issues an error message for an attempted ifconfig, which can be ignored. Fix: upgrade your system to RELENG_6_1. There are very few things ezjail could do to workaround that problem without major structural changes
.
 
irgendwie läuft das doch nicht alles so perfekt:
Es wird immer nur eine jail so gestartet. Erst nach einem Neustart der jail erscheint sie in jls. Die jails werden wohl auch nicht richtig beendet, da das sys auch nach einem Neustart meint, dass sie noch laufen, weil die jail_NAME.id noch existiert.
 
Zurück
Oben