Sicherer FTP Zugriff über SSH mit chroot

Sicherer FTP Zugriff über SSH mit chroot

Wer selbst Hosting betreibt kennt sicher den Wunsch von Kunden nach einem FTP Account, um unkompliziert Dateien auf den Webserver laden zu können. Auf der anderen Seite ist das original FTP Protokoll alles andere als sicher und permanentes Ziel automatisierter Angriffsversuche. Also nichts was man wirklich auf seinem Server haben möchte.

Zum Glück gibt es eine sichere Alternative dazu, das SSH File Transfer Protocol, auch als sftp bekannt. Die gesamte Kommunikation läuft dabei über den SSH Port (22 TCP), alle Daten werden verschlüsselt. Viele Dateitransfer Programme unterstützen sftp, wie zum Beispiel die OpenSource Software FileZilla. Zusätzlich gibt es die Möglichkeit, den Benutzer in sein Homeverzeichnis „einzusperren“, damit können verschiedene Benutzer auf einem Server arbeiten ohne das die Gefahr besteht, das diese auf fremde Daten zugreifen.

Die Einrichtung ist mittlerweile sehr schnell erledigt, hier als Beispiel auf einem Debian Jessie:

Zuerst einmal legen wir eine Gruppe an, in der alle Benutzer für den Filetransfer zusammengefasst werden:

groupadd filetransfer

Die Datei „/etc/ssh/sshd_config“ wird wie folgt angepasst

auskommentieren:

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

einfügen:

Subsystem sftp internal-sftp

Match group filetransfer
 ChrootDirectory %h
 X11Forwarding no
 AllowTcpForwarding no
 ForceCommand internal-sftp

Das bedeutet, Mitglieder der Gruppe „filetransfer“ werden in Ihr Homeverzeichnis „eingesperrt“, ausserdem können diese weder X11 noch TCP Forwarding nutzen. Der SSH Dämon benötigt im Anschluss an die Änderungen einen Neustart.

Nachdem wir einen Benutzer anlegt haben:

useradd -m -b /var/www ftp-user

der Gruppe „filetransfer“ zugewiesen:

usermod -G filetransfer ftp-user

und Ihm natürlich auch ein Passwort erstellen haben, funktioniert das sichere Login über SSH.

Jörg Leuschner

Schreibe einen Kommentar