Hallo,
Wenn der mysqld mit der GID mysql läuft und einen Exploit hat,
kann er eben auf die dateien zugreifen, wenn die Dateien
Root-rechte haben, eher nicht.
Wenn ich das nun richtig verstehe ist das so gemeint, dass das
Idealszenario ist, jeder Datei eine eigene UID und GID
zuzuweisen?
Nein, es gibt Situationen, wo andere Prozesse/User Rechte auf eine Datei benötifgen: das kann man nicht so pauschal sagen.
Würde nun die „ausführbare“ Datei gehackt, dann könnten z.B.
nicht mal die Config files gelesen werden, da diese auch schon
unter einer anderen UID laufen.
Ja, aber es gibt auch Dateien, die sollten für andere auch lesbar sein.
Heisst das dann in der _Praxis_, dass das „ausführbare
Programm“ welches letztendlich Ziel eines Exploits sein kann,
immer unter einer eigenen Gruppe und UID laufen sollte
Nein, so würde ich das nicht ausdrücken wollen. Allgemein: es ist eine gute Idee, dem Prozeß eben nur so wenig Rechte zu geben wie er unbedingt benötigt.
währen
alle weiteren Libraries und Dateien möglichst ebenfalls
nochmals unter einer _anderen_ UID/GID laufen sollten (hier
eben root).
Auch wenn sie root gehören, laufen sie möglicherweise nicht unter root sondern werden von einem anderen Nutzer ausgeführt. Und das ist gut so.
Wichtig ist nur der Unterschied dass eben das
„Executable“ andere Rechte hat als die Umgebung hat,
Nein, das würde ich so nicht unterschreiben wollen.
so dass
möglichst wenig Dateien gelesen werden können bzw. nicht aus
dem Verzeichnis „ausgebrochen“ werden kann ?
Was genau meinst Du, mit "aus dem Verzeichnis „ausgebrochen“.
(Nutze z.Z. Suse 9.0) und würde gerne Bind/Apache/Tomcat/Mysql
möglichst sicher installieren.
Nutze die Rechte, die Deine Distribution mitbringt, sie sollten eine sinnvolle Voreinstellung sein. Ich habe im Augenblick den Eindruck, daß Du nicht genügend Vorstellung von der Rechteverwaltung hast, daß Du an den Voreinstellungen sinnvoll etwas verbessern könntest. Mir hat es damals geholfen, mir die Rechte bei qmail klar zu machen. Aber das ist eine andere Baustelle.
Darüberhinaus würde ich vermeiden, so kritische Dienste wie Bind (DNS) auf der Maschine laufen zu lassen, zumindest, wenn sie in öffentlichen Netzen ist.
Was genau hast Du vor? Wozu brauchst Du BIND?
Gruß,
Sebastian