c't 7/2020
S. 162
Praxis
Shell-Zugriff einschränken
Bild: Michael Luther

Einlasskontrolle

Zugriff auf die Linux-Kommandozeile einschränken

Mit rbash und GNU Rush schränken Sie auf Linux-Systemen den Zugriff auf die Shell ein. So können Sie ­verhindern, dass Anwender versehentlich Schaden anrichten oder ­Einbruchsversuche starten. Die ­beiden Werkzeuge gehen dabei recht unterschiedliche Wege.

Von Tim Schürmann

Meldet sich Alice per SSH auf einem entfernten Server an, landet sie dort in einer Shell, mit der sich erstaunlich viel anstellen lässt. Falsch gesetzte Zugriffsrechte können dann verheerende Folgen haben. Im schlimmsten Fall kann Alice die Konfigurationsdateien unter /etc einsehen oder per scp auf ihren Rechner holen. Obendrein öffnet der Server eine Shell in Situationen, in denen man es nicht vermuten würde. Dazu zählt beispielsweise das Tool scp: Um eine Datei zu kopieren, öffnet es via SSH eine Verbindung zum Server, der dann dort mit der Standard-Shell des Benutzers den Befehl scp -r aufruft. Ähnlich problematisch sind rsync und Zugriffe auf ein Git-Repository. Doch der Zugriff lässt sich glücklicherweise einschränken.

Bash

Viele Linux-Systeme verwenden stan­dardmäßig die Bash. Ruft man sie mit dem Parameter -r beziehungsweise --restricted oder als rbash auf, verwandelt sie sich in eine sogenannte Restricted Shell. Die einfacher Benutzerin Alice darf dann unter anderem nicht mehr mit cd in ein anderes Verzeichnis wechseln und Daten umleiten (über die Operatoren >, >|, <>, >&, &> und >>). Des Weiteren sind die Umgebungsvariablen SHELL, PATH, ENV und BASH_ENV in Stein gemeißelt. Stark eingeschränkt ist auch, welche Programme man ausführen darf. Kommandos dürfen den Schrägstrich / nicht enthalten, die Shell lässt sich nicht via exec-Befehl gegen ein anderes Kommando austauschen und beim command-Befehl, der ein gegebenes Kommando schlicht ausführt, ohne es weiter nachzuschlagen, ist der Parameter -p blockiert, der einen Standardpfad für auszuführende Programme verwendet. Sämtliche Einschränkungen listet man bash ganz am Ende auf. Neben der Bash lassen sich auch die Bourne Shell und die Korn-Shell (Ksh) in eine Restricted Shell verwandeln.

Kommentare lesen (1 Beitrag)