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
Ubuntu 22.04: vsftpd-Installation im Terminal
Root- bzw. Administratorenrechte (sudo) sind Grundvoraussetzung für die Installation von vsftpd.
Tipp

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
vServer / VPS
Vollständig virtualisiert mit Root-Zugriff
  • 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.

Ausschnitt verfügbarer Dokumente im etc-Ordner
Im Verzeichnis „etc“ finden Sie diverse Konfigurations- und Informationsdateien wie z. B. die vsftpd.conf

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.
Einblick in die vsftpd.conf-Datei
Rautezeichen sind nicht nur Signale für den vsftpd-Server, sondern dienen auch dem Verständnis und optimieren die Lesbarkeit.

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.

Hinweis

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
vsftpd.conf: Konfiguration des anonymen FTP-Zugriffs
Sobald Sie die Zeile „anonymous enable=YES“ eingetragen haben, ist der anonyme Login auf Ihrem Ubuntu-FTP-Server möglich.

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.

Hinweis

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 Wert YES eintragen bzw. das auskommentierende # löschen. Voraussetzung ist, dass write_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 Sie write_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
txt

Login 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
Ubuntu-FTP-Server: Konfiguration der Rechte lokaler User
Standardmäßig ist der Login für lokale Benutzerkonten in der vsftpd.conf erlaubt.

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
txt

FTP-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
txt

Nutzerinnen 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
txt
Hinweis

In 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
Man-Page der vsftpd-Konfigurationsdatei
In den Manuals der Ubuntu-FTP-Server-Anwendung finden Sie detaillierte Beschreibungen zu allen verfügbaren Optionen.
Dedicated Server
Dedizierte Server mit modernsten Prozessoren
  • 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
bash

Haben Sie den FTP-Server bisher noch nicht gestartet, gelingt dies mit diesem Terminal-Kommando:

sudo systemctl start vsftpd
bash
Tipp

Wollen 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
bash

Anschließ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
txt

Verbindung 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.

FileZilla Site Manager
Der FileZilla-Client bietet detaillierte Einstellungsmöglichkeiten für den Verbindungsaufbau zu einem FTP-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:

  1. 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
  1. 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
txt
Free VPS Trial
vServer kostenlos testen für 30 Tage

Lassen Sie sich von den Vorteilen überzeugen. Probieren Sie Ihren Virtual Server ganz in Ruhe 30 Tage lang aus!

War dieser Artikel hilfreich?
Page top