Chroot SFTP mit OpenSSH ohne Shell Zugang

Viele Kunden wünschen sich einen SFTP Benutzer gefangen in einem Ordner, ohne Shell (SSH) Zugang.
OpenSSH bietet ab Version 4.9p1 eigene Bordmittel um die Chroot-Umgebung umzusetzen.

OpenSSH konfigurieren

Zu Beginn muss OpenSSH mitgeteilt werden, dass Benutzer der Gruppe sftp anders behandelt werden sollen. Hierzu nehmen wir in der Datei /etc/ssh/sshd_config zwei Einstellungen vor:

Die erste Zeile kommentiert den Standardwert aus, in der Zweiten wird das neue Subsystem internal-sftp bestimmt. Es entfällt somit das Installieren unnötiger Bibliotheken im Chroot-Verzeichnis.
Die dritte Anweisung greift jedes mal wenn sich ein Benutzer der Gruppe sftp authentifiziert. Er wird in sein Home-Directory (%h) eingesperrt und es wird nochmal explizit der internal-sftp geforced. TCP-Forwarding soll ebenfalls abgeschaltet sein.

Benutzer Einstellungen

Es kann nun ein Benutzer angelegt werden, als Beispiel nehmen wir sftptest.
Das Home-Directory wird mit der Variable -m automatisch erzeugt, der Benutzer soll keinen Shell-Zugang bekommen -s /bin/false und er soll der Gruppe sftp angehören -G sftp:

Das Passwort für den Benutzer sftptest setzen wir wie folgt:

Es folgt ein Prompt bei dem ein Passwort angegeben werden muss. Anschließend muss das Passwort nochmal bestätigt werden.

Wurde bereits ein Benutzer angelegt und Du möchtest Ihm SFTP-Zugang gewähren,
führst Du folgendes aus:

Das Home-Directory

Das Home-Directory benötigt untypische Berechtigungen. Der Benutzer root muss den Besitz über das Home-Directory haben, andernfalls wird kein Login möglich sein:

Damit der Benutzer Dateien samt Ordnern hochladen kann, müssen wir ihm noch ein Verzeichnis anlegen das ihm gehört.

Das war es. Nun kann der Kunde die Login Daten erhalten.

-Dominion

Dominion

Dominion

Linux Systemadministrator

Das könnte Dich auch interessieren …

Schreibe einen Kommentar

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