📁 FTP-Server installieren (vsftpd)
📁 Install FTP Server (vsftpd)
In diesem Tutorial installieren und konfigurieren wir einen FTP-Server mit vsftpd (Very Secure FTP Daemon) auf Ubuntu/Debian. Schritt für Schritt — vom Installieren bis zum Testen.
In this tutorial, we'll install and configure an FTP server using vsftpd (Very Secure FTP Daemon) on Ubuntu/Debian. Step by step — from installation to testing.
vsftpd installieren
Install vsftpd
Zuerst aktualisieren wir die Paketlisten und installieren vsftpd:
First, we update the package lists and install vsftpd:
sudo apt update
sudo apt install vsftpd -y
Überprüfe, ob vsftpd installiert wurde:
Verify that vsftpd was installed:
vsftpd -v
# Ausgabe z.B.: vsftpd: version 3.0.5
vsftpd konfigurieren
Configure vsftpd
Erstelle zuerst ein Backup der originalen Konfigurationsdatei und bearbeite sie dann:
First, create a backup of the original configuration file, then edit it:
# Backup erstellen / Create backup
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
# Konfigurationsdatei bearbeiten / Edit configuration file
sudo nano /etc/vsftpd.conf
Setze folgende Einstellungen in der Datei /etc/vsftpd.conf:
Set the following options in the /etc/vsftpd.conf file:
# Anonymen Zugriff deaktivieren / Disable anonymous access
anonymous_enable=NO
# Lokale Benutzer erlauben / Allow local users
local_enable=YES
# Schreibzugriff erlauben / Enable write access
write_enable=YES
# Benutzer in ihrem Home-Verzeichnis einsperren
# Chroot users to their home directory
chroot_local_user=YES
allow_writeable_chroot=YES
# Lokale umask (Standard-Dateiberechtigungen)
# Local umask (default file permissions)
local_umask=022
# Passive Mode Ports festlegen / Set passive mode ports
pasv_min_port=30000
pasv_max_port=31000
# Banner-Nachricht / Banner message
ftpd_banner=Willkommen auf dem FTP-Server!
FTP-Benutzer erstellen
Create FTP User
Erstelle einen dedizierten Benutzer für den FTP-Zugang:
Create a dedicated user for FTP access:
# Neuen Benutzer erstellen / Create new user
sudo adduser ftpuser
# FTP-Verzeichnis erstellen / Create FTP directory
sudo mkdir -p /home/ftpuser/ftp/upload
# Berechtigungen setzen / Set permissions
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
# Upload-Ordner dem Benutzer zuweisen / Assign upload folder to user
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload
Der Benutzer ftpuser kann jetzt Dateien im Ordner /home/ftpuser/ftp/upload/ hoch- und herunterladen, ist aber in seinem Home-Verzeichnis eingesperrt (Chroot).
The user ftpuser can now upload and download files in the /home/ftpuser/ftp/upload/ folder but is confined to their home directory (chroot).
Firewall-Ports öffnen
Open Firewall Ports
Öffne die notwendigen Ports in der UFW-Firewall:
Open the necessary ports in the UFW firewall:
# FTP-Ports öffnen / Open FTP ports
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
# Passive Mode Ports öffnen / Open passive mode ports
sudo ufw allow 30000:31000/tcp
# Firewall-Status prüfen / Check firewall status
sudo ufw status
Port 21 ist der FTP-Kontrollkanal, Port 20 wird für den Datentransfer im Active Mode verwendet. Die Ports 30000-31000 sind für den Passive Mode.
Port 21 is the FTP control channel, port 20 is used for data transfer in Active Mode. Ports 30000-31000 are for Passive Mode.
Dienst starten & aktivieren
Start & Enable Service
Starte vsftpd und aktiviere den Dienst beim Systemstart:
Start vsftpd and enable the service at boot:
# Dienst neu starten (lädt Konfiguration neu)
# Restart service (reloads configuration)
sudo systemctl restart vsftpd
# Dienst beim Systemstart aktivieren / Enable at boot
sudo systemctl enable vsftpd
# Status prüfen / Check status
sudo systemctl status vsftpd
Du solltest active (running) in der Ausgabe sehen. Damit läuft dein FTP-Server!
You should see active (running) in the output. Your FTP server is now running!
Verbindung testen
Test Connection
Teste die Verbindung von einem anderen Rechner oder lokal:
Test the connection from another machine or locally:
Per Terminal:
Via Terminal:
# Lokal testen / Test locally
ftp localhost
# Von einem anderen Rechner / From another machine
ftp DEINE-SERVER-IP
# Einloggen mit: ftpuser und dem gewählten Passwort
# Login with: ftpuser and the chosen password
Mit FileZilla (GUI):
With FileZilla (GUI):
Lade FileZilla herunter und verbinde dich mit:
Download FileZilla and connect with:
Host: DEINE-SERVER-IP
Port: 21
Protokoll: FTP
Benutzer: ftpuser
Passwort: (dein gewähltes Passwort)
Tipp: SFTP statt FTP
FTP überträgt Daten unverschlüsselt — auch Passwörter! Für produktive Umgebungen solltest du stattdessen SFTP (SSH File Transfer Protocol) verwenden, das automatisch mit einem SSH-Server verfügbar ist. SFTP verschlüsselt alle Daten und benötigt keinen separaten FTP-Server. Schau dir unser SSH-Server Tutorial an!
FTP transfers data unencrypted — including passwords! For production environments, you should use SFTP (SSH File Transfer Protocol) instead, which is automatically available with an SSH server. SFTP encrypts all data and doesn't require a separate FTP server. Check out our SSH Server Tutorial!
Warnung / Warning
Stelle sicher, dass du anonymous_enable=NO gesetzt hast, damit keine unautorisierten Benutzer auf deinen Server zugreifen können. Ändere außerdem immer das Standard-Passwort und nutze starke Passwörter.
Make sure you have anonymous_enable=NO set so that unauthorized users cannot access your server. Also, always change the default password and use strong passwords.