Tipp: Sie können für alle Dateinamen und Verzeichnisse die automatische Vervollständigung mithilfe der Tab-Taste nutzen, sodass Sie nicht die kompletten Datei- oder Verzeichnisnamen manuell eintippen müssen.
Diese Anleitung wurde am 03.04.2023 zuletzt überprüft und aktualisiert.
- Falls Sie es noch nicht getan haben, laden Sie das Programm "PuTTY" herunter.
- Verbinden Sie sich mithilfe von PuTTY via SSH mit Ihrem Root- oder vServer. Hierfür öffnen Sie PuTTY und geben im Textfeld "Host Name (or IP address)" die Domain oder IP-Adresse Ihres Servers ein. Klicken Sie anschließend unten auf "OK".
- Aktualisieren Sie nun Ihre Paketlisten mit dem Befehl
apt update
. - Installieren Sie jetzt möglicherweise verfügbare Updates der auf Ihrem Server bereits installieren Pakete mit dem Befehl
apt upgrade -y
. - Installieren Sie den FTP-Server "ProFTPD" sowie weitere benötigte Pakete mit folgendem Befehl:
apt install proftpd-basic -y
- Erstellen Sie eine Konfigurationsdatei im Verzeichnis "/etc/proftpd/conf.d/", indem Sie den Befehl
nano /etc/proftpd/conf.d/ftp.conf
ausführen. Die Dateien in diesem Verzeichnis werden bei Updates des ProFTPD-Servers nicht überschrieben. - Fügen Sie in diese Konfigurationsdatei nun folgenden Inhalt ein und passen Sie diesen ggf. an (beispielsweise, wenn Sie IPv6 nicht deaktivieren möchten):
# FTP-Benutzer benötigen keine gültige Shell
<Global>
RequireValidShell off
</Global>
# IPv6 deaktivieren (falls gewünscht)
UseIPv6 off
# Home-Verzeichnis als Stammverzeichnis der FTP-Benutzer festlegen
DefaultRoot ~ ftpuser
# Login nur für Benutzer der Gruppe "ftpuser" erlauben
<Limit LOGIN>
DenyGroup !ftpuser
</Limit> - Speichern Sie Ihre Änderungen der Konfiguration, indem Sie STRG + X, danach die "Y"-Taste und anschließend Enter drücken.
- Starten Sie den ProFTPD-Server mit dem Befehl
systemctl restart proftpd
neu, um die soeben erstellte Konfiguration zu übernehmen. -
Ohne Verschlüsselung werden sowohl die Login-Daten als auch die Dateien selbst im Klartext übertragen. Daher sollten Sie SSL/TLS einsetzen. Das benötigte Modul für den ProFTPD-Server ist bereits enthalten und aktiviert, allerdings ist noch eine Konfiguration notwendig. Führen Sie hierfür die folgenden Schritte durch:
- Sie können ein bereits vorhandenes Zertifikat verwenden oder mithilfe des Befehls
openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 1460
ein selbst-signiertes erstellen. Dieses Zertifikat wird unter "/etc/ssl/certs/proftpd.crt" gespeichert und der Private-Key unter "/etc/ssl/private/proftpd.key". Wenn Sie ein selbst-signiertes Zertifikat erstellen, werden einige Daten abgefragt. Das einzige Pflichtfeld ist der "Common Name". Verwenden Sie an dieser Stelle den FQDN oder Hostnamen Ihres Servers. Wenn Sie ein anderes Feld - beispielsweise das Länderkürzel - weglassen möchten, dann geben Sie dort nur "." ein. - Erstellen Sie nun eine Konfigurationsdatei für die Verwendung von TLS, indem Sie den Befehl
nano /etc/proftpd/conf.d/tls.conf
ausführen. - Fügen Sie in diese Konfigurationsdatei den folgenden Inhalt ein und passen Sie ggf. den Pfad zu Ihrem SSL-Zertifikat an, falls Sie ein eigenes, bereits vorhandenes Zertifikat nutzen möchten:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSVerifyClient off
TLSOptions NoSessionReuseRequired
TLSRequired on
</IfModule> - Speichern Sie Ihre Änderungen der Konfiguration, indem Sie STRG + X, danach die "Y"-Taste und anschließend Enter drücken.
- Für Debian 11 (bis Debian 10 und bei Ubuntu nicht notwendig):
- Öffnen Sie die Modul-Konfigurationsdatei von ProFTPD, indem Sie den Befehl
nano /etc/proftpd/modules.conf
ausführen. - Als nächstes entfernen Sie das "#"-Zeichen vor der Zeile "LoadModule mod_tls.c" und speichern Sie die Änderungen, indem Sie STRG + X, danach die "Y"-Taste und anschließend Enter drücken.
- Öffnen Sie die Modul-Konfigurationsdatei von ProFTPD, indem Sie den Befehl
- Starten Sie den ProFTPD-Server daraufhin mithilfe des Befehls
systemctl restart proftpd
noch einmal neu, damit auch die TLS-Konfiguration übernommen wird.
- Sie können ein bereits vorhandenes Zertifikat verwenden oder mithilfe des Befehls
- Nun müssen Sie die Gruppe "ftpuser" anlegen. Dieser Gruppe fügen Sie später alle Benutzer hinzu, die sich beim FTP-Server anmelden dürfen. Verwenden Sie hierfür den folgenden Befehl:
addgroup ftpuser
- Anschließend müssen Sie die Benutzer anlegen, welche sich beim FTP-Server anmelden dürfen. Der Befehl hierfür lautet:
adduser mustermann --shell /bin/false --home /var/www/mustermann
. Ersetzen Sie dabei "mustermann" durch den gewünschten Benutzernamen und "/var/www/mustermann" durch das Home-Verzeichnis, in dem diesem Benutzer Lese- und Schreibrechte gewährt werden sollen. Dies ist gleichzeitig das FTP-Stammverzeichnis des Benutzers. - Vergeben Sie ein sicheres Passwort für den FTP-Benutzer. Während der Passworteingabe werden in PuTTY keine Zeichen erscheinen, das ist aber normal. Bestätigen Sie die Passworteingabe mit der Enter-Taste. Die weiteren Angaben wie Name, Telefonnummer, etc. können Sie einfach mit der Enter-Taste überspringen.
- Fügen Sie Ihren soeben erstellten FTP-Benutzer abschließend noch der Gruppe "ftpuser" hinzu, damit sich dieser auch beim FTP-Server anmelden darf. Nutzen Sie dazu den Befehl
adduser mustermann ftpuser
und ersetzen Sie auch hier wieder "mustermann" durch den von Ihnen gewählten Benutzernamen. - Ihr FTP-Server ist nun einsatzbereit. Sie können sich mit einem FTP-Client wie beispielsweise FileZilla jetzt darauf verbinden und sich mit den Benutzern, die Sie zuvor erstellt und der Gruppe "ftpuser" hinzugefügt haben, einloggen.