chroot auf vServer

hotrs

New Member
Hi *.*.

Bei meinem vServer Debian - den ich mehr oder weniger nur als Spielwiese benutze - steht ein Umzug an. Bislang laufen dort neben einem Apache ein TS2 Server, ein IRC Bot (eggdrop) und der IRC Bouncer ZNC. Zeitweise lief noch ein Unreal Tournament 2004 und ein Murmur Server. Alle Server-Anwendungen liefen in separaten chroot Umgebungen.

Mit dem Umzug ist eine Neuinstallation aller Anwendungen geplant. Und da stellt sich für mich die Frage, ob ich bzgl. der chroot Umgebungen etwas ändern sollte.
Einerseits fand ich es immer ziemlich nervig, bei Updates die geänderten Bibliotheken auf alle chroot Umgebungen zu verteilen. Bei einem richtigen Root Server würde man wohl mit Hardlinks arbeiten - welche ich auf dem vServer aber nicht anlegen kann. Und Softlinks funktionieren nur in eine Richtung und sind deswegen wenig hilfreich.
Andernseits rechne ich in der Zukunft mit Problemen, wenn ich noch POP3/IMAP inkl. Web-Interface und ggf. einer Steuerung von Systemdiensten über ein Email-Interface einrichte. Durch die getrennten chroot Umgebungen dürften es die einzelnen Dienste schwer haben, miteinander zu kommunizieren.

Hat hier vielleicht jemand hilfreiche Tipps? Wie sieht es eigentlich bei dem Einsatz von chroot-Umgebungen mit zusätzlichem Speicherverbrauch aus?

Gruß und danke,
hotrs
 
Wie sieht es eigentlich bei dem Einsatz von chroot-Umgebungen mit zusätzlichem Speicherverbrauch aus?

Ein großer Vorteil von shared libraries besteht darin, dass deren Code nur einmal vom Kernel in den Speicher geladen werden braucht und mehrere Programm-Instanzen dann darauf zugreifen können. Bei häufig benutzten libraries (z.B. libc) spart das durchaus einiges an Speicher. Wenn jetzt jede chroot-Umgebung ihre eigene Kopie einsetzt können nur die Prozesse innerhalb dieser Umgebung die library teilen -- insofern ist der Speicherverbrauch damit größer.
Einen Ausweg aus dem Dilemma könnten Hardlinks darstellen -- die lösen allerdings nicht das Update-Problem.
 
Zunächst danke für die Anwort ;):

Wenn jetzt jede chroot-Umgebung ihre eigene Kopie einsetzt können nur die Prozesse innerhalb dieser Umgebung die library teilen -- insofern ist der Speicherverbrauch damit größer.

So hatte ich das auch erwartet. Und das, wo auf einem vServer der Speicher eh meistens der Flaschenhals sein dürfte ...

Stellt sich für mich die Frage, was ich ändern sollte. Bestimmte Dienste in chroot Umgebungen gruppieren? Oder alle Dienste in einer chroot Umgebung unterbringen? Oder ggf. auf chroot Umgebungen vollkommen verzichten? Der Einsatz von systrace zur weiteren Sicherung des Servers dürfte am fehlendem Kernelpatch eines vServers scheitern. Wobei der Einsatz von systrace in Zusammenhang mit Diensten wie apache wohl eh fragwürdig ist ...


Gruß,
hotrs
 
Gruppieren der Dienste ist glaube ich eine gute Idee. TS/irc in einem, Spiele im naechsten, und den Apachen (+evtl mySQL) im dritten - wenn das ressourcentechnisch moeglich ist. Ist wohl eine Kompromissfrage.

Fuer manche Dienste gibt es diverse Loesungen das chrooten zu vereinfachen, z.B. Apache per mod_chroot oder per mod_security, das spart dann einiges an Handarbeit wenn es ans updaten geht und greift wenn ich mich nicht irre auch auf shared libraries zurueck. Vielleicht gibt es ja fuer die anderen Dienste auch schon 'fertigere' Loesungen.
 
Fuer manche Dienste gibt es diverse Loesungen das chrooten zu vereinfachen, z.B. Apache per mod_chroot oder per mod_security [...].

Danke, das werde ich mir mal genauer anschaun.

Ressourcentechnisch sollte die Gruppierung der Dienste in verschiedenen chroot Umgebungen kein Problem darstellen. Immerhin lief bislang alles auf dem kleinsten vServer von united hoster und zieht jetzt auf eine weitaus besser ausgestattete Maschine um - damit tomcat zum Einsatz kommen kann.

Gruß,
hotrs
 
Back
Top