- 1 1. Einführung
- 2 2. Installation von vsftpd
- 3 3. Grundlegende Konfiguration
- 4 4. Sicherheit verbessern
- 5 5. Unterstützung für japanische Dateinamen
- 6 6. Passive Mode und Firewall-Konfiguration
- 7 7. Benutzerspezifische Konfiguration
- 8 8. Überprüfung der Funktionalität
- 9 9. Fehlerbehebung
- 10 10. Schlussfolgerung
- 11 FAQ
1. Einführung
Das Errichten eines FTP-Servers auf Ubuntu ist eine hochpraktische Lösung für Entwickler und Administratoren, die Dateien effizient übertragen möchten. Besonders beim Einrichten eines Heimservers oder einer einfachen internen Dateifreigabeumgebung bleibt FTP (File Transfer Protocol) eine einfach zu deployende und unkomplizierte Option.
Was ist ein FTP-Server?
Ein FTP-Server ist eine dedizierte Server-Software, die zum Übertragen von Dateien über das Internet oder ein lokales Netzwerk verwendet wird. Benutzer verbinden sich mit dem Server über eine FTP-Client-Anwendung, um Dateien hoch- oder herunterzuladen.
Während sichere Alternativen wie SFTP und SCP häufiger geworden sind, wird FTP aufgrund seiner Einfachheit und Leichtigkeit weiterhin weit verbreitet verwendet. In eingeschränkten Netzwerken oder für grundlegende Anwendungsfälle bleibt FTP ein praktisches und effektives Protokoll.
Die Rolle eines FTP-Servers auf Ubuntu
Ubuntu ist eine der beliebtesten Linux-Distributionen und wird weit verbreitet für Serverumgebungen verwendet. Durch das Einrichten eines FTP-Servers auf Ubuntu wird das Teilen von Dateien zwischen mehreren Geräten und Benutzern viel einfacher.
Typische Anwendungsfälle umfassen:
- Übertragen von Dateien auf einen Webserver
- Integration mit IoT-Geräten wie Raspberry Pi
- Teilen interner Unternehmensdokumente
Die Kombination aus Ubuntu und einem FTP-Server ermöglicht flexible und effiziente Dateiverwaltung.
Zweck dieses Artikels und Zielgruppe
Dieser Artikel erklärt, wie man einen FTP-Server auf Ubuntu schrittweise aufbaut, auf eine Weise, die auch für Anfänger leicht verständlich ist. Er richtet sich an Leser, die:
- Mit grundlegenden Ubuntu-Operationen vertraut sind, aber neu bei FTP
- Einen FTP-Server für lokale oder leichte Geschäftszwecke aufbauen möchten
- Sicherheitsüberlegungen und Probleme wie Dateinamenkodierung verstehen möchten
Indem Sie den Schritten in diesem Leitfaden folgen, werden Sie in der Lage sein, eine sichere und praktische FTP-Serverumgebung aufzubauen. Im nächsten Abschnitt beginnen wir mit der Installation eines der beliebtesten verfügbaren FTP-Server: vsftpd.
2. Installation von vsftpd
Beim Aufbau eines FTP-Servers auf Ubuntu ist die am häufigsten verwendete Software vsftpd (Very Secure FTP Daemon). Wie der Name schon sagt, ist es mit dem Gedanken an Sicherheit entwickelt und leichtgewichtig und stabil, was es in Unternehmens- und Bildungsumgebungen weit verbreitet macht.
Dieser Abschnitt erklärt, wie man vsftpd auf Ubuntu installiert und den Dienst so konfiguriert, dass er automatisch startet.
Installation von vsftpd
Zuerst installieren Sie vsftpd mit dem Paketverwaltungssystem von Ubuntu (APT). Führen Sie die folgenden Befehle in der Reihenfolge aus:
sudo apt update
sudo apt install vsftpd
sudo apt update: Aktualisiert die Paketlistesudo apt install vsftpd: Installiert das vsftpd-Paket
Sobald die Installation abgeschlossen ist, startet der vsftpd-Dienst automatisch.
Überprüfen des Dienststatus
Um zu überprüfen, ob vsftpd korrekt installiert und läuft, verwenden Sie den folgenden Befehl:
sudo systemctl status vsftpd
Wenn Sie active (running) sehen, funktioniert der FTP-Server normal.
Aktivieren des automatischen Starts
vsftpd ist standardmäßig normalerweise für den automatischen Start aktiviert, aber es ist gute Praxis, dies zu bestätigen:
sudo systemctl enable vsftpd
Dies stellt sicher, dass vsftpd nach Systemneustarts automatisch startet.
Vergessen Sie nicht die Firewall (UFW)-Einstellungen
Wenn UFW (Uncomplicated Firewall) auf Ubuntu aktiviert ist, müssen Sie die FTP-Ports freigeben:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
Dies öffnet die Standardports von FTP: 20 (Daten) und 21 (Befehl).
Nach der Änderung der Firewall-Regeln UFW neu laden:
sudo ufw reload
3. Grundlegende Konfiguration
Nach der Installation von vsftpd ist der nächste Schritt, sein Verhalten durch Bearbeiten der Konfigurationsdatei anzupassen. Obwohl vsftpd eine sehr feingranulare Kontrolle bietet, sind viele Funktionen standardmäßig deaktiviert, sodass Sie die benötigten Funktionen explizit aktivieren müssen.
Dieser Abschnitt erklärt die häufigsten und essenziellen Konfigurationsoptionen.
Speicherort der Konfigurationsdatei
Die Hauptkonfigurationsdatei für vsftpd befindet sich unter:
/etc/vsftpd.conf
Bearbeiten Sie die Datei mit dem folgenden Befehl:
sudo nano /etc/vsftpd.conf
Nach den Änderungen starten Sie vsftpd neu, um sie zu übernehmen:
sudo systemctl restart vsftpd
Schreiboperationen erlauben (Uploads, Löschungen, Änderungen)
Standardmäßig erlaubt vsftpd keine Datei-Uploads oder -Änderungen. Um Schreibzugriff zu aktivieren, kommentieren Sie die folgende Zeile aus oder fügen Sie sie hinzu:
write_enable=YES
Dies erlaubt Benutzern, Dateien in ihren Home-Verzeichnissen hochzuladen, zu löschen und zu ändern.
Lokalen Benutzer-Login aktivieren
Um Ubuntu-Systembenutzern den Login über FTP zu erlauben, aktivieren Sie die folgende Option:
local_enable=YES
Dies erlaubt Benutzern, die in /etc/passwd aufgeführt sind, den Login über FTP.
Verzeichnisauflistung aktivieren
Falls Verzeichnisauflistungen in FTP-Clients fehlschlagen, überprüfen Sie die folgenden Einstellungen:
listen=YES
listen_ipv6=NO
Falls IPv6 auf Ihrem System deaktiviert ist, aber listen_ipv6=YES weiterhin aktiviert ist, können Verbindungsprobleme auftreten.
Login-Banner setzen (Optional)
Sie können eine benutzerdefinierte Nachricht anzeigen, wenn Benutzer sich mit dem FTP-Server verbinden:
ftpd_banner=Welcome to your custom Ubuntu FTP server!
Dies ist nützlich, um Betriebsmitteilungen oder Kontaktinformationen anzuzeigen.
ASCII-Modus-Übertragungen aktivieren (Falls erforderlich)
Falls Sie Textdateien mit unterschiedlichen Zeilenumbruchformaten korrekt übertragen müssen, aktivieren Sie den ASCII-Modus:
ascii_upload_enable=YES
ascii_download_enable=YES
Der Binärmodus ist in den meisten Fällen ausreichend, aber der ASCII-Modus kann in spezifischen Umgebungen nützlich sein.
vsftpd erfordert explizite Berechtigung für jede Funktion, was die Konfiguration transparent und sicher macht. Starten Sie den Dienst immer neu, nachdem Sie die Konfigurationsdatei geändert haben.
4. Sicherheit verbessern
Obwohl FTP bequem ist, verschlüsselt es den Datenverkehr standardmäßig nicht, was Sicherheitsbedenken aufwirft – insbesondere bei der Nutzung über das Internet. Eine ordnungsgemäße Sicherheitskonfiguration ist essenziell.
Dieser Abschnitt stellt wichtige Sicherheitsmaßnahmen vor, die in vsftpd verfügbar sind.
Benutzerzugriff mit chroot einschränken
Das Erlauben von FTP-Benutzern, Verzeichnisse außerhalb ihres Home-Verzeichnisses zu erreichen, ist gefährlich. Verwenden Sie chroot, um Benutzer auf ihre Home-Verzeichnisse zu beschränken.
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_local_user=YESverhindert, dass Benutzer Verzeichnisse oberhalb ihres Home-Verzeichnisses erreichen.allow_writeable_chroot=YESist erforderlich, wenn das Home-Verzeichnis Schreibrechte hat.
Ohne diese Einstellung tritt der folgende Fehler auf:
500 OOPS: vsftpd: refusing to run with writable root inside chrootLogin-Benutzer einschränken (Whitelist)
Das Erlauben aller Systembenutzer, über FTP einzuloggen, erhöht das Sicherheitsrisiko. Stattdessen schränken Sie den Zugriff mit einer Whitelist ein.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Fügen Sie erlaubte Benutzer zur Liste hinzu:
sudo nano /etc/vsftpd.userlist
ftpuser1
ftpuser2
Nur explizit aufgeführte Benutzer können einloggen.
Verschlüsselte Kommunikation mit FTPS (SSL/TLS) aktivieren
Standard-FTP überträgt Anmeldedaten und Daten im Klartext. Um Abfangen zu verhindern, aktivieren Sie FTPS (FTP over SSL/TLS).
Erstellen Sie ein SSL-Zertifikat:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Fügen Sie das Folgende zu vsftpd.conf hinzu:
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Clients können nun explizites FTPS verwenden, um sich zu verbinden.
Unnötige Funktionen deaktivieren
Deaktivieren Sie ungenutzte Funktionen, um die Angriffsfläche zu reduzieren:
anonymous_enable=NO
Dies deaktiviert explizit den anonymen Login.
5. Unterstützung für japanische Dateinamen
Beim Übertragen von Dateien über FTP können japanische Dateinamen aufgrund von Codierungsunterschieden unlesbar werden – insbesondere zwischen Windows und Ubuntu.
Häufige Ursachen für Probleme mit der Dateinamenkodierung
- Die Ubuntu-Locale ist nicht auf UTF-8 eingestellt
- Die Kodierung des FTP-Clients stimmt nicht überein
- vsftpd läuft nicht im UTF-8-Modus
Überprüfen und Konfigurieren der Ubuntu-Locale
locale
LANG=ja_JP.UTF-8
Wenn UTF-8 nicht aktiviert ist:
sudo update-locale LANG=ja_JP.UTF-8
source /etc/default/locale
sudo locale-gen ja_JP.UTF-8
Überprüfen der UTF-8-Unterstützung von vsftpd
utf8_filesystem=YES
Diese Option existiert möglicherweise nicht in allen Versionen, aber UTF-8-Systemlocales reichen in der Regel aus.
FTP-Client-Einstellungen (Beispiel FileZilla)
- Site-Manager öffnen
- Den Server auswählen
- Den Reiter Charset öffnen
- Benutzerdefiniertes Charset aktivieren und auf
UTF-8setzen
6. Passive Mode und Firewall-Konfiguration
FTP-Probleme wie fehlgeschlagene Verzeichnisauflistungen oder hängende Übertragungen werden oft durch falsche Einstellungen im Passive Mode oder der Firewall verursacht.
Was ist Passive Mode?
- Active Mode: Der Server initiiert die Datenverbindung
- Passive Mode: Der Client initiiert alle Verbindungen
Passive Mode wird für moderne Netzwerke dringend empfohlen.
Passive Mode in vsftpd aktivieren
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
Externe IP-Adresse angeben (NAT-Umgebungen)
pasv_address=203.0.113.45
Erforderliche Ports in UFW öffnen
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload
7. Benutzerspezifische Konfiguration
In Produktionsumgebungen ist es üblich, unterschiedliche Berechtigungen und Verzeichnisse pro Benutzer zuzuweisen.
Dedizierte FTP-Benutzer erstellen
sudo adduser ftpuser1
sudo useradd -m -s /usr/sbin/nologin ftpuser2
Empfohlene Verzeichnisstruktur
/home/ftpuser1/
└── files/
sudo mkdir /home/ftpuser1/files
sudo chown ftpuser1:ftpuser1 /home/ftpuser1/files
sudo chmod 755 /home/ftpuser1
Benutzerspezifische Konfigurationsdateien
user_config_dir=/etc/vsftpd_user_conf
sudo mkdir /etc/vsftpd_user_conf
sudo nano /etc/vsftpd_user_conf/ftpuser1
local_root=/home/ftpuser1/files
write_enable=YES
8. Überprüfung der Funktionalität
Nach Abschluss aller Einrichtungsschritte überprüfen Sie, ob der FTP-Server korrekt funktioniert.
Kommandozeilen-Test
ftp localhost
ls
cd files
put test.txt
get test.txt
GUI-Client-Test (FileZilla)
Verbindung, Verzeichnisauflistung, Uploads und Downloads überprüfen.
9. Fehlerbehebung
Häufige FTP-Probleme und Lösungen umfassen Anmeldefehler, Berechtigungsfehler, Fehlkonfigurationen im Passive Mode und Kodierungsprobleme.
10. Schlussfolgerung
Dieser Artikel hat erklärt, wie man einen sicheren und praktischen FTP-Server auf Ubuntu mit vsftpd aufbaut, und deckt Installation, Konfiguration, Sicherheit, Kodierung, Passive Mode, Benutzerverwaltung, Überprüfung und Fehlerbehebung ab.
FAQ
Häufig gestellte Fragen zur Einrichtung und zum Betrieb eines FTP-Servers auf Ubuntu.



