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.
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 standardmäß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.