Das FTP-Protokoll zählt zu den be­lieb­tes­ten Lösungen für den Upload und den Download von Dateien. In diesem Ratgeber erfahren Sie daher, wie Sie Ihren eigenen Ubuntu-FTP-Server ein­rich­ten und was Sie dabei unbedingt beachten sollten.

In­stal­la­ti­on eines Ubuntu-FTP-Servers

Bevor Sie mit der Ein­rich­tung 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 Pa­ket­ver­wal­tung parat, die Sie lediglich in­stal­lie­ren müssen. Um die Anwendung zu in­stal­lie­ren, rufen Sie einfach das Terminal auf und geben dort den folgenden Befehl ein:

sudo apt-get install vsftpd
bash
Bild: Ubuntu 22.04: vsftpd-Installation im Terminal
Root- bzw. Ad­mi­nis­tra­to­ren­rech­te (sudo) sind Grund­vor­aus­set­zung für die In­stal­la­ti­on von vsftpd.
Tipp

Sie möchten Daten speichern oder trans­fe­rie­ren? Legen Sie den Grund­stein für eine sichere Über­tra­gung 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 An­wen­dungs­sze­na­rio un­ter­schei­den sich die Hardware-An­for­de­run­gen 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 pro­fes­sio­nel­len Provider wie IONOS. Mit den VPS (vServern) und Dedicated Servern stehen Ihnen gleich zwei Ser­ver­mo­del­le für den Betrieb eines leis­tungs­star­ken FTP-Servers zur Verfügung.

In der nach­fol­gen­den Ü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; spo­ra­di­sche Da­ten­über­tra­gung VPS Linux M
Großer FTP-Server im eigenen Un­ter­neh­men; re­gel­mä­ßi­ge Da­ten­über­tra­gung VPS Linux XL
Öf­fent­li­cher FTP-Server; kon­ti­nu­ier­li­che Da­ten­über­tra­gung Dedicated Server AR6-32 SSD
vServer / VPS
VPS un­schlag­bar günstig auf Dell En­ter­pri­se Servern
  • 1 Gbit/s, un­be­grenzt Traffic & mehr Cores
  • Min­des­tens 99,99% Ver­füg­bar­keit & ISO-zer­ti­fi­zier­te Re­chen­zen­tren
  • Aus­ge­zeich­ne­ter 24/7 Premium-Support mit per­sön­li­chem Berater

Ubuntu-FTP-Server-Tutorial: So kon­fi­gu­rie­ren Sie den Service

Im Anschluss an den kurzen In­stal­la­ti­ons­pro­zess können Sie das Terminal wieder schließen und mit der Kon­fi­gu­ra­ti­on des Ubuntu-FTP-Servers beginnen. Hierfür öffnen Sie die Kon­fi­gu­ra­ti­ons­da­tei vsftpd.conf, die sich stan­dard­mä­ßig im Ver­zeich­nis etc befindet.

Bild: Ausschnitt verfügbarer Dokumente im etc-Ordner
Im Ver­zeich­nis „etc“ finden Sie diverse Kon­fi­gu­ra­ti­ons- und In­for­ma­ti­ons­da­tei­en wie z. B. die vsftpd.conf

Um die Kon­fi­gu­ra­ti­ons­da­tei des Ubuntu-FTP-Servers öffnen und be­ar­bei­ten zu können, benötigen Sie einen einfachen Text­edi­tor. Ubuntu hat für solche Zwecke das Programm gedit (GNOME-Editor) bereits ab Werk in­stal­liert.

Der Text­in­halt lässt sich in zwei Bereiche einteilen:

  • Zeilen, die mit dem Rau­te­zei­chen (#) beginnen, sind aus­kom­men­tiert und werden daher von dem vsftpd-Server ignoriert. Ei­ner­seits handelt es sich bei diesen Zeilen um Kom­men­ta­re zu den ver­schie­de­nen Ein­stel­lungs­mög­lich­kei­ten, an­de­rer­seits um de­ak­ti­vier­te Funk­tio­nen.
  • Zeilen, die nicht mit dem Rau­te­zei­chen beginnen, enthalten hingegen die­je­ni­gen In­for­ma­tio­nen, die später vom Server in­ter­pre­tiert werden.
Bild: Einblick in die vsftpd.conf-Datei
Rau­te­zei­chen sind nicht nur Signale für den vsftpd-Server, sondern dienen auch dem Ver­ständ­nis und op­ti­mie­ren die Les­bar­keit.

Für die weitere Ein­rich­tung des FTP-Servers in Ubuntu 22.04 gibt es keine all­ge­mei­ne Vorgabe, denn beim Setup kommt es darauf an, welche Ansprüche Sie an den FTP-Server stellen. In den folgenden Ab­schnit­ten dieser Ubuntu-FTP-Server-Anleitung finden Sie daher In­for­ma­tio­nen über die wich­tigs­ten Ein­stel­lungs­mög­lich­kei­ten und deren Funktion.

Hinweis

Um Än­de­run­gen an der vsftpd.conf zu speichern, benötigen Sie Root-Rechte. An­dern­falls können Sie die Kon­fi­gu­ra­ti­ons­da­tei lediglich lesen.

Anonymen Zugriff erlauben

Per Stan­dard­ein­stel­lung ist vsftpd derart kon­fi­gu­riert, dass Nutzer und Nut­ze­rin­nen sich nur mit einem spe­zi­fi­schen 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 per­sön­li­che Daten angeben zu müssen. Um diese Zu­griffs­art zu ak­ti­vie­ren, suchen Sie den Eintrag anonymous_enable=NO und ersetzen den Parameter NO durch YES:

anonymous_enable=YES
txt
Bild: vsftpd.conf: Konfiguration des anonymen FTP-Zugriffs
Sobald Sie die Zeile „anonymous enable=YES“ ein­ge­tra­gen haben, ist der anonyme Login auf Ihrem Ubuntu-FTP-Server möglich.

Rechte anonymer User erweitern

Stan­dard­mä­ßig sind die Rechte stark ein­ge­schränkt, wenn Nut­ze­rin­nen und Nutzer sich anonym auf einem Ubuntu-FTP-Server anmelden. So ist es bei­spiels­wei­se nur möglich, Dateien her­un­ter­zu­la­den, 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 emp­feh­lens­wert, die Rechte für anonyme Sitzungen zu erweitern. An­dern­falls riskieren Sie, dass Ihr Server von Dritt­per­so­nen zweck­ent­frem­det wird!

Weitere ver­füg­ba­re Optionen für die Er­wei­te­rung der Rechte anonymer User sind folgende:

  • anon_mkdir_write_enable: Anonyme User können neue Ver­zeich­nis­se anlegen, wenn Sie hier den Wert YES eintragen bzw. das aus­kom­men­tie­ren­de # löschen. Vor­aus­set­zung ist, dass write_enable aktiviert ist .
  • anon_other_write_enable=YES: Wenn Sie diese Zeile hin­zu­fü­gen, können Dateien und Ver­zeich­nis­se auf dem FTP-Server auch bei einem un­per­sön­li­chen Zugriff umbenannt und gelöscht werden.
  • anon_upload_enable=YES: Mit dieser Textzeile wird der anonyme Upload von Dateien aktiviert. Vor­aus­set­zun­gen dafür sind, dass Sie write_enable ak­ti­vie­ren und ein separates Upload-Ver­zeich­nis erstellen, da anonyme User nicht direkt in das Home-Ver­zeich­nis schreiben können.

Zugriff lokaler User auf das Home-Ver­zeich­nis be­schrän­ken

Wenn Sie lokalen Usern einzig den Zugang zum eigenen Ho­me­ver­zeich­nis /home/username gewähren wollen, können Sie dies ebenfalls in der vsftpd.conf festlegen. Der hierfür zu­stän­di­ge Aus­zeich­nungs­pa­ra­me­ter ist chroot_local_user. Die Zeile ist in Ubuntu 22.04 stan­dard­mä­ßig aus­kom­men­tiert. Löschen Sie das #, um lokalen Konten den Zugang zu allen anderen Ver­zeich­nis­sen zu un­ter­sa­gen:

chroot_local_user=YES
txt

Login lokaler User ak­ti­vie­ren bzw. de­ak­ti­vie­ren

Um lokalen Benutzern den Zugang zum FTP-Server zu gewähren, muss der Eintrag local_enable=YES gesetzt sein, was per Stan­dard­ein­stel­lung der Fall ist. Wollen Sie lokalen Be­nut­ze­rin­nen und Benutzern den Zugriff auf Ihren Ubuntu-FTP-Server ver­wei­gern, müssen Sie lediglich die ent­spre­chen­de Zeile aus­kom­men­tie­ren, indem Sie ihr das Rau­te­zei­chen vor­an­stel­len:

#local_enable=YES
txt
Bild: Ubuntu-FTP-Server: Konfiguration der Rechte lokaler User
Stan­dard­mä­ßig ist der Login für lokale Be­nut­zer­kon­ten in der vsftpd.conf erlaubt.

Globalen Schreib­zu­griff ak­ti­vie­ren

In Ubuntu 22.04 ist in der Stan­dard­kon­fi­gu­ra­ti­on definiert, dass weder lokale noch anonyme Konten FTP-Befehle nutzen können. Die ent­spre­chen­de Zeile für das globale Schreiben write_enable=YES ist aus­kom­men­tiert. Soll den ein­ge­logg­ten Personen die Mög­lich­keit ein­ge­räumt werden, das Da­tei­sys­tem des vsftpd-Servers an­zu­pas­sen, ist es folglich notwendig, das vor­an­ge­stell­te Rau­te­zei­chen zu entfernen:

write_enable=YES
txt

FTP-Zugriff auf bestimmte Konten be­schrän­ken

In be­stimm­ten Si­tua­tio­nen kann es sinnvoll sein, be­stimm­ten Nut­ze­rin­nen oder Nutzern den Zugang zum Ubuntu-FTP-Server zu verwehren oder klar zu de­fi­nie­ren, welche User sich anmelden können.

Um be­stimm­ten Usern den Zugang zu verwehren, fügen Sie am Ende der Kon­fi­gu­ra­ti­ons­da­tei folgende Zeilen ein:

userlist_deny=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txt

Nut­ze­rin­nen und Nutzer, die in der externen Datei vsftpd.user_list ein­ge­tra­gen sind, wird auf diese Weise der Zugang ver­wei­gert. Alle anderen User können sich in diesem Fall wie gewohnt anmelden.

Wollen Sie nur be­stimm­ten Personen den Zugriff gewähren, muss der Parameter userlist_deny verneint werden. In der Folge können sich nur Nut­zer­kon­ten einloggen, die Sie in die Datei vsftpd.user_list ein­ge­tra­gen 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/-Ver­zeich­nis zu erstellen. Für jeden Nut­zer­kon­ten-Eintrag ist in der Datei eine separate Zeile zu nutzen.

Ubuntu-FTP-Server: Weitere Optionen in der ta­bel­la­ri­schen Übersicht

Option Stan­dard­wert Be­schrei­bung
download_enable - Downloads ak­ti­vie­ren (YES) bzw. de­ak­ti­vie­ren (NO)
ssl_enable NO SSL-Ver­schlüs­se­lung für den FTP-Zugriff frei­schal­ten
force_anon_logins_ssl NO SSL-Ver­bin­dung für anonyme User ver­bind­lich machen (YES)
force_local_logins_ssl NO SSL-Ver­bin­dung für lokale User ver­bind­lich machen (YES)
anon_max_rate 0 Maximale Über­tra­gungs­ge­schwin­dig­keit (in Byte/Sekunde) für anonyme User; 0 steht für eine un­li­mi­tier­te Rate
local_max_rate 0 Maximale Über­tra­gungs­ge­schwin­dig­keit (in Byte/ Sekunde) für lokale User; 0 steht für eine un­li­mi­tier­te Rate
max_clients 0 Maximale Anzahl an Clients, die zur gleichen Zeit an­ge­mel­det sein können; 0 bedeutet, dass keinerlei Be­schrän­kung besteht
max_per_ip 0 Maximale Anzahl an Ver­bin­dun­gen, die von einer IP-Adresse möglich sind; 0 bedeutet, dass keinerlei Be­schrän­kung besteht
anon_root /home/ftp Stan­dard­ver­zeich­nis anonymer User

Eine voll­stän­di­ge Liste aller Optionen können Sie im Übrigen mithilfe des folgenden Befehls über das Terminal abrufen:

man vsftpd.conf
bash
Bild: Man-Page der vsftpd-Konfigurationsdatei
In den Manuals der Ubuntu-FTP-Server-Anwendung finden Sie de­tail­lier­te Be­schrei­bun­gen zu allen ver­füg­ba­ren Optionen.
Dedicated Server
De­di­zier­te Server mit mo­derns­ten Pro­zes­so­ren
  • 100 % En­ter­pri­se-Hardware
  • Kon­fi­gu­rier­ba­re Hardware-Aus­stat­tung
  • ISO-zer­ti­fi­zier­te Re­chen­zen­tren

So nutzen Sie den FTP-Server unter Ubuntu 22.04

Nachdem Sie die Kon­fi­gu­ra­ti­ons­da­tei nach Ihren Wünschen gestaltet haben, dürfen Sie nicht vergessen, diese zu speichern. Damit die Ser­ver­an­wen­dung alle Än­de­run­gen auch übernimmt, ist zudem ein Neustart er­for­der­lich, 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 vor­an­ste­hen­den Befehl einfach den Parameter start durch stop.

FTP-Be­nut­zer­kon­to erstellen

Nachdem Sie nun Ihren Ubuntu-FTP-Server ein­ge­rich­tet und gestartet haben, benötigen Sie ein Be­nut­zer­kon­to, um sich auf diesem anmelden zu können. Bei­spiel­haft 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

An­schlie­ßend erlauben Sie den An­mel­de­zu­griff für die NoLogin-Shell, indem Sie an das Ende der Datei /etc/shells folgende Zeile einfügen:

/usr/sbin/nologin
txt

Ver­bin­dung zum FTP-Server aufbauen

Das erstellte Be­nut­zer­kon­to können Sie nun verwenden, um mit dem FTP-Client Ihrer Wahl die Ver­bin­dung zu dem vsftpd-Server auf­zu­bau­en. Eine beliebte Lösung, deren Pakete Ubuntu stan­dard­mä­ßig vorliegen hat, ist die platt­form­über­grei­fen­de Open-Source-Anwendung FileZilla. Die In­stal­la­ti­on funk­tio­niert also auf dem alt­be­währ­ten Wege via Terminal:

sudo apt-get install filezilla
bash

Öffnen Sie FileZilla und fügen Sie eine neue Ver­bin­dung mit den passenden Daten hinzu: Unter Host geben Sie die IP-Adresse Ihres Ubuntu FTP-Servers an, der – insofern Sie dies nicht in den Ein­stel­lun­gen 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-Ver­bin­dung über Port 21 ein recht hohes Si­cher­heits­ri­si­ko darstellt. Im Feld „Logon Type“ nehmen Sie die Aus­wahl­mög­lich­keit „Normal“. Für „User“ und „Password“ benötigen Sie die zuvor erzeugten An­mel­de­da­ten des Bei­spiel­kon­tos. Mit einem Klick auf „Connect“ verbinden Sie sich mit dem Server.

Bild: FileZilla Site Manager
Der FileZilla-Client bietet de­tail­lier­te Ein­stel­lungs­mög­lich­kei­ten für den Ver­bin­dungs­auf­bau zu einem FTP-Server.

500 OOPS: Si­cher­heits­fea­ture sorgt für Probleme

Wenn Sie einen Ubuntu-FTP-Server ein­ge­rich­tet haben und bestimmte Ein­stel­lun­gen nicht funk­tio­nie­ren, kann das ver­schie­de­ne Hin­ter­grün­de haben: So ist denkbar, dass Sie vergessen haben, den FTP-Server neu zu starten oder die Kon­fi­gu­ra­ti­ons­da­tei zu sichern. Ebenso schnell schlei­chen sich Syn­tax­feh­ler in der vsftpd.conf ein, wenn bei­spiels­wei­se an falscher Stelle ein Leer­zei­chen gesetzt wird. Eine häufige Feh­ler­mel­dung, 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 Ver­bin­dungs­auf­baus auftreten kann, handelt es sich jedoch genau genommen gar nicht um eine Feh­ler­mel­dung, sondern ein Si­cher­heits­fea­ture. Hin­ter­grund ist eine mögliche Ver­wund­bar­keit der glibc-Bi­blio­thek (Ubuntu-Standard-Bi­blio­thek der Pro­gram­mier­spra­che C), die Nutzer mit Schreib­rech­ten für ihr eigenes Root-Ver­zeich­nis ausnutzen könnten. Um diese Si­cher­heits­sper­re zu umgehen, exis­tie­ren zwei Lö­sungs­an­sät­ze:

  1. Schreib­be­rech­ti­gung im Root-Ver­zeich­nis des Nutzers entfernen: Sie entziehen den lokalen Usern die Schreib­rech­te für das eigene Root-Ver­zeich­nis, sodass diese nur noch in Un­ter­ver­zeich­nis­se schreiben können. Diese Ein­schrän­kung löst das „500 OOPS“-Problem, erweist sich jedoch als un­vor­teil­haft, wenn Dateien ge­zwun­ge­ner­ma­ßen in das Root-Ver­zeich­nis ge­schrie­ben werden müssen. Der Terminal-Befehl für diesen Lö­sungs­weg sieht fol­gen­der­ma­ßen aus:
chmod a-w */home/user*
bash
  1. Schreib­be­rech­ti­gung für das Root-Ver­zeich­nis in der vsftpd.conf erlauben: Wenn Sie keinerlei Si­cher­heits­be­den­ken bezüglich eines Miss­brauchs der Schreib­rech­te 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 Kon­fi­gu­ra­ti­ons­da­tei notwendig:
allow_writeable_chroot=YES
txt
Free VPS Trial
vServer kostenlos testen für 30 Tage

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

Zum Hauptmenü