Chroot für Dienste hebelt Dateisystem aus?!
Chroot für Dienste hebelt Dateisystem aus?!
Was haltet ihr eigentlich von chroot für Apache und co?
Das wird ja sehr oft empfohlen!
Ich mein irgendwie hebelt das doch die feinsäuberliche Trennung der
Paritionen und Verzeichnisse völlig auf.
Ich hab z.B. grössere Datein in /var/www liegen, für die auf anderen
Partitionen nicht genug Platz wäre. Wenn ich aber jetzt ein chroot für
Apache auf /usr mache, dann muss ich die /var/www Dateien ja auch auf
/usr/chroot/var/www oder sowas verschieben, was mir garnicht schmeckt!
Oder ich müsste den Apache nach /var legen, was mir genauso missfällt,
und was dann doch bei meheren Diensten zum Oberchaos führt...oder
nicht?
Das wird ja sehr oft empfohlen!
Ich mein irgendwie hebelt das doch die feinsäuberliche Trennung der
Paritionen und Verzeichnisse völlig auf.
Ich hab z.B. grössere Datein in /var/www liegen, für die auf anderen
Partitionen nicht genug Platz wäre. Wenn ich aber jetzt ein chroot für
Apache auf /usr mache, dann muss ich die /var/www Dateien ja auch auf
/usr/chroot/var/www oder sowas verschieben, was mir garnicht schmeckt!
Oder ich müsste den Apache nach /var legen, was mir genauso missfällt,
und was dann doch bei meheren Diensten zum Oberchaos führt...oder
nicht?
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Re: Chroot für Dienste hebelt Dateisystem aus?!
Weniger als nichts weilDjango hat geschrieben:Was haltet ihr eigentlich von chroot für Apache und co?
- nicht sicher im Sinne von Security
- Mehraufwand der
- bringt weder Vorteile in
-- administration
-- Übersicht
-- performance
-- Security
Ja vonDas wird ja sehr oft empfohlen!
- Literatur aus dem Jahre 2001 oder davor
- Leuten die sich
-- zuwenig
-- gar nicht
mit der Materie befasst haben.
Ich stelle Dir in dem Fall nicht einmal die Frage nach der Motivation "warum chroot?" sondern sage dir einfach warum du Virtualisierung verwenden sollst (das ist möglich weil unter allen Aspekten Vorteile zu Tage treten):
- solide
- leicht wartbare
- übersichtliche
- state-of-the-art
- sichere (im Sinne von Security)
chroots sind ein Relikt aus der Vergangenheit ...
FAZIT
Mach dir die Mühe und sieh dir Xen oder Linux-Vserver an. Zumal du nachdem du hier Zeit investiert hast auf Grund der Mehrfachnutzung zu einem Skaleneffekt kommst (d.h. das kannst du für alle möglichen Problemstellungen einsetzen - nicht nur für den Apache Fall).
In dem konkreten Fall würde ich fast zu LVS raten - nicht weil ich Fan bin sondern weil du die Art (Virtualisierung/Isolierung auf OS Ebene) dem Xen Ansatz (Emulierung/Paravirtualisierung) aus Speed Gründen vorziehen kannst - du musst z.B. keine Netzwerksegmente simulieren etc. (in dem Fall würde ich zu Xen raten).
Markus
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
das mit ln-s ist so eine Sache ...kryptX hat geschrieben:Fuer sowas kann man doch Symlinks benutzen, oder nicht?
Ich rate zu
- bestehende nicht zu ändern (umzubiegen)
- selber so wenig wie möglich diese zu verwenden
Warum? Ganz einfach weil es früher oder später Probleme gibt weil man beim kopieren/löschen etc. etwas vermasselt. Symlinks skalieren also ganz und gar nicht mit der Fähigkeit des Menschen Dinge zu überblicken.
Im Grunde ist es hier dasselbe wie mit dem goto Statement in sourcecode. gotos und symlinks bringen nur Probleme und gehören weg.
Markus
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
LVS hast ca. (nur) 2% Performance Overhead. Die 256MB RAM sind so oder so wenig. Unmöglich macht es LVS aber nicht. Das Ding läuft auch auf ARM Prozessoren in Handys.Django hat geschrieben:Jeden Dienst in einen Vserver packen wird bei einem Rootserver mit Celeron 2 Ghz und 256MB RAM ein bischen schlecht funktionieren.
min 1/4 m^3 Eiswürfel in die Badewanne, mit Kaltwasser zu ca. 70% füllen und dann min 10min drinnen verweilen.Gibts ne andere Lösung zum abhärten?
Markus
Hm wo ist der Sinn des VServers dann genau?meandtheshell hat geschrieben:LVS hast ca. (nur) 2% Performance Overhead. Die 256MB RAM sind so oder so wenig. Unmöglich macht es LVS aber nicht. Das Ding läuft auch auf ARM Prozessoren in Handys.Django hat geschrieben:Jeden Dienst in einen Vserver packen wird bei einem Rootserver mit Celeron 2 Ghz und 256MB RAM ein bischen schlecht funktionieren.
min 1/4 m^3 Eiswürfel in die Badewanne, mit Kaltwasser zu ca. 70% füllen und dann min 10min drinnen verweilen.Gibts ne andere Lösung zum abhärten?
Markus
Anstatt den ganzen Server im Falle eines Hackings neu aufsetzen zu müssen, muss ich dann nur den Apache-Vserver neu aufsetzen?
Hm...fragt sich obs das bringt, da ich eh nur apache und mysql laufen habe
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
- Schon einmal eine Webpräsenz von Maschine A nach B migrieren müssen weil du z.B. auf slashdot erwähnt wurdest?Django hat geschrieben: Hm wo ist der Sinn des VServers dann genau?
- Steht dein Zeug unter Dauerfeuer von irgenwelchen "Brüdern"
- Hast du mehr als 1 Maschine zu administrieren
- Hast du sensible Daten
- Ist dir deine Freizeit was wert?
- http://linux-vserver.org/Usage_Scenarios
- etc.
BTW - kannst dir einmal Adamantix ansehen - zusammen mit LVS ist das noch ein Stück feiner.
Markus
Den selben Sinn, den ein chroot für den Apache machen würde. (Edit: Und ein paar der Punkte, die meandtheshell oben angesprochen hatDjango hat geschrieben: Hm wo ist der Sinn des VServers dann genau?

Wenn du den Sinn beim VServer nicht siehst, wirst du ihn beim chroot wohl auch nicht sehen.
Es geht ja weniger um den Aufwand des neu Aufsetzens, sondern um die erhöhte Sicherheit bei einem erfolgreichen Angriff. Ist dein Apache gehackt, hat das dann noch kein Auswirkungen auf deine MySQL DB.Anstatt den ganzen Server im Falle eines Hackings neu aufsetzen zu müssen, muss ich dann nur den Apache-Vserver neu aufsetzen?
Das kannst nur du entscheiden. Das klingt sehr danach, als ob die MySQL DB nur für den Apache genutzt wird. Damit sehe ich keinen Vorteil von Virtualisierung in diesem Fall.Hm...fragt sich obs das bringt, da ich eh nur apache und mysql laufen habe
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Das er im Moment nur
- Apache mit
- MySQL
nutzt ist ok. Stimmt, würde nicht unbedingt eine Isolation erfordern obwohl auch auch durch Isolation schon Vorteile da wären. Durchgriff auf den Host nicht so möglich als bei einem nativen Linux System.
Die Frage die man sich stellen muss ist:
Wird diese Maschine für immer ganz sicher nur diesen Dienst laufen haben. Wer hier mit 100%iger Sicherheit "Ja" sagen kann sollte sich im Business Consulting Umfeld oder Finanz Sektor niederlassen - die Kristallkugel Fähigkeit wird Ihn reich machen.
Markus
- Apache mit
- MySQL
nutzt ist ok. Stimmt, würde nicht unbedingt eine Isolation erfordern obwohl auch auch durch Isolation schon Vorteile da wären. Durchgriff auf den Host nicht so möglich als bei einem nativen Linux System.
Die Frage die man sich stellen muss ist:
Wird diese Maschine für immer ganz sicher nur diesen Dienst laufen haben. Wer hier mit 100%iger Sicherheit "Ja" sagen kann sollte sich im Business Consulting Umfeld oder Finanz Sektor niederlassen - die Kristallkugel Fähigkeit wird Ihn reich machen.
Markus
Zuletzt geändert von meandtheshell am 17.05.2007 16:07:31, insgesamt 1-mal geändert.
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Natürlich. LVS ist keine Lösung für die Schulbank sondern Zeug das ganze Cluster zum zucken bringt wenn du willst.Django hat geschrieben: Kann man bei LVS die HDD direkt ansprechen? Von virtuellen Images halte ich sehr wenig aufgrund der miserablen Performance!
Du kannst dir LVS im Gegensatz zu einem nativen System einfach so vorstellen, das du nicht nur eine Wiese hast (natives System) sondern dieselbe Wiese mit Maschendraht Zaun Unterteilungen in welche du Dienste geben kannst.
Egal wo, der Dienst wandert immer auf Gras und nicht auf Holzboden (loopdevice etc.) durch welches du 2h durchgraben musst bis du Gras siehst.
Jeder Dienst kann mit dem anderen reden (Maschendraht Zaun) aber sollte er anfangen zu spinnen, macht das nichts er kommt bis zum Zaun und dann ist aus. Beim nativen System kann der eine Irre Dienst auf der Wiese jedem anderen der fröhlich im Gras sitzt, die Sonne genießt und Tiere beobachtet den Kopf abreisen und die Wiese platt machen bis auf den letzten Käfer.
Im Falle von LVS sitzt du oben am Bergüberhang, beobachtest die Wiese (die Dienste wissen nichts von Dir) und sollte einer durchdrehen, navigierst die die Ionen Kanone in Position und zzzzzzzzzzzaaaaaaaaap. Gehst runter, tust neues Gras hin und setzt einen neuen Dienst auf das eingezäunte Stück Wiese.
Markus
Das muss zu den quotesmeandtheshell hat geschrieben:Natürlich. LVS ist keine Lösung für die Schulbank sondern Zeug das ganze Cluster zum zucken bringt wenn du willst.Django hat geschrieben: Kann man bei LVS die HDD direkt ansprechen? Von virtuellen Images halte ich sehr wenig aufgrund der miserablen Performance!
Du kannst dir LVS im Gegensatz zu einem nativen System einfach so vorstellen, das du nicht nur eine Wiese hast (natives System) sondern dieselbe Wiese mit Maschendraht Zaun Unterteilungen in welche du Dienste geben kannst.
Egal wo, der Dienst wandert immer auf Gras und nicht auf Holzboden (loopdevice etc.) durch welches du 2h durchgraben musst bis du Gras siehst.
Jeder Dienst kann mit dem anderen reden (Maschendraht Zaun) aber sollte er anfangen zu spinnen, macht das nichts er kommt bis zum Zaun und dann ist aus. Beim nativen System kann der eine Irre Dienst auf der Wiese jedem anderen der fröhlich im Gras sitzt, die Sonne genießt und Tiere beobachtet den Kopf abreisen und die Wiese platt machen bis auf den letzten Käfer.
Im Falle von LVS sitzt du oben am Bergüberhang, beobachtest die Wiese (die Dienste wissen nichts von Dir) und sollte einer durchdrehen, navigierst die die Ionen Kanone in Position und zzzzzzzzzzzaaaaaaaaap. Gehst runter, tust neues Gras hin und setzt einen neuen Dienst auf das eingezäunte Stück Wiese.
Markus

Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht