[linux-l] Sandkastenspiele mit Servern

Peter Ross Peter.Ross at bogen.in-berlin.de
Mi Feb 18 00:24:25 CET 2015


On Mon, 16 Feb 2015, Lutz Willek wrote:

> Am 16.02.15 um 16:20 schrieb rainer herrendoerfer:
>> Hallo,
>> 
>> ich wollte mal die Ansichten der Gemeinde zum Sandboxing einholen:
>> Wenn mehrere Dienste (Webserver, Mailserver, ...) auf der selben
>> Hardware laufen sollen, ist es ja heute gängige Praxis, diese aus
>> Sicherheitsgründen in jeweils eigene virtuelle Maschinen zu verfrachten.
>> Wenn man aber diese Dienste auf einem einzigen mit SELinux gehärteten
>> System laufen läßt, sollten die einzelnen Prozesse doch auch hinreichend
>> voneinander abgeschirmt sein.
> Korrekt.
>
>> Wieso also ist die Virtualisierung dann so verbreitet?
> Weil wesentlich mehr Gründe für eine Virtualisierung sprechen können also nur 
> "Trennen von Diensten".
>
> In Deinem Fall: Ein Server, ein Admin, viele Dienste, alles von Hand 
> erledigt, ist sicherlich eine Lösung wie selinux oder Aparmor oder eine 
> Containervirtualisierung brauchbarer als eine Vollvirtualisierung, schlicht 
> weil du Dir sonst den Wolf konfigurierst.

Ich habe immer wieder die Erfahrung gemacht, daß solche eierlegenden 
Wollmilchsauen schwer zu warten und ersetzen waren.

Das fängt mit der IP-Adresse an, wo dann häufig 
mail.domain=server.domain=www.domain=192.168.0.1 ist.

Alle diese Werte stehen dann irgendwo auf 50 Desktops zufällig verteilt. 
Der Mail-Client hat dann eben www.domain drin stehen. Funktioniert.

Später bist Du schlau und packst mail.domain auf eine andere Maschine und 
gibst ihr 192.168.0.2. änderst das im DNS, und wunderst Dich, warum die 
Hälfte der Mail-Clients nicht mehr wollen.

Ein weiteres Problem ist die Paketverwaltung und major upgrades (übersetz 
mal bitte;-)

Vor einiger Zeit wurde im FreeBSD-Portsystem der Apache-Standard auf 2.4 
gesetzt. 2.2 geht noch, wird auch noch gepflegt, braucht aber 
Extra-Aufwand für Module, wie z.B. mod_php.

Wenn ich auf 2.4 gehe, muß ich mir die Konfigs alle angucken.

Ich habe vielleicht auch keine Zeit, da viel drüber nachzudenken, da im 
Moment anderswo Streß ist.

Ich habe aber vielleicht sicherheitskritische Updates, die nichts mit 
Apache und PHP zu tun haben.

Ich kann die virtuellen Maschinen, die davon betroffen sind, 
aktualisieren, ohne daß die Webserver mit PHP Aufmerksamkeit brauchen.

So kann ich mittels virtualisierten Maschinen schneller auf Probleme 
reagieren.

Das erhöht Stabilität und Sicherheit.

Ich benutze Jails, das ist die FreeBSD-Version der Linux-Container.

Für die Sicherheit der Jails (und deren Grenzen) habe ich ausreichend 
Dokumentation.

Das kann ich leider für Linux Container nicht sagen. Gelegentlich wird 
verschwommen von "bekannten Sicherheitsproblemen" berichtet - ich habe 
aber tatsächlich noch keine ordentliche Erklärung gesehen.

Wenn also jemand darüber Auskunft geben kann - das wäre nett!

So im Moment traue ich Linux-Containern (und Docker) 
"sicherheitstechnisch" nicht über den Weg,

zur besseren Wartbarkeit eignen sie sich aber durchaus.

Nebenbei, Java VMs wie Tomcats sind gut abgeschlossene Systeme, laufen in 
getrennten Verzeichnissen und man braucht nur eine XML-Datei 
anzupassen (um Portkonflikte auszuschließen). Die passen gut 
"nebeneinander", wartungstechnisch.

Generell ist Sicherheit eine Angelegenheit für sieben Zwiebelhäute - man 
sollte sich nicht auf eine Haut allein verlassen. Also VM und SELinux 
schließen sich nicht aus und können sich ergänzen.

Ich mag VMs und Jails, weil sie einfache geschlossene Systeme sind.

SELinux-Regeln sind da etwas schwieriger - es ist einfacher, sich zu 
"verkonfigurieren" und damit Probleme zu haben.

Als besonders kritisch sehe ich procfs und sysfs, FreeBSD kennt das nicht, 
das macht das Leben einfacher. In Jails gibt es nur ein devfs mit 
Minimalausrüstung(konfigurierbar), damit man z.B. kein /dev/kmem teilt.

Alles andre geht über sysctl und syscalls:-)

Alles in allem traue ich da unter Linux nur VMs über den Weg.

Okay, wenn Russell Coker (einer der SELinux-Entwickler von Beginn an, der 
hier in Melbourne wohnt) ein System mit SELinux konfiguriert, dann traue 
ich dem auch..

.. aber oft wird doch sonst schnell mal an SELiinux "rumgeschraubt" (oder 
es einfach ausgeschaltet), um was zum Laufen zu bringen - und das oft von 
Laien.

Und es gibt eben nur SELinux an/aus für ein System. Wenn dann der 
xy-Dienst nicht will und jemand das abschaltet, sind plötzlich alle 
Dienste "schutzlos".

Zu AppArmor kann ich nicht viel sagen, mangels Erfahrung. Ich sehe es 
generell in der gleichen Kategorie wie SELinux, als regelbasiertes System.

Es grüßt
Peter


Mehr Informationen über die Mailingliste linux-l