• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Jails: Sicherheit mit nullfs

Themenstarter #1
Guten Morgen,
mich beschäftigt zur Zeit die Frage, ob ich mit folgender Idee eine Sicherheitslücke ins Jail-Konzept reiße oder nicht.
Um bei Updates den Aufwand zu reduzieren, wollte ich per nullfs die Verzeichnisse /usr/local/bin, /usr/local/lib, /usr/local/share, /usr/local/libexec und /usr/local/libdata in die Jail linken, um so Applikationen wie Apache2 und PHP im Gesamtsystem nur einmal zu installieren.
Gibt es bei dieser Konfiguration Sicherheitsprobleme?

Im voraus Danke für die Antworten.

JueDan
 

Rakor

Administrator
Mitarbeiter
#2
Naja du schleust damit ausführbaren Code in die anderen Systeme.. noch schöner du schleust ausführbaren Code aus der Jail in den Host... Das ist in meinen Augen ein No-Go. Eine kompromittierte Jail (in der Root-Rechte erkannt wurden) kann alle deine anderen Jails incl Host übernehmen.... Ich würde das tunlichst lassen wenn deine Jail for Systeme aus Sicherheitsgründen trennen soll. Alles andere Bedarf einer detaillierten Risikobeurteilung
 
Themenstarter #3
Guten Morgen Rakor,
Danke für die Antwort.

Naja du schleust damit ausführbaren Code in die anderen Systeme.. noch schöner du schleust ausführbaren Code aus der Jail in den Host... Das ist in meinen Augen ein No-Go. Eine kompromittierte Jail (in der Root-Rechte erkannt wurden) kann alle deine anderen Jails incl Host übernehmen
Jetzt, wo Du es schreibst, fällt es mir wie Schuppen von den Augen.
Allerdings könnte man die besagten Verzeichnisse mit
mount -t nullfs -o ro /usr/local/bin /jails/webservice/usr/local/bin
einhängen und würde doch damit ein Beschreiben des Verzeichnisses innerhalb der Jail unterbinden. Somit sollte doch dann auch der Host nicht mehr kompromittiert werden können.
 
Themenstarter #5
Moin Columbo0815,
mir ging es um eine prinzipielle Betrachtung und um den "Lerneffekt".
Im Moment nutze ich Apache mit virtual hosts. Ich hatte geplant, den Apachen in einem "Tipi unterzubringen" = in eine Jail einzusperren.
 
#6
Das kannst du ja. Wenn ich dich richtig verstanden habe, nutzt du aktuell Apache in mehreren Jails und willst deshalb mehrfach per nullfs in die Jail mounten. Deswegen die "Frage": Installiere doch einfach den Apache in einer Jail und nutze virtualhosts? :)
 
Themenstarter #7
Wenn ich dich richtig verstanden habe, nutzt du aktuell Apache in mehreren Jails und willst deshalb mehrfach per nullfs in die Jail mounten
Ich plane folgendes:
  • Jail mit Apache für meine von draußen erreichbare Webseite (mit drei virtual hosts)
  • Apache auf dem Host für die Steuerung meines Servers über Webinterface
Ich dachte mir den Aufbau dergestalt, dass ich nur einmal den Apache auf dem Host installiere und /usr/local/bin per nullfs ins Jail-Verzeichnis read-only mounte.
 
#8
Ich sehe den Vorteil nicht. Unabhängig davon könntest du ja auch den Apache in einer Jail installieren und per nullfs in eine andere Jail mounten.
 

Rakor

Administrator
Mitarbeiter
#9
Jetzt, wo Du es schreibst, fällt es mir wie Schuppen von den Augen.
Allerdings könnte man die besagten Verzeichnisse mit
mount -t nullfs -o ro /usr/local/bin /jails/webservice/usr/local/bin
einhängen und würde doch damit ein Beschreiben des Verzeichnisses innerhalb der Jail unterbinden. Somit sollte doch dann auch der Host nicht mehr kompromittiert werden können.
Hmm... der root in der Jail erhält auch die UID 0. Müsste man mal versuchen ob der das ro nicht irgendwie umgehen kann. Habe aktuell kein System vor mir wo man das testen könnte.
 

Yamagi

Possessed With Psi Powers
Mitarbeiter
#10
ich war noch nie ein Freund der Idee, mit einem zentralen Basisjail, Servicejails und das irgendwie zusammengeklebt zu arbeiten. Einfach weil das unendlich frickelig und fehleranfällig ist. Speicherplatz war schon vor 15 Jahren billig genug, um sich praktisch unendlich viele Jails gönnen zu können und inzwischen sind sie mit ein paar Scripten und Ansible auch schnell hochgeraddelt. Daher würde ich sagen: Mache es einmal richtig. Baue dir ein paar schöne Playbooks und die Kuh ist die nächsten 10 Jahre vom Eis.
 

mr44er

moderater Moderator
Mitarbeiter
#11
Ich stecke je jail eine Instanz apache + Kladdearadatsch (php, sql whatever) rein, so habe ich es sauberst getrennt. Das Gedöhns wird im RAM und auf HDD sowieso komprimiert, da habe ich gar keine Sorgen.
Einzig den portstree hänge ich nach Bedarf in die jail rein.
 

SolarCatcher

Well-Known Member
#12
@Yamagi Ich bin auch gerade dabei im Rahmen des Upgrades von (HardenedBSD) 11 auf 12 die iocage jails von Base Jails auf normale Jails umzustellen. Den Vorteil der Basejails fand ich immer im einfachen, schnellen Upgrade: Alle Jails runterfahren, die Base upgraden, Jails wieder hochfahren. Fertig - zumindest wenn man nicht z.B. /etc abgleichen muss.

Ich denke immer noch, dass vorkonfigurierte Jails - also schon mit den zusätzlich benötigten Packages - Sinn machen, wenn man viele gleichartige Jails hat. Patrick M. Hausen hatte 2017 auf der EuroBSDCon den Einsatz von iocage-"template"-Jails bei punkt.de vorgestellt. Das fand ich sehr interessant.