Re: 1st time jail

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Wed, 3 May 2006 08:49:11 +0200 (CEST)

Matthias Teege <matthias-dbsdq(at)mteege.de> wrote:
> Dejan Grujin <DGrujin(at)edv-dg.de> writes:
>
> > Server der von außen via dyndns erreichbar ist.
> > Jail mit einer internen adresse.
>
> Die Jail bekommt die externe Adresse, dass Hostsystem die interne.

Oder: Das Jail bekommt eine localnet-IP (z.B. 127.0.0.2),
und das Hostsystem die externe Adresse (ich nehme an, daß
er eh via ssh draufkommen können möchte). Connections auf
den Webserver (Port 80 und/oder 443) werden dann z.B. per
IPFW FWD auf die 127.0.0.2 geforwardet. Hat neben der IP-
Abschottung den zusätzlichen Vorteil, daß der Webserver im
Jail nicht als root gestartet werden muß, da er auf einem
anderen Port (>=1024) laufen kann (IPFW FWD kann bei loka-
len Adressen auch die Portnummer modifizieren).

> > Welche Problematiken kommen auf mich zu?
>
> Erstmal keine. Es funktioniert wie in der Manpage beschrieben.

Ja, das stimmt. (Im Handbook ist auch ein Abschnitt.)

Wobei es auch andere Vorgehensweisen gibt. Wenn man sich
dan die Manpage hält, hat man im Jail ein vollständiges
Basissystem installiert, was nicht unbedingt wünschenswert
ist.

Man kann entweder das Jail hinterher aufräumen, d.h. nicht
benötigte Dinge herauslöschen. Wenn man z.B. keine Shell-
Skripte innerhalb des Jails benötigt, sollte man /bin/sh
löschen (und /bin/csh + /bin/tcsh sowieso), wodurch eine
Reihe von Exploits bereits von vornherein ausgeschlossen
wird. Benötigt man unbedingt eine Shell für Skripte, kann
man sich überlegen, /bin/sh an eine andere Stelle zu ver-
schieben, die nicht in üblichen Suchpfaden enthalten ist
(z.B. /var/pkg/denkdirwasaus/sh). Man mag das als »secu-
rity by obscurity« ansehen, aber auch diese Maßnahmen
schaltet eine Reihe von fertigen Exploits aus und hält
Skript-Kiddies hinreichend auf. (Zumal es sich offenbar
nur um einen privaten Server handelt, d.h. die Wahrschein-
lichkeit ist eher gering, daß sich ein bezahlter Profi ans
Werk macht, den solche Maßnahmen natürlich nur kurze Zeit
aufhalten.)

Oder man erstellt das Jail _nicht_ wie in der Manpage be-
schrieben, sondern manuell, d.h. man kopiert aus einem vor=
handenen Basissystem (z.B. das des Hostes) genau die Dinge
hinein, die benötigt werden. Das erfordert allerdings
einiges an Grundwissen, da man leicht Dinge vergessen kann
(typische Kandidaten sind /etc/localtime + /etc/services).

Ein möglicher Ansatz wäre auch, das System im Jail voll-
ständig aufzusetzen, zu starten und alles alufen zu lassen,
und danach alle Dateien zu löschen, die nicht angerührt
wurden (kann man an der atime sehen, siehe find(1)).
Das ist recht einfach und effektiv.

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"Python tricks" is a tough one, cuz the language is so clean. E.g.,
C makes an art of confusing pointers with arrays and strings, which
leads to lotsa neat pointer tricks; APL mistakes everything for an
array, leading to neat one-liners; and Perl confuses everything
period, making each line a joyous adventure <wink>.
        -- Tim Peters
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 03 May 2006 - 08:51:12 CEST

search this site