Wie man einen sicheren FTP-Server auf Ubuntu mit vsftpd erstellt (Einsteiger‑ bis Fortgeschrittenen‑Leitfaden)

目次

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 Paketliste
  • sudo 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=YES verhindert, dass Benutzer Verzeichnisse oberhalb ihres Home-Verzeichnisses erreichen.
  • allow_writeable_chroot=YES ist 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 chroot

Login-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

  1. Die Ubuntu-Locale ist nicht auf UTF-8 eingestellt
  2. Die Kodierung des FTP-Clients stimmt nicht überein
  3. 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)

  1. Site-Manager öffnen
  2. Den Server auswählen
  3. Den Reiter Charset öffnen
  4. Benutzerdefiniertes Charset aktivieren und auf UTF-8 setzen

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.

年収訴求