Installation eines chroot SFTP Servers unter Debian

SFTP (SSH FTP) ist bereits voll funktionsfähig, wenn ein openssh Server installiert ist. Sollte dieser noch nicht installiert sein, lässt sich das mit folgendem Befehl nachholen:

apt-get install openssh-server

Nachteil der Basiskonfiguration ist, dass ein SSH Benutzer, der sich über einen SFTP Client auf dem System einloggt, das gesamte Dateisystem durchsuchen kann. Um das zu unterbinden muss eine chroot-Umgebung für diesen Benutzer eingerichtet werden.

Schritt 1: OpenSSH konfigurieren

nano /etc/ssh/sshd_config

Um openssh so zu konfigurieren, dass es den SFTP Zugang für Benutzer der Gruppe “sftp” anders behandeln soll, als den Zugang anderer User muss zuerst die Zeile geändert werden, die mit „Subsystem“ beginnt. Diese kommentiert man am besten wie unten dargestellt aus und fügt die neue Subsystem Zeile darunter ein.

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Danach begibt man sich ans Ende der sshd_config und fügt die folgenden Zeilen ein:

Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

Die erste Konfigurationsanweisung ändert das SFTP-Subsystem auf den internen SFTP-Server der. Mit der zweiten Anweisung greift jedes mal, wenn sich ein Benutzer der Gruppe „sftp“ authentifiziert. Der Benutzer wird in sein Home-Directory (%h) eingesperrt und es wird explizit der internal-sftp erzwungen. TCP-Forwarding und X11-Forwarding ist aus Sicherheitsgründen deaktiviert.

Schritt 2: SFTP Gruppe und Benutzer anlegen

Als Nächstes muss die in der Konfigurationsdatei erwähnte Gruppe „sftp“ angelegt werden.

addgroup sftp

Danach kann bereits der erste SFTP Benutzer angelegt werden.

useradd -m -s /bin/false -G sftp sftptest

Der oben genannte Befehl legt den Benutzer „sftptest“ an. Zusätzlich wird sein Home-Verzeichnis automatisch erstellt (-m), Shell-Zugang verweigert (-s /bin/false) und die Gruppe sftp zugewiesen (-G sftp).

Mit folgendem Befehl wird dem Benutzer „sftptest“ schließlich noch ein Passwort zugewiesen:

passwd sftptest

Schritt 3: Rechte übertragen

Im letzten Schritt müssen die Rechte des Home-Verzeichnises an root übertragen werden, da sonst kein Login möglich ist.

chown root:root /home/sftptest/
chmod 0755 /home/sftptest/

Damit der Benutzer Dateien hochladen kann, wird ein Verzeichnis anlegt das ihm gehört.

mkdir /home/sftptest/upload
chown sftptest:sftptest /home/sftptest/upload

Damit ist der SFTP Server mit chroot Umgebung fertig eingerichtet.

Schreibe einen Kommentar

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