Re: Jail Konzept

From: Jens Rehsack <rehsack(at)liwing.de>
Date: Sat, 08 Feb 2003 16:16:02 +0100

Gistolero wrote:
> Hallo!
>

> 1.) Auf dem Loopback Interface werden zwei zusaetzliche virtuelle
> Adressen angelegt:
> 127.0.0.2 (NFS read-only)
> 127.0.0.3 (NFS read-write)
>
> Folgende Verzeichnisse werden erstellt:
>
> /jail/jails/test/etc
> /jail/jails/test/dev
> /jail/jails/test/bin
> ...
> /jail/jails/test/var
>
> Die Dateien in /dev, /tmp und /var werden manuell angelegt.

Also ich habe mir ein ~/bin/sysupdate script erstellt, dass nach einem
make buildworld die benötigten Dateien in die Jails installiert. Dadurch
sind die Jail-Binaries vom System unabhängig. Kann man sehen, wie man
will, aber ich denke, die "Verschwendung" von 200K auf einer 40G Platte
ist echt vernachlässigbar.

>
> 2.) Bis auf /etc wird der Rest mit NFS read-only gemountet:
>
> mount -t nfs 127.0.0.2:/bin /jail/jails/test/bin
> ...
> mount -t nfs 127.0.0.2:/usr /jail/jails/test/usr

> 4.) Da FreeBSD alle Ports in /usr/local installiert, muss nur noch
> dieses Verzeichnis mittels NFS read-write "drueber" gemountet werden:
>
> mkdir -p /jail/nfs/test/usr/local
> mount -t nfs 127.0.0.1:/jail/nfs/test/usr/local
> /jail/jails/test/usr/local
>
> Waehrend der Installation von Ports muss das Ports Verzeichnis
> natuerlich auch RW gemountet werden. Anschliessend kann die Jail
> Umgebung gestartet und die benoetigten Ports installiert werden.
>

env WRKDIRPREFIX=/var/tmp make install clean
sollte dem RW-Mount Bedürfnis Abhilfe schaffen können. Ich erlaube
generell keine RW-Mounts über NFS für Jails.

Im Zweifel kann entweder das DISTFILES-Verzeichnis noch umgesetzt werden
oder aber auf dem Host ein 'make fetch-recursive' ausgeführt werden.

> 5.) Die eigentlichen Daten, die z.B. vom Apache angezeigt werden sollen,
> koennen ebenfalls mit NFS in die Jail Umgebung gemountet werden.

Yup. Normal, oder?

> 6.) Mittels Firewall Filter werden riskante Dienste wie NFS fuer die
> Aussenwelt unzugaenglich gemacht.

Da unterscheiden sich wohl Jail-Systeme nicht von Systemen ohne, oder?

> Nachteile dieses Verfahrens:
> - Ein Angreifer, dem es gelingt in ein Jail einzudringen, hat alle
> Binaries des Systems zur Verfuegung. Das schoene an Jails gegenueber dem
> Chroot-Konzept ist aber ja gerade, dass alle gefaehrlichen Programme
> auch fuer Root nicht nutzbar sind.

Doch, aber root im Jail != root auf dem Host, weil 2 Umgebungen.

> - Da permanent NFS Zugriffe erfolgen, benoetigt man ein entsprechend
> performantes System. Da es aber heutzutage sehr potente Rechner in jedem
> Discounter zu Spottpreisen gibt, sollte das kein wirkliches Problem sein.

Ich versteh' immernoch nicht, warum NFS? Ein 'mount -r /dev/bladde
/var/jailx/' reicht doch, oder?

Für's Update macht man dann ein 'mount -u -w /var/jailx', updated und
dann wieder '-r'.

> Vorteile des Verfahrens:
> - Die Einrichtung von Jails beschraenkt sich auf das Anpassen eines
> Skripts und die Installation der benoetigten Ports. Es muessen keine
> Lib-Abhaengigkeiten etc. verfolgt werden.
> - Updates werden wesentlich einfacher. Wenn man z.B. von einem
> veralteten Release auf ein neues upgraden moechte, beendet man alle
> Jails und startet anschliessend "make world". Damit hat man sowohl alle
> System-, als auch alle Jail-Binaries aktualisiert. Anschliessend muss
> man nur noch die Ports in den Jails updaten.
Und hat eine Downtime von 30-60 min.

> - Fast alle Dateien und Verzeichnisse werden read-only gemountet.
> - Generelle Konfigurationsdateien in /etc muessen nur noch im System und
> nicht mehr in allen Jails gepflegt werden.

Gruß,
   Jens

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 08 Feb 2003 - 16:18:29 CET

search this site