Re: Jail Konzept

From: Oliver Fromme <olli(at)secnetix.de>
Date: Sat, 8 Feb 2003 16:23:37 +0100 (CET)

Gistolero <gistolero(at)gmx.de> wrote:
> [Jails per read-only-NFS replizieren]

Das wurde hier schon mehrfach mit seinen Vor- und Nachtei-
len diskutiert. Das Prinzip ist ja auch recht naheliegend.
Ich verwende es auf mehreren Servern.

Eine verwandte Alternative wäre, anstelle von NFS vn-Nodes
zu verwenden (bzw. md unter FreeBSD 5). Hat den Vorteil,
daß der NFS-Overhead wegfällt -- obgleich dieser bei Loop-
back-NFS recht gering ist --, allerdings braucht man ten-
denziell mehr RAM, da kein Sharing zwischen den Textpages
der verschiedenen Jails stattfindet.

Am Ende kommt es immer auf den konkreten Einsatzzweck und
die Anforderungen an, um zu entscheiden, was für ein Kon-
zept man verwendet.

> - Die Einrichtung der Jail Umgebung ist relativ aufwendig. Man verbringt
> viel Zeit damit, Lib-Abhaengigkeiten etc. zu verfolgen.

Naja, wenn man das geschickt anfängt und die Möglichkeiten
nutzt, die FreeBSD bietet, kann man das auch recht einfach
machen, ganz ohne Sharing via NFS oder was auch immer. Bei
einem Update des Gesamtsystems macht man einfach ein »make
installworld« in jedes Jail hinein. Ebenso bei den Ports:
Entweder installiert man jeden Port per $PREFIX in jedes
Jail hinein, oder (weil $PREFIX leide rnicht bei allen
Ports funktioniert) man macht bei jedem Port einmal »make
package« und in jedem Jail dann »pkg_add«. Das alles läßt
sich mit einem einfach Skript soweit automatisieren, daß
man es bei einem Update nur anstoßen muß, und alles andere
läuft von alleine. Das ist weder aufwendig noch komplex.
FreeBSD hat ja bereits das notwendige Framework.

Das Platzargument bleibt natürlich bestehen. Wie gesagt,
es kommt auf die jeweiligen Anforderungen an.

> [NFS]
> Nachteile dieses Verfahrens:
> - Ein Angreifer, dem es gelingt in ein Jail einzudringen, hat alle Binaries
> des Systems zur Verfuegung.

Hat er ohnehin, ist also eher kein Argument.

Da sie ins das Jail read-only gemountet sind (mglw. auch
nosuid), und da man aus dem Jail heraus nichts an den
Mounts oder gar Exports ändern kann, kann der Angreifer
nichts daran manipulieren, und auch kaum etwas Böses damit
anstellen. Nichtmal ein ping -f ist möglich.

> - Da permanent NFS Zugriffe erfolgen, benoetigt man ein entsprechend
> performantes System.

Nö. Probier's mal aus. Der Overhead von Loopback-NFS ist
sehr gering, und es skaliert sehr gut. Auch tausend Mounts
auf einem Rechner sind kein Problem.

> 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.

Um ganz ehrlich zu sein, das würde ich in keinem Fall
machen, egal ob mit oder ohne NFS. Ich würde in ein Jail
grundsätzlich ein komplettes System hineininstallieren,
dann muß man sich um Libs keine Gedanken machen. Ich
würde höchstens (per Skript) ein paar Dinge entfernen,
von denen ich weiß, daß sie keinesfalls gebraucht werden,
z.B. überflüssige Locales und TZs, die Compiler-Toolchain,
Includes, statische Libraries, perl u.ä.

> - Fast alle Dateien und Verzeichnisse werden read-only gemountet.

Das kann man auch ohne NFS. Und davon abgesehen gibt es
auch noch chflags + Secure-Level. Das hatten wir hier
neulich schonmal ...

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"All that we see or seem is just a dream within a dream" (E. A. Poe)
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:23:40 CET

search this site