# 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](https://security.appspot.com/vsftpd.html "GPL-lizenzierter FTP-Server für unixoide Systeme: 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:

```bash
sudo apt-get install vsftpd
```

[![Bild: Ubuntu 22.04: vsftpd-Installation im Terminal](https://www.ionos.de/digitalguide/fileadmin/_processed_/0/5/csm_vsftpd-installation-ubuntu-2204_90633f9b4b.webp "Ubuntu 22.04: vsftpd-Installation im Terminal")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/vsftpd-installation-ubuntu-2204.png) 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](https://www.ionos.de/hosting/ftp-server-mieten "Secure FTP-Server mieten bei IONOS") bei IONOS – dank SSH, SSL/[TLS](https://www.ionos.de/digitalguide/server/sicherheit/tls-transport-layer-security/) 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)](https://www.ionos.de/server/vps "IONOS VPS günstig mieten") und [Dedicated Servern](https://www.ionos.de/server/dedicated-server "Dedicated Server von IONOS") 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.

<table>
  <thead>
    <tr>
      <th>Ubuntu-FTP-Server-Szenario</th>
      <th>Passender Tarif von IONOS</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Einfacher FTP-Server; sporadische Datenübertragung</td>
      <td>VPS Linux M</td>
    </tr>
    <tr>
      <td>Großer FTP-Server im eigenen Unternehmen; regelmäßige Datenübertragung</td>
      <td>VPS Linux XL</td>
    </tr>
    <tr>
      <td>Öffentlicher FTP-Server; kontinuierliche Datenübertragung</td>
      <td>Dedicated Server AR6-32 SSD</td>
    </tr>
  </tbody>
</table>

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

[![Bild: Ausschnitt verfügbarer Dokumente im etc-Ordner](https://www.ionos.de/digitalguide/fileadmin/_processed_/1/1/csm_etc-ordner-vsftpd-conf_bff8496e26.webp "Ausschnitt verfügbarer Dokumente im etc-Ordner")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/etc-ordner-vsftpd-conf.png) 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.

[![Bild: Einblick in die vsftpd.conf-Datei](https://www.ionos.de/digitalguide/fileadmin/_processed_/3/a/csm_vsftpd-conf-gedit_45c5d273e0.webp "Einblick in die vsftpd.conf-Datei")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/vsftpd-conf-gedit.png) 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](https://www.ionos.de/digitalguide/server/knowhow/ftp-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`:

```txt
anonymous_enable=YES
```

[![Bild: vsftpd.conf: Konfiguration des anonymen FTP-Zugriffs](https://www.ionos.de/digitalguide/fileadmin/_processed_/8/4/csm_ubuntu-ftp-server-anonymer-login_b29b8c936f.webp "vsftpd.conf: Konfiguration des anonymen FTP-Zugriffs")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/ubuntu-ftp-server-anonymer-login.png) 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:

```txt
chroot_local_user=YES
```

### 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:

```txt
#local_enable=YES
```

[![Bild: Ubuntu-FTP-Server: Konfiguration der Rechte lokaler User](https://www.ionos.de/digitalguide/fileadmin/_processed_/c/d/csm_lokale-ftp-user-erlaubt_55cb55af12.webp "Ubuntu-FTP-Server: Konfiguration der Rechte lokaler User")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/lokale-ftp-user-erlaubt.png) 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:

```txt
write_enable=YES
```

### 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:

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

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:

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

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

<table>
  <thead>
    <tr>
      <th>Option</th>
      <th>Standardwert</th>
      <th>Beschreibung</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`download_enable`</td>
      <td>-</td>
      <td>Downloads aktivieren (`YES`) bzw. deaktivieren (`NO`)</td>
    </tr>
    <tr>
      <td>`ssl_enable`</td>
      <td>`NO`</td>
      <td>SSL-Verschlüsselung für den FTP-Zugriff freischalten</td>
    </tr>
    <tr>
      <td>`force_anon_logins_ssl`</td>
      <td>`NO`</td>
      <td>SSL-Verbindung für anonyme User verbindlich machen (`YES`)</td>
    </tr>
    <tr>
      <td>`force_local_logins_ssl`</td>
      <td>`NO`</td>
      <td>SSL-Verbindung für lokale User verbindlich machen (`YES`)</td>
    </tr>
    <tr>
      <td>`anon_max_rate`</td>
      <td>`0`</td>
      <td>Maximale Übertragungsgeschwindigkeit (in Byte/Sekunde) für anonyme User; `0` steht für eine unlimitierte Rate</td>
    </tr>
    <tr>
      <td>`local_max_rate`</td>
      <td>`0`</td>
      <td>Maximale Übertragungsgeschwindigkeit (in Byte/ Sekunde) für lokale User; `0` steht für eine unlimitierte Rate</td>
    </tr>
    <tr>
      <td>`max_clients`</td>
      <td>`0`</td>
      <td>Maximale Anzahl an Clients, die zur gleichen Zeit angemeldet sein können; `0` bedeutet, dass keinerlei Beschränkung besteht</td>
    </tr>
    <tr>
      <td>`max_per_ip`</td>
      <td>`0`</td>
      <td>Maximale Anzahl an Verbindungen, die von einer IP-Adresse möglich sind; `0` bedeutet, dass keinerlei Beschränkung besteht</td>
    </tr>
    <tr>
      <td>`anon_root`</td>
      <td>`/home/ftp`</td>
      <td>Standardverzeichnis anonymer User</td>
    </tr>
  </tbody>
</table>

Eine vollständige Liste aller Optionen können Sie im Übrigen mithilfe des folgenden Befehls über das Terminal abrufen:

```bash
man vsftpd.conf
```

[![Bild: Man-Page der vsftpd-Konfigurationsdatei](https://www.ionos.de/digitalguide/fileadmin/_processed_/5/0/csm_vsftpd-conf-manuals_ced84c321a.webp "Man-Page der vsftpd-Konfigurationsdatei")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/vsftpd-conf-manuals.png) In den Manuals der Ubuntu-FTP-Server-Anwendung finden Sie detaillierte Beschreibungen zu allen verfügbaren Optionen. ## 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:

```bash
sudo systemctl restart vsftpd
```

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

```bash
sudo systemctl start vsftpd
```

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

```bash
sudo useradd -m user -s/usr/sbin/nologin
sudo passwd user
```

Anschließend **erlauben Sie den Anmeldezugriff für die NoLogin-Shell**, indem Sie an das Ende der Datei `/etc/shells` folgende Zeile einfügen:

```txt
/usr/sbin/nologin
```

### 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](https://www.ionos.de/digitalguide/server/konfiguration/filezilla-tutorial-zum-ftp-clientprogramm/). Die Installation funktioniert also auf dem altbewährten Wege via Terminal:

```bash
sudo apt-get install filezilla
```

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

[![Bild: FileZilla Site Manager](https://www.ionos.de/digitalguide/fileadmin/_processed_/b/e/csm_filezilla-site-manager_b93e88813c.webp "FileZilla Site Manager")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/filezilla-site-manager.png) 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:

```bash
chmod a-w */home/user*
```

2. **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:

```txt
allow_writeable_chroot=YES
```


This is a markdown version of: [https://www.ionos.de/digitalguide/server/konfiguration/ubuntu-ftp-server-installation-und-konfiguration/](https://www.ionos.de/digitalguide/server/konfiguration/ubuntu-ftp-server-installation-und-konfiguration/) for AI/LLM consumption.