Erstellen eines beschränkten SSH-Benutzers nur für SSH-Tunneling

Manchmal ist es nötig SSH-Tunneling zu verwenden, um einen Webservice auf einem bestimmten Port zu erreichen, welcher von einer Firewall oder einem Router blockiert wird.

Natürlich könnten Sie einfach einen neuen SSH- Benutzer auf Ihrem Linux-Server einrichten, aber dieser Benutzer kann dann sämtliche Serverbefehle auszuführen, obwohl diese für SSH-Tunneling eigentlich nicht benötigt werden. Genaugenommen muss der Benutzer sich lediglich ein- und wieder ausloggen können – das reicht! Aus diesem Grund möchten wir aus Sicherheitsgründen nicht, dass der Benutzer sonst noch irgendetwas machen kann.

Im Folgenden werde ich zeigen, wie Sie solch einen beschränkten SSH-Benutzer auf einem Linux-Server (getestet auf Debian Linux), nur für die Verwendung von SSH-Tunneling, einrichten können.

Zunächst erstellen wir einen neuen Benutzer (ich nenne ihn nun einfach sshtunnel) mit rbash als Shell:

useradd sshtunnel -m -d /home/sshtunnel -s /bin/rbash
passwd sshtunnel

Die Verwendung von rbash anstatt bash beschränkt den Benutzer bereits, da er insbesondere das Verzeichnis nicht mehr wechseln und auch keine Umgebungsvariablen setzen kann. Jedoch die meisten Bash-Befehle können vom Benutzer weiterhin ausgeführt werden.

Um ihn davon abzuhalten, verwenden wir einen kleinen Trick: Wir setzen die Umgebungsvariable PATH für diesen Benutzer auf nichts. Dadurch wird die Bash keine Befehle zum Ausführen mehr finden. Dies kann ganz einfach dadurch erreicht werden, dass am Ende der Datei .profile im Heimatverzeichnis des Benutzers (in unserem Beispiel /home/sshtunnel/) folgende Zeile eingefügt wird:

PATH=""

Da wir sicherstellen wollen, dass der Benutzer das selbst nicht wieder ändern kann, entfernen wir die Schreibrechte von den Benutzer-Einstellungsdateien sowie vom Heimatverzeichnis des Benutzers selbst:

chmod 555 /home/sshtunnel/
cd /home/sshtunnel/
chmod 444 .bash_logout .bashrc .profile

Jetzt sind wir fertig: Sie können den SSH-Tunnel ganz normal beispielsweise mit PuTTY einrichten und sich mit dem neu angelegten SSH-Benutzer einloggen. Sie werden nichts anderes tun können als sich ein- und wieder auszuloggen, aber das SSH-Tunneling wird einwandfrei funktionieren!

Haben Sie auch schon mal einen so eingeschränkten SSH-Benutzer benötigt?

Der Artikel ist auch in English verfügbar.

Einen Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Sie können folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>