15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
30.10.2024
1 +1

Wie man einen FTP-Server auf Ubuntu mit vsftpd installiert und konfiguriert

Die Dateiübertragung ist eine grundlegende Aufgabe für jeden Serveradministrator. Ob Sie Website-Dateien hochladen, Backups verwalten oder große Datensätze zwischen Systemen teilen – ein zuverlässiger FTP-Server macht den gesamten Prozess deutlich effizienter. Diese umfassende Anleitung führt Sie durch die Installation, Konfiguration und Absicherung von vsftpd (Very Secure FTP Daemon) auf Ubuntu — der vertrauenswürdigsten FTP-Serverlösung für Linux-Umgebungen.

Warum vsftpd auf Ubuntu verwenden?

FTP (File Transfer Protocol) ist nach wie vor eine der am häufigsten verwendeten Methoden zur Dateiübertragung zwischen einem lokalen Rechner und einem Remote-Server. Obwohl neuere Alternativen wie SFTP und SCP existieren, bleibt FTP mit SSL/TLS-Verschlüsselung (FTPS) für viele Hosting-Umgebungen eine praktische Wahl.

vsftpd hebt sich als bevorzugter FTP-Daemon auf Ubuntu aus mehreren überzeugenden Gründen hervor:

  • Geringer Ressourcenbedarf — minimaler Ressourcenverbrauch, ideal für VPS-Umgebungen
  • Starkes Sicherheitsmodell — integrierte Unterstützung für SSL/TLS, Chroot-Jails und detaillierte Zugriffskontrollen
  • Aktive Wartung — regelmäßig aktualisiert und gut dokumentiert
  • Kompatibilität — funktioniert nahtlos mit gängigen FTP-Clients wie FileZilla, WinSCP und Cyberduck

Wenn Sie eine VPS-Hosting-Umgebung oder einen Dedizierten Server betreiben, ist vsftpd eine ausgezeichnete Wahl für die sichere und effiziente Verwaltung von Dateiübertragungen.

Voraussetzungen

Stellen Sie vor dem Start sicher, dass Sie Folgendes haben:

  • Ein Server mit Ubuntu 20.04, 22.04 oder 24.04
  • Root- oder sudo-Zugriff auf den Server
  • Grundlegende Kenntnisse der Linux-Befehlszeile
  • UFW-Firewall installiert (empfohlen)

Schritt 1: System aktualisieren

Bevor Sie neue Software installieren, ist es wichtig sicherzustellen, dass Ihre Systempakete vollständig auf dem neuesten Stand sind. Dies verhindert Abhängigkeitskonflikte und stellt sicher, dass Sie die neuesten Sicherheits-Patches erhalten.

Öffnen Sie ein Terminal und führen Sie aus:

sudo apt update
sudo apt upgrade -y

Warten Sie, bis der Upgrade-Prozess abgeschlossen ist, bevor Sie fortfahren.

Schritt 2: vsftpd installieren

Installieren Sie das vsftpd-Paket aus den offiziellen Ubuntu-Repositories:

sudo apt install vsftpd -y

Überprüfen Sie nach Abschluss der Installation, ob der vsftpd-Dienst läuft:

sudo systemctl status vsftpd

Sie sollten eine Ausgabe sehen, die anzeigt, dass der Dienst aktiv (läuft) ist. Wenn der Dienst nicht läuft, starten Sie ihn manuell:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

Das Flag enable stellt sicher, dass vsftpd bei jedem Systemneustart automatisch gestartet wird.

Schritt 3: Standard-Konfigurationsdatei sichern

Erstellen Sie vor der Änderung einer Konfigurationsdatei immer eine Sicherungskopie. So können Sie die ursprünglichen Einstellungen wiederherstellen, falls etwas schiefgeht:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Schritt 4: vsftpd konfigurieren

Die Hauptkonfigurationsdatei für vsftpd befindet sich unter /etc/vsftpd.conf. Öffnen Sie sie mit Ihrem bevorzugten Texteditor:

sudo nano /etc/vsftpd.conf

Nehmen Sie die folgenden Konfigurationsänderungen vor, um sowohl die Funktionalität als auch die Sicherheit zu verbessern:

4.1 — Lokalen Benutzern die Anmeldung erlauben

Suchen Sie die folgende Zeile und entfernen Sie das Kommentarzeichen, um lokalen Systembenutzern die Authentifizierung über FTP zu ermöglichen:

local_enable=YES

4.2 — Datei-Uploads aktivieren

Um authentifizierten Benutzern das Hochladen von Dateien auf den Server zu ermöglichen, entfernen Sie das Kommentarzeichen:

write_enable=YES

4.3 — Benutzer auf ihre Home-Verzeichnisse beschränken (Chroot-Jail)

Dies ist eine wichtige Sicherheitsmaßnahme. Sie verhindert, dass FTP-Benutzer außerhalb ihrer zugewiesenen Home-Verzeichnisse navigieren:

chroot_local_user=YES

4.4 — Passive-Modus-Ports konfigurieren

Der passive Modus ist für Clients hinter NAT oder Firewalls unerlässlich. Fügen Sie die folgenden Zeilen am Ende der Konfigurationsdatei hinzu:

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

4.5 — Zusätzliche empfohlene Sicherheitseinstellungen

Fügen Sie die folgenden Direktiven hinzu oder überprüfen Sie sie für eine gehärtete Konfiguration:

anonymous_enable=NO
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES

> Wichtige Einstellungen erklärt:

> – anonymous_enable=NO — Deaktiviert den anonymen FTP-Zugriff, ein erhebliches Sicherheitsrisiko

> – xferlog_enable=YES — Protokolliert alle Dateiübertragungen zu Prüfzwecken

> – use_localtime=YES — Verwendet die lokale Serverzeit in Protokolleinträgen

Sobald alle Änderungen vorgenommen wurden, speichern Sie die Datei mit Ctrl+O und beenden Sie mit Ctrl+X.

Schritt 5: Einen dedizierten FTP-Benutzer erstellen

Es ist bewährte Praxis, ein dediziertes Benutzerkonto speziell für den FTP-Zugriff zu erstellen, anstatt Ihr Root- oder Administratorkonto zu verwenden:

sudo adduser ftpuser

Folgen Sie den interaktiven Eingabeaufforderungen, um ein sicheres Passwort festzulegen und den Benutzererstellungsprozess abzuschließen.

Erstellen Sie als Nächstes ein dediziertes FTP-Verzeichnis für diesen Benutzer und legen Sie die korrekte Eigentümerschaft und Berechtigungen fest:

sudo mkdir -p /home/ftpuser/ftp/upload
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload

> Warum diese Struktur? Das übergeordnete ftp-Verzeichnis gehört nobody und ist nicht beschreibbar, was die Chroot-Sicherheitsanforderung von vsftpd erfüllt. Das upload-Unterverzeichnis ist der Ort, an dem der Benutzer tatsächlich Dateien liest und schreibt.

Schritt 6: vsftpd neu starten, um Änderungen anzuwenden

Starten Sie nach Abschluss der Konfiguration den vsftpd-Dienst neu:

sudo systemctl restart vsftpd

Bestätigen Sie, dass der Dienst noch korrekt läuft:

sudo systemctl status vsftpd

Schritt 7: UFW-Firewall konfigurieren

Wenn UFW (Uncomplicated Firewall) auf Ihrem Server aktiv ist, müssen Sie die notwendigen Ports für FTP-Datenverkehr öffnen. FTP verwendet Port 21 für Befehle, Port 20 für aktive Modus-Datenübertragungen und den in Ihrer Konfiguration definierten passiven Portbereich:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp

Laden Sie die Firewall neu, um die neuen Regeln anzuwenden:

sudo ufw reload

Überprüfen Sie die aktualisierten Regeln:

sudo ufw status

Schritt 8: FTP-Server testen

Nachdem alles konfiguriert ist, ist es Zeit, die Verbindung zu testen. Sie können jeden Standard-FTP-Client verwenden:

Option A: FileZilla verwenden (GUI-Client)

  1. Öffnen Sie FileZilla und navigieren Sie zu Datei → Site-Manager
  2. Klicken Sie auf Neue Site und geben Sie einen Namen ein
  3. Setzen Sie Protokoll auf FTP – File Transfer Protocol
  4. Geben Sie die IP-Adresse Ihres Servers im Host-Feld ein
  5. Setzen Sie Port auf 21
  6. Setzen Sie Anmeldetyp auf Normal
  7. Geben Sie ftpuser als Benutzernamen und Ihr gewähltes Passwort ein
  8. Klicken Sie auf Verbinden

Option B: Befehlszeile verwenden

ftp your_server_ip

Geben Sie ftpuser und das zugehörige Passwort ein, wenn Sie dazu aufgefordert werden. Testen Sie Datei-Uploads und -Downloads, um zu bestätigen, dass alles wie erwartet funktioniert.

Schritt 9: FTP mit SSL/TLS-Verschlüsselung absichern (dringend empfohlen)

Die Übertragung von Anmeldedaten und Daten über einfaches FTP ist ein erhebliches Sicherheitsrisiko. Die Verschlüsselung Ihrer FTP-Verbindung mit SSL/TLS verwandelt sie in FTPS und schützt Ihre Daten bei der Übertragung.

Ein selbstsigniertes SSL-Zertifikat generieren

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 
-keyout /etc/ssl/private/vsftpd.pem 
-out /etc/ssl/private/vsftpd.pem

vsftpd-Konfiguration für SSL/TLS aktualisieren

Öffnen Sie die Konfigurationsdatei erneut:

sudo nano /etc/vsftpd.conf

Fügen Sie die folgenden Direktiven hinzu oder aktualisieren Sie sie:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Starten Sie vsftpd neu, um die SSL-Konfiguration anzuwenden:

sudo systemctl restart vsftpd

> Profi-Tipp: Erwägen Sie für Produktionsumgebungen die Verwendung eines vertrauenswürdigen SSL-Zertifikats von einer Zertifizierungsstelle anstelle eines selbstsignierten Zertifikats. AlexHost bietet SSL-Zertifikate an, die vollständiges Browser- und Client-Vertrauen ohne Zertifikatswarnungen bieten.

Häufige vsftpd-Probleme beheben

ProblemWahrscheinliche UrsacheLösung
500 OOPS: vsftpd: refusing to run with writable root inside chrootChroot-Verzeichnis ist beschreibbarSchreibberechtigung vom Chroot-Root entfernen: sudo chmod a-w /home/ftpuser/ftp
Verbindung auf Port 21 verweigertFirewall blockiert FTPUFW-Regeln mit sudo ufw status überprüfen
Verbindungsfehler im passiven ModusPassiver Portbereich nicht geöffnetSicherstellen, dass Ports 40000–50000 in UFW geöffnet sind
AnmeldungsauthentifizierungsfehlerFalsche Anmeldedaten oder PAM-ProblemBenutzerexistenz mit id ftpuser überprüfen und Passwort bei Bedarf zurücksetzen
Dateien können nicht hochgeladen werdenwrite_enable nicht gesetztwrite_enable=YES in /etc/vsftpd.conf bestätigen

Um vsftpd-Protokolle für detaillierte Fehlerinformationen zu überprüfen:

sudo tail -f /var/log/vsftpd.log

Die richtige Hosting-Umgebung für Ihren FTP-Server wählen

Die Leistung und Sicherheit Ihres FTP-Servers werden direkt von der Qualität Ihrer zugrunde liegenden Hosting-Infrastruktur beeinflusst. Folgendes sollten Sie berücksichtigen:

  • VPS-Hosting — Ideal für die meisten Anwendungsfälle. Bietet dedizierte Ressourcen, vollständigen Root-Zugriff und die Flexibilität, vsftpd genau nach Bedarf zu konfigurieren.
  • Dedizierte Server — Am besten für Umgebungen mit hohem Datenverkehr oder Organisationen mit strengen Anforderungen an die Datenisolierung. Maximale Leistung und vollständige Kontrolle.
  • Shared Web Hosting — Geeignet für grundlegende Dateiverwaltungsanforderungen mit geringerem Datenverkehrsvolumen. Beachten Sie, dass die vsftpd-Installation Root-Zugriff erfordert, der beim Shared Hosting nicht verfügbar ist.

Für Teams, die neben ihrer Dateiübertragungseinrichtung auch eine professionelle E-Mail-Infrastruktur benötigen, bietet E-Mail-Hosting eine zuverlässige, verwaltete Lösung ohne den Aufwand eines selbst gehosteten Mailservers.

Fazit

Die Einrichtung eines voll funktionsfähigen und sicheren FTP-Servers auf Ubuntu mit vsftpd ist ein unkomplizierter Prozess, wenn er systematisch angegangen wird. Durch das Befolgen dieser Anleitung haben Sie:

  • ✅ vsftpd auf Ubuntu installiert und aktiviert
  • ✅ Sicheren, chroot-gesperrten Benutzerzugriff konfiguriert
  • ✅ Den passiven Modus für breite Client-Kompatibilität eingerichtet
  • ✅ Die korrekten Firewall-Ports geöffnet
  • ✅ Die Verbindung optional mit SSL/TLS-Verschlüsselung gesichert

Ob Sie Website-Dateien verwalten, Backups automatisieren oder teambasiertes Datei-Sharing ermöglichen – vsftpd auf einem gut konfigurierten Ubuntu VPS liefert die Zuverlässigkeit und Sicherheit, die Sie benötigen. Mit der leistungsstarken VPS-Hosting-Infrastruktur von AlexHost erhalten Sie die ideale Grundlage für den Betrieb von vsftpd in der Produktion — mit Unternehmens-Uptime, vollständigem Root-Zugriff und reaktionsschnellem technischen Support, wann immer Sie ihn benötigen.

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen