Re: Ports mittels script in jails installieren

From: Dura Zell <dura-zell(at)freenet.de>
Date: Tue, 24 May 2005 12:56:26 +0200

Oliver Fromme schrieb:

>Dura Zell <dura-zell(at)freenet.de> wrote:
> > Ich habe mir einige jails gebaut in denen ich meine Dienst laufen lassen
> > will.
> > Um einen Port in diesen jails zu installieren habe ich mir ein kurzes
> > Shellscript geschrieben:
> > --------
> > #!/usr/local/bin/bash
> >
> > . /etc/jailhouse-distribute.conf
> >
> > clear
> > cd /usr/ports/$1
> > for i in `seq -s $jailstart -e $jailcount `
> > do
> > echo "Installiere /usr/ports/$1 in jail ${jailname[$i]}
> > (${jailpath[$i]})"
> > if [ ${jailactive[$i]} = "yes" ]; then
> > make clean install DESTDIR=${jailpath[$i]}
>
>DESTDIR würde ich für sowas nicht verwenden, weil das
>Package-Management sonst mit der PKGDB durcheinanderkommt
>(es würde versuchen, den Port im Host-System zu registrie-
>ren anstatt im Jail). Man könnte das vielleicht durch
>Definition weiterer make-Variablen hinbiegen, aber das
>artet dann doch in ziemliche Bastelei aus und ist poten-
>tiell unsicher.
>
>Ich habe es bisher immer so gemacht, daß ich im Host-System
>(oder in einem speziellen Package-build-Jail) ein Package
>des gewünschten Ports gebaut habe (»make package«). Das
>habe ich dann in die gewünschten Ziel-Jails kopiert und
>dort in einer im jail laufenden Shell (!) per pkg_add in-
>stalliert. Einziger Nachteil dieser Lösung ist, daß der
>Port dabei auch im Host-System (bzw. im Package-build-Jail)
>installiert wird, aber man kann es ja nötigenfalls hinter-
>her wieder entfernen (»pkg_delete«).
>
> > jailname[1]="proxy" # Symbolischer name
> > jailpath[1]="/jail/eigen/proxy" # absoluter pfad
> > jailhostname[1]="proxy.domain" # hostname
> > jailip[1]="192.168.9.1" # IP Adresse
> > jailexec[1]="/bin/sh /etc/rc" # Startbefehl
>
>Ist dieses Jail für einen einzelnen Daemon gedacht (Squid,
>Apache-Proxy o.ä.)? In dem Fall ist Dein Jail völliger
>Overkill, wenn Du da ein komplettes FreeBSD-System drin
>hast, das Du per /etc/rc hochfährst.
>
>Stattdessen würde ich in das Jail-chroot _nur_ das hinein-
>installieren, was der Daemon _wirklich_ braucht. Das sind
>wohl eine handvoll Libraries und ein paar Dateien in /etc,
>/var, /dev und vielleicht ein bißchen mehr. Auf jeden Fall
>ein winziger Bruchteil eines kompletten Basis-Systems. Und
>dann wird das ganze nicht per /etc/rc gestartet, sondern es
>wird einfach nur der Daemon direkt gestartet (oder ein
>kleines Wrapper-Skript, das das tut).
>
>Das spart nicht nur Unmengen an Platz, sondern reduziert
>auch die Start-Zeit des Dienstes in dem Jail drastisch.
>Darüberhinaus ist es sicherer, da zahlreiche Dinge, die für
>Exploits verwendet oder irgendwie mißbraucht werden könn-
>ten, in dem Jail gar nicht existieren (z.B. keine Shell,
>kein /bin/rm usw.).
>
>Das nur als kleiner Tip und Empfehlung. :-)
>
>Gruß
> Olli
>
>
>
Hi!

Danke für Deinen Hinweis. Ich habe mir gerade eine Paketjail gebaut und
teste die Möglichkeiten mit dem "make package" aus.
Der Nachteil an dieser Methode ist allerdings das ich das Paket dennoch
in jeder einzelnen jail haendig installieren muss. Mir ging es vorrangig
darum diesen Prozess durch mein Script zu automatisieren. Also eine
Loesung die mir das Paket / den Port nach anstoßen des Scripts
automatisch in die jails installiert.
Gibt es da eine Loesung? Die package Methode erspart mir zumindes die
Kompilierzeiten...

Zu den jails:
In der jail sollen, wenn alles läuft, der Squid und ein Mailproxy
"wohnen". Das ganze ist ein privater Rechner, mehr zum Basteln und aus
Spass an der Freude, kein wirklich produktives System, eher eine Art
aufgebohrter Router. Für die jails habe ich mich entschieden weil ich
da, wenn etwas schiefgeht, einfach eine Backupjail zurueckkopieren kann.
Ich versaue mir mein Hostsystem nicht wenn ich etwas falsch mache. Als
Linuxumsteiger ist das IMO auch sinnvoll ;) Was den Plattenpatz angeht
mache ich mir keine Sorgen. Die Datenplatte ist gross genug um dreimal
so viele jails zu fahren als ich jetzt habe und wenn das Teil 20 statt
10 Sekunden braucht um hoch zu fahren... Was solls, eigentlich will ich
das garnicht runterfahren :) Auch die Rechnerleistung spielt eine eher
untergeordnete Rolle. Der Rechner ist ein Dual PIII(at)500 MHz, der wuerde
sich sonst eher langweilen.

Davon abgesehen fand ich den Gedanken mit den jails faszinierend genug
um mir das mal anzusehen. Wie gesagt, Spaß an der Freude.
Ich danke dir trotzdem, oder besser gesagt gerade deshalb, fuer den
Tipp, das war ein Aspekt den ich im Rahmen meines kleinen Projektes
voellig ausser Acht gelassen habe. Falls ich mal dazu komme sowas bei
anderen einzurichten (glaub ich aber nicht...) werde ich daran denken. :)

Mit freundlichen Gruessen,
Sven Mertens

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 24 May 2005 - 12:57:28 CEST

search this site