Ubuntu-FTP-Server: So funktioniert die Einrichtung
Das FTP-Protokoll zählt zu den beliebtesten Lösungen für den Upload und den Download von Dateien. In diesem Ratgeber erfahren Sie daher, wie Sie Ihren eigenen Ubuntu-FTP-Server einrichten und was Sie dabei unbedingt beachten sollten.
Installation eines Ubuntu-FTP-Servers
Bevor Sie mit der Einrichtung Ihres eigenen FTP-Servers beginnen können, gilt es zunächst, die passende Software zu finden. Ubuntu-Systeme wie Ubuntu 22.04 haben zu diesem Zweck mit vsftpd bereits eine eigene Lösung in der Paketverwaltung parat, die Sie lediglich installieren müssen. Um die Anwendung zu installieren, rufen Sie einfach das Terminal auf und geben dort den folgenden Befehl ein:
sudo apt-get install vsftpd
bash
Sie möchten Daten speichern oder transferieren? Legen Sie den Grundstein für eine sichere Übertragung und mieten Sie Ihren Secure FTP Server bei IONOS – dank SSH, SSL/TLS und täglicher Backups.
Die passende Hardware für Ihren Ubuntu-FTP-Server
Je nach Anwendungsszenario unterscheiden sich die Hardware-Anforderungen eines FTP-Servers unter Ubuntu 22.04. Um eine optimale Anbindung an das Internet zu genießen, empfiehlt sich in jedem Fall das Hosting bei einem professionellen Provider wie IONOS. Mit den VPS (vServern) und Dedicated Servern stehen Ihnen gleich zwei Servermodelle für den Betrieb eines leistungsstarken FTP-Servers zur Verfügung.
In der nachfolgenden Übersicht finden Sie drei mögliche Szenarios für Ihren Ubuntu-FTP-Server und den jeweils am besten dazu passenden Server-Tarif von IONOS.
Ubuntu-FTP-Server-Szenario | Passender Tarif von IONOS |
---|---|
Einfacher FTP-Server; sporadische Datenübertragung | VPS Linux M |
Großer FTP-Server im eigenen Unternehmen; regelmäßige Datenübertragung | VPS Linux XL |
Öffentlicher FTP-Server; kontinuierliche Datenübertragung | Dedicated Server AR6-32 SSD |
- Bis zu 1 Gbit/s Bandbreite & unbegrenzt Traffic
- Schneller NVMe-SSD-Speicher
- Kostenlose Plesk Web Host Edition
Ubuntu-FTP-Server-Tutorial: So konfigurieren Sie den Service
Im Anschluss an den kurzen Installationsprozess können Sie das Terminal wieder schließen und mit der Konfiguration des Ubuntu-FTP-Servers beginnen. Hierfür öffnen Sie die Konfigurationsdatei vsftpd.conf
, die sich standardmäßig im Verzeichnis etc
befindet.

Um die Konfigurationsdatei des Ubuntu-FTP-Servers öffnen und bearbeiten zu können, benötigen Sie einen einfachen Texteditor. Ubuntu hat für solche Zwecke das Programm gedit (GNOME-Editor) bereits ab Werk installiert.
Der Textinhalt lässt sich in zwei Bereiche einteilen:
- Zeilen, die mit dem Rautezeichen (
#
) beginnen, sind auskommentiert und werden daher von dem vsftpd-Server ignoriert. Einerseits handelt es sich bei diesen Zeilen um Kommentare zu den verschiedenen Einstellungsmöglichkeiten, andererseits um deaktivierte Funktionen. - Zeilen, die nicht mit dem Rautezeichen beginnen, enthalten hingegen diejenigen Informationen, die später vom Server interpretiert werden.

Für die weitere Einrichtung des FTP-Servers in Ubuntu 22.04 gibt es keine allgemeine Vorgabe, denn beim Setup kommt es darauf an, welche Ansprüche Sie an den FTP-Server stellen. In den folgenden Abschnitten dieser Ubuntu-FTP-Server-Anleitung finden Sie daher Informationen über die wichtigsten Einstellungsmöglichkeiten und deren Funktion.
Um Änderungen an der vsftpd.conf
zu speichern, benötigen Sie Root-Rechte. Andernfalls können Sie die Konfigurationsdatei lediglich lesen.
Anonymen Zugriff erlauben
Per Standardeinstellung ist vsftpd derart konfiguriert, dass Nutzer und Nutzerinnen sich nur mit einem spezifischen Konto auf dem FTP-Server anmelden können. Das File Transfer Protocol erlaubt jedoch auch eine Login-Prozedur, bei der sich User anonym einloggen können, ohne persönliche Daten angeben zu müssen. Um diese Zugriffsart zu aktivieren, suchen Sie den Eintrag anonymous_enable=NO
und ersetzen den Parameter NO
durch YES
:
anonymous_enable=YES
txt
Rechte anonymer User erweitern
Standardmäßig sind die Rechte stark eingeschränkt, wenn Nutzerinnen und Nutzer sich anonym auf einem Ubuntu-FTP-Server anmelden. So ist es beispielsweise nur möglich, Dateien herunterzuladen, die für alle Personen lesbar sind (anon_world_readable_only=YES
). Verneinen Sie diese Anweisung, ist auch der Download anderer Dateien erlaubt.
Ist der FTP-Server mit dem Internet verbunden, ist es nicht empfehlenswert, die Rechte für anonyme Sitzungen zu erweitern. Andernfalls riskieren Sie, dass Ihr Server von Drittpersonen zweckentfremdet wird!
Weitere verfügbare Optionen für die Erweiterung der Rechte anonymer User sind folgende:
anon_mkdir_write_enable
: Anonyme User können neue Verzeichnisse anlegen, wenn Sie hier den WertYES
eintragen bzw. das auskommentierende#
löschen. Voraussetzung ist, dasswrite_enable
aktiviert ist .anon_other_write_enable=YES
: Wenn Sie diese Zeile hinzufügen, können Dateien und Verzeichnisse auf dem FTP-Server auch bei einem unpersönlichen Zugriff umbenannt und gelöscht werden.anon_upload_enable=YES
: Mit dieser Textzeile wird der anonyme Upload von Dateien aktiviert. Voraussetzungen dafür sind, dass Siewrite_enable
aktivieren und ein separates Upload-Verzeichnis erstellen, da anonyme User nicht direkt in das Home-Verzeichnis schreiben können.
Zugriff lokaler User auf das Home-Verzeichnis beschränken
Wenn Sie lokalen Usern einzig den Zugang zum eigenen Homeverzeichnis /home/username
gewähren wollen, können Sie dies ebenfalls in der vsftpd.conf
festlegen. Der hierfür zuständige Auszeichnungsparameter ist chroot_local_user
. Die Zeile ist in Ubuntu 22.04 standardmäßig auskommentiert. Löschen Sie das #
, um lokalen Konten den Zugang zu allen anderen Verzeichnissen zu untersagen:
chroot_local_user=YES
txtLogin lokaler User aktivieren bzw. deaktivieren
Um lokalen Benutzern den Zugang zum FTP-Server zu gewähren, muss der Eintrag local_enable=YES
gesetzt sein, was per Standardeinstellung der Fall ist. Wollen Sie lokalen Benutzerinnen und Benutzern den Zugriff auf Ihren Ubuntu-FTP-Server verweigern, müssen Sie lediglich die entsprechende Zeile auskommentieren, indem Sie ihr das Rautezeichen voranstellen:
#local_enable=YES
txt
Globalen Schreibzugriff aktivieren
In Ubuntu 22.04 ist in der Standardkonfiguration definiert, dass weder lokale noch anonyme Konten FTP-Befehle nutzen können. Die entsprechende Zeile für das globale Schreiben write_enable=YES
ist auskommentiert. Soll den eingeloggten Personen die Möglichkeit eingeräumt werden, das Dateisystem des vsftpd-Servers anzupassen, ist es folglich notwendig, das vorangestellte Rautezeichen zu entfernen:
write_enable=YES
txtFTP-Zugriff auf bestimmte Konten beschränken
In bestimmten Situationen kann es sinnvoll sein, bestimmten Nutzerinnen oder Nutzern den Zugang zum Ubuntu-FTP-Server zu verwehren oder klar zu definieren, welche User sich anmelden können.
Um bestimmten Usern den Zugang zu verwehren, fügen Sie am Ende der Konfigurationsdatei folgende Zeilen ein:
userlist_deny=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txtNutzerinnen und Nutzer, die in der externen Datei vsftpd.user_list
eingetragen sind, wird auf diese Weise der Zugang verweigert. Alle anderen User können sich in diesem Fall wie gewohnt anmelden.
Wollen Sie nur bestimmten Personen den Zugriff gewähren, muss der Parameter userlist_deny
verneint werden. In der Folge können sich nur Nutzerkonten einloggen, die Sie in die Datei vsftpd.user_list
eingetragen haben:
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txtIn beiden Fällen ist es nötig, die externe Textdatei vsftpd.user_list
manuell im /etc/
-Verzeichnis zu erstellen. Für jeden Nutzerkonten-Eintrag ist in der Datei eine separate Zeile zu nutzen.
Ubuntu-FTP-Server: Weitere Optionen in der tabellarischen Übersicht
Option | Standardwert | Beschreibung |
---|---|---|
download_enable
|
- | Downloads aktivieren (YES ) bzw. deaktivieren (NO )
|
ssl_enable
|
NO
|
SSL-Verschlüsselung für den FTP-Zugriff freischalten |
force_anon_logins_ssl
|
NO
|
SSL-Verbindung für anonyme User verbindlich machen (YES )
|
force_local_logins_ssl
|
NO
|
SSL-Verbindung für lokale User verbindlich machen (YES )
|
anon_max_rate
|
0
|
Maximale Übertragungsgeschwindigkeit (in Byte/Sekunde) für anonyme User; 0 steht für eine unlimitierte Rate
|
local_max_rate
|
0
|
Maximale Übertragungsgeschwindigkeit (in Byte/ Sekunde) für lokale User; 0 steht für eine unlimitierte Rate
|
max_clients
|
0
|
Maximale Anzahl an Clients, die zur gleichen Zeit angemeldet sein können; 0 bedeutet, dass keinerlei Beschränkung besteht
|
max_per_ip
|
0
|
Maximale Anzahl an Verbindungen, die von einer IP-Adresse möglich sind; 0 bedeutet, dass keinerlei Beschränkung besteht
|
anon_root
|
/home/ftp
|
Standardverzeichnis anonymer User |
Eine vollständige Liste aller Optionen können Sie im Übrigen mithilfe des folgenden Befehls über das Terminal abrufen:
man vsftpd.conf
bash
- 100 % Enterprise-Hardware
- Minutengenaue Abrechnung
- Nur bei uns: Cloud-Funktionen
So nutzen Sie den FTP-Server unter Ubuntu 22.04
Nachdem Sie die Konfigurationsdatei nach Ihren Wünschen gestaltet haben, dürfen Sie nicht vergessen, diese zu speichern. Damit die Serveranwendung alle Änderungen auch übernimmt, ist zudem ein Neustart erforderlich, den Sie mit dem folgenden Befehl in die Wege leiten:
sudo systemctl restart vsftpd
bashHaben Sie den FTP-Server bisher noch nicht gestartet, gelingt dies mit diesem Terminal-Kommando:
sudo systemctl start vsftpd
bashWollen Sie den Ubuntu-FTP-Server wieder beenden, ersetzen Sie in dem voranstehenden Befehl einfach den Parameter start
durch stop
.
FTP-Benutzerkonto erstellen
Nachdem Sie nun Ihren Ubuntu-FTP-Server eingerichtet und gestartet haben, benötigen Sie ein Benutzerkonto, um sich auf diesem anmelden zu können. Beispielhaft erstellen wir an dieser Stelle den Benutzer mit dem Namen „ftpuser“ und dem Passwort „test123“.
sudo useradd -m user -s/usr/sbin/nologin
sudo passwd user
bashAnschließend erlauben Sie den Anmeldezugriff für die NoLogin-Shell, indem Sie an das Ende der Datei /etc/shells
folgende Zeile einfügen:
/usr/sbin/nologin
txtVerbindung zum FTP-Server aufbauen
Das erstellte Benutzerkonto können Sie nun verwenden, um mit dem FTP-Client Ihrer Wahl die Verbindung zu dem vsftpd-Server aufzubauen. Eine beliebte Lösung, deren Pakete Ubuntu standardmäßig vorliegen hat, ist die plattformübergreifende Open-Source-Anwendung FileZilla. Die Installation funktioniert also auf dem altbewährten Wege via Terminal:
sudo apt-get install filezilla
bashÖffnen Sie FileZilla und fügen Sie eine neue Verbindung mit den passenden Daten hinzu: Unter Host geben Sie die IP-Adresse Ihres Ubuntu FTP-Servers an, der – insofern Sie dies nicht in den Einstellungen geändert haben – auf Port 21 auf Anfragen lauscht. Wählen Sie das File Transfer Protocol und wenn möglich SFTP (Secure FTP) oder FTP over TLS aus, da eine einfache FTP-Verbindung über Port 21 ein recht hohes Sicherheitsrisiko darstellt. Im Feld „Logon Type“ nehmen Sie die Auswahlmöglichkeit „Normal“. Für „User“ und „Password“ benötigen Sie die zuvor erzeugten Anmeldedaten des Beispielkontos. Mit einem Klick auf „Connect“ verbinden Sie sich mit dem Server.

500 OOPS: Sicherheitsfeature sorgt für Probleme
Wenn Sie einen Ubuntu-FTP-Server eingerichtet haben und bestimmte Einstellungen nicht funktionieren, kann das verschiedene Hintergründe haben: So ist denkbar, dass Sie vergessen haben, den FTP-Server neu zu starten oder die Konfigurationsdatei zu sichern. Ebenso schnell schleichen sich Syntaxfehler in der vsftpd.conf
ein, wenn beispielsweise an falscher Stelle ein Leerzeichen gesetzt wird. Eine häufige Fehlermeldung, die eine gänzlich andere Ursache hat, ist die folgende:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
Bei dieser Meldung, die während des Verbindungsaufbaus auftreten kann, handelt es sich jedoch genau genommen gar nicht um eine Fehlermeldung, sondern ein Sicherheitsfeature. Hintergrund ist eine mögliche Verwundbarkeit der glibc-Bibliothek (Ubuntu-Standard-Bibliothek der Programmiersprache C), die Nutzer mit Schreibrechten für ihr eigenes Root-Verzeichnis ausnutzen könnten. Um diese Sicherheitssperre zu umgehen, existieren zwei Lösungsansätze:
- Schreibberechtigung im Root-Verzeichnis des Nutzers entfernen: Sie entziehen den lokalen Usern die Schreibrechte für das eigene Root-Verzeichnis, sodass diese nur noch in Unterverzeichnisse schreiben können. Diese Einschränkung löst das „500 OOPS“-Problem, erweist sich jedoch als unvorteilhaft, wenn Dateien gezwungenermaßen in das Root-Verzeichnis geschrieben werden müssen. Der Terminal-Befehl für diesen Lösungsweg sieht folgendermaßen aus:
chmod a-w */home/user*
bash- Schreibberechtigung für das Root-Verzeichnis in der
vsftpd.conf
erlauben: Wenn Sie keinerlei Sicherheitsbedenken bezüglich eines Missbrauchs der Schreibrechte haben, können Sie dem Ubuntu-FTP-Server auch mitteilen, dass diese Funktion explizit erwünscht ist. Zu diesem Zweck ist einzig ein weiterer Eintrag in der Konfigurationsdatei notwendig:
allow_writeable_chroot=YES
txtLassen Sie sich von den Vorteilen überzeugen. Probieren Sie Ihren Virtual Server ganz in Ruhe 30 Tage lang aus!