Sven Rautenberg: Linux: Rechtevergabe

Beitrag lesen

Moin!

Ich muß jemanden von außen Zugang (SSH) zu meiner Linuxmaschine innerhalb meines privaten LANs legen.

Das halte ich für sehr problematisch. Deine Maschine ist mit Sicherheit nicht für derartigen Mehrbenutzerbetrieb eingerichtet worden. Deshalb sind bei der Installation wahrscheinlich Designentscheidungen anders ausgefallen, als sie für eine sichere Abschirmung der Benutzer gegeneinander notwendig wären.

Ich bin kein Experte für die Konfiguration eines sicheren Mehrbenutzersystems. Meine Server nutze ich in der Regel alleine, oder zusammen mit vertrauenswürdigen Mitbenutzern, so dass sich mir gewisse Fragestellungen noch nicht gestellt haben.

Bsp:

/etc                                root      root
.
/www/domain_xyz/htdocs              andre     users
/www/domain_fuer_außen/htdocs       trulla    extern

Ich bin jetzt am überlegen, wie ich dem Benutzer "trulla" am _besten_ den Zugriff auf alle Verzeichnisse verbiete. trulla soll sich nur unterhalb des Verzeichnisses "/www/domain_fuer_außen/" bewegen können.

Das stelle ich mir bei einem Shellzugang bzw. SCP-Zugang schwierig vor. Die sicherste Methode dürfte sein, den Benutzer in einer chroot-Umgebung einzusperren. Das bedeutet aber, dass du einen sshd doppelt installieren mußt (einen für dich, einen chrooted für trulla), und den zweiten sshd dann eben auf einen anderen Port setzt.

Alternativ: Mit FTP kannst du die Zugriffe ebenso auf ein bestimmtes Verzeichnis beschränken.

Aber ich gebe zu bedenken: Alles, was dein Webserver userid-mäßig lesen kann, kann auch trulla lesen, wenn die Möglichkeit besteht, Skripte auszuführen, und du keine Sicherheitsmaßnahmen dagegen getroffen hast (bei PHP beispielsweise den Safe-Mode benutzt - ich brauchte den bislang nicht, also frag mich keine Details).

Ich könnte die "Other" auf 0 (z.B. rwx-r-x----) setzen, also nicht lesen, schreiben und ausführen. Ich überlege aber gerade ob ich das wirklich will und ich nicht etwas entscheidenes vergesse und eventuell somit Systemdienste "aussperre". Die böse Erwachung kommt dann sicherlich erst beim Neustart.

Die Unix-Dateirechte sind für eine solche Aufgabenstellung eigentlich zu wenig detailliert, würde ich meinen. Nun gut, root liest ja sowieso alles - und ansonsten hängt die Möglichkeit, das so zu machen, davon ab, welche User und Gruppen es gibt, wie die einander zugeordnet sind und welche Verzeichnisse von welchen Usern tatsächlich benötigt werden.

Das meinte ich u.A. mit Designentscheidungen. Wenn man weiß, dass man das System usermäßig gegeneinander absichern muß, wird man sich an diesem Punkt viele Gedanken machen müssen. Wenn man das erst hinterher drüberstülpen will, geht das vermutlich eher schief.

Ein neuer Benutzer hat aber typischerweise auf die Systemdateien allenfalls nur Leserechte. trulla kann also beispielsweise den Binärcode von allen Programmen lesen (und sie auch ausführen, wenn's denn sein muß), ihn aber nicht verändern. Wenn du analysierst, welche Zugriffe du verbieten willst (dazu mußt du wissen, welche Daten wo liegen, und wie geschützt die werden sollen), dann kannst du darauf basierend die Rechte setzen.

Deine Fragestellung ist jedenfalls nicht trivial.

- Sven Rautenberg

--
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)