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.