Nur für unsere Blog-Besucher: Zusätzlich 3 Monate gratis + 10 % Rabatt auf den Dreijahresplan YSBLOG10
Schnapp dir den Deal

Wie stellt man das ein FTP auf Linux-Servern – Vollständiger Leitfaden

Zuletzt aktualisiert: September 7, 2026 8 min gelesen Prahlad Prajapati
Einrichtung FTP unter Linux

Einzurichten FTP Auf einem Linux-Server vsftpd installieren und konfigurieren, einen eingeschränkten Bereich erstellen FTP Benutzer, Firewall-Ports öffnen (21 und ein passiver Bereich), optionales TLS für die Verschlüsselung aktivieren und mit einem testen FTP Dieser Leitfaden enthält Schritt-für-Schritt-Anweisungen für Ubuntu/Debian und RHEL/CentOS/AlmaLinux mit sicheren, produktionsreifen Einstellungen.

Wenn Sie sich fragen, wie Sie es einrichten FTP Auf einem Linux-Server sind Sie hier genau richtig. In diesem Tutorial führe ich Sie durch den Prozess. Installation und Härtung eines FTP Server mit vsftpd, Öffnen der Firewall und SELinux-Regeln, Aktivieren FTPS-Verschlüsselung und Tests mit FileZilla oder lftp. Der Prozess ist anfängerfreundlich, folgt aber den Best Practices für Unternehmensumgebungen, die ich auch dort anwende.

Bevor Sie beginnen: FTP vs SFTP und was Sie wählen sollten

FTP ist ein veralteter Dateitransfer Protokoll, das Daten im Klartext sendet. SFTP (Teil von Open)SSH) verschlüsselt den Datenverkehr Ende-zu-Ende und wird im Allgemeinen aus Sicherheitsgründen bevorzugt. Wenn Sie unbedingt die klassische Methode verwenden müssen. FTP Aus Gründen der Kompatibilität sollte TLS immer aktiviert sein (FTPS), um Anmeldeinformationen und Daten zu verschlüsseln. Dieser Leitfaden konzentriert sich auf vsftpd (sehr sicher). FTP Daemon) mit optionalem TLS.

Was wir verwenden werden

Wir werden vsftpd einsetzen, da es schnell, stabil und weit verbreitet ist. Die Schritte umfassen Ubuntu/Debian und RHEL/CentOS/AlmaLinux. Wir konfigurieren den passiven Modus, Chroot-Umgebungen, Benutzer-Zulassungslisten und (optional) FTPSo können Sie Sicherheitsprüfungen bestehen und reibungslos mit GUI-Clients wie FileZilla arbeiten.

Voraussetzungen:

  • Ein Linux-Server (Ubuntu 22.04+/20.04+, Debian 11/12, AlmaLinux/RHEL/CentOS 8+)
  • Root- oder Sudo-Berechtigungen
  • Firewall-Zugriff (UFW oder firewalld) und, auf RHEL-basierten Systemen, SELinux-Tools
  • Eine Domäne oder IP-Adresse, über die sich Clients verbinden können

Schritt 1: vsftpd installieren

Ubuntu / Debian

sudo apt update
sudo apt install -y vsftpd
sudo systemctl enable --now vsftpd
sudo systemctl status vsftpd

RHEL/CentOS/AlmaLinux

sudo dnf install -y vsftpd policycoreutils-python-utils
sudo systemctl enable --now vsftpd
sudo systemctl status vsftpd

Wenn der Dienst aktiv ist, können Sie mit der Konfiguration fortfahren.

Schritt 2: Sichern und Absichern der vsftpd-Konfiguration

Sichern Sie die Standardkonfiguration und öffnen Sie sie zur Bearbeitung:

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

Verwenden Sie diese sicheren, produktionsreifen Einstellungen. Fügen Sie die folgenden Zeilen hinzu oder aktualisieren Sie sie:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES

# Chroot users into their home
chroot_local_user=YES
allow_writeable_chroot=YES

# Passive mode for firewalls/NAT
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100

# Allowlist specific users only
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

# Improve security hygiene
pam_service_name=vsftpd
seccomp_sandbox=YES

Speichern und neu starten:

sudo systemctl restart vsftpd

Schritt 3: Erstellen Sie eine eingeschränkte FTP Mitglied

Erstellen Sie einen dedizierten Benutzer und verhindern Sie den Shell-Zugriff. Wir fügen außerdem `nologin` zu `/etc/shells` hinzu, damit PAM dies zulässt. FTP Anmeldungen mit dieser Shell.

# Create user and set password
sudo adduser ftpuser
sudo passwd ftpuser

# Restrict shell access
sudo usermod -s /usr/sbin/nologin ftpuser
echo /usr/sbin/nologin | sudo tee -a /etc/shells

# Optional: create a dedicated FTP directory
sudo mkdir -p /home/ftpuser/ftp
sudo chown -R ftpuser:ftpuser /home/ftpuser/ftp

Erlauben Sie dem Benutzer nun die Anmeldung über die Zulassungsliste:

echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
sudo systemctl restart vsftpd

Schritt 4: Firewall-Ports öffnen (FTP + Passive Reichweite)

UFW (Ubuntu/Debian)

sudo ufw allow 21/tcp
sudo ufw allow 40000:40100/tcp
sudo ufw reload
sudo ufw status

firewalld (RHEL/CentOS/AlmaLinux)

sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=40000-40100/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Die Verwendung des passiven Modus vermeidet komplexe NAT-Traversals und wird für Cloud-Server hinter Sicherheitsgruppen oder Load Balancern empfohlen.

Schritt 5: SELinux konfigurieren für FTP (Nur für RHEL-basierte Systeme)

Aktivieren Sie den Zugriff auf das Home-Verzeichnis und den passiven Modus; teilen Sie SELinux anschließend Ihren passiven Portbereich mit:

sudo setsebool -P ftp_home_dir 1
sudo setsebool -P ftpd_use_passive_mode 1
sudo semanage port -a -t ftp_port_t -p tcp 40000-40100 || 
sudo semanage port -m -t ftp_port_t -p tcp 40000-40100

Wenn semanage Falls es nicht gefunden wird, installieren Sie das Paket policycoreutils-python-utils (wie bereits oben beschrieben).

Verschlüsseln FTP (FTPS) schützt Anmeldeinformationen und Daten während der Übertragung. Generieren Sie ein selbstsigniertes Zertifikat oder verwenden Sie ein gültiges Zertifikat Ihrer Zertifizierungsstelle.

# Generate a self-signed cert (valid 3 years)
sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 
 -keyout /etc/ssl/private/vsftpd.key 
 -out /etc/ssl/certs/vsftpd.crt 
 -subj "/CN=$(hostname -f)"

# Set permissions
sudo chmod 600 /etc/ssl/private/vsftpd.key

Bearbeiten Sie die Datei vsftpd.conf und fügen Sie Folgendes hinzu:

ssl_enable=YES
allow_anon_ssl=NO
force_local_logins_ssl=YES
force_local_data_ssl=YES

rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key

# Harden TLS
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
require_ssl_reuse=NO
ssl_ciphers=HIGH

Starten Sie den Dienst neu:

sudo systemctl restart vsftpd

Bei Clients wie FileZilla wählen Sie „FTP über TLS (explizit)“, um Anmeldungen im Klartext zu vermeiden.

Schritt 7: Testen Sie Ihre FTP Server

Befehlszeilentest

# Install lftp (recommended)
sudo apt install -y lftp  # Ubuntu/Debian
sudo dnf install -y lftp  # RHEL/CentOS/AlmaLinux

# Connect (replace server_ip or domain)
lftp -u ftpuser ftp://server_ip

# With FTPS:
lftp -u ftpuser ftps://server_ip
# If certificate is self-signed:
set ssl:verify-certificate no

GUI-Test (FileZilla)

  • Host: Ihre Server-IP oder Domain
  • Protokoll: FTP - wenn FTPS aktiviert, wählen Sie „FTP — TLS (explizit)”
  • Hafen: 21
  • Verschlüsselung: Erfordert explizite FTP über TLS (empfohlen)
  • Anmeldetyp: Normal, Benutzer: ftpuser, Passwort: Ihr Passwort

Häufige Fehlerbehebung FTP Fehler

  • 530 Anmeldefehler: Stellen Sie sicher, dass der Benutzer angemeldet ist. /etc/vsftpd.userlistDas Passwort ist korrekt, und /usr/sbin/nologin ist in aufgeführt /etc/shells.
  • 500 OOPS: Ausführung mit beschreibbarem Root-Verzeichnis wird verweigert: Beibehalten allow_writeable_chroot=YES oder das Chroot-Verzeichnis des Benutzers nicht beschreibbar machen (und einen beschreibbaren Unterordner verwenden).
  • Zeitüberschreitung der Verbindung: Offener Port 21 und passive Ports (40000–40100). Überprüfen Sie die Cloud-Sicherheitsgruppen und die lokale Firewall.
  • TLS-Handshake/GnuTLS -15: Hinzufügen require_ssl_reuse=NO in vsftpd.conf und neu starten.
  • RHEL-basierte SELinux-Verweigerungen: Aktivieren ftp_home_dir, ftpd_use_passive_modeund passive Ports zuweisen mit semanage.

Bewährte Methoden, um Ihre FTP Server sicher

  • Bevorzugen SFTP or FTPS: Vermeiden Sie einfache FTP Einloggen, wann immer möglich.
  • Benutzer einschränken: Verwenden userlist_enable=YES und nur bestimmte Konten zulassen.
  • Chroot-Benutzer: Verhindern Sie die seitliche Ausbreitung, indem Sie die Benutzer auf ihre Home-Verzeichnisse beschränken.
  • Passwörter absichern: Strenge Passwortrichtlinien durchsetzen und MFA auf Anwendungsebene in Betracht ziehen.
  • Begrenzung der Exposition: Nur die erforderlichen passiven Portbereiche öffnen; weite Bereiche vermeiden.
  • Überwachungsprotokolle: Prüfen /var/log/vsftpd.log und Systemprotokolle auf verdächtige Aktivitäten überprüfen.
  • Nutzen Sie Fail2ban: Fügen Sie ein vsftpd-Jail hinzu, um Brute-Force-Angriffe zu blockieren.
  • Automatisierte Datensicherung: Regelmäßige Datensicherungen erstellen FTP Inhalte auf externen Speicher auslagern.

Schnelle Alternative: Verwenden Sie SFTP (In Open integriert)SSH)

In vielen Fällen, SFTP ist einfacher und sicherer. Es ist normalerweise Standardmäßig aktiviert mit SSHErstellen Sie einen Benutzer und verbinden Sie sich mit einem SFTP Der Client läuft auf Port 22. Sie können einen chroot-Zugriff durchführen. SFTP-nur Benutzer durch Bearbeiten /etc/ssh/sshd_config mit einem Match Blockieren und Neustarten sshdWenn strenge Compliance-Vorgaben oder veraltete Software erforderlich sind FTP, bleiben bei FTPS.

Häufig gestellte Fragen: So richten Sie es ein FTP auf einem Linux-Server

Is FTP or SFTP Besser geeignet für Linux-Server?

SFTP ist aus Sicherheitsgründen besser, weil es alles verschlüsselt. SSHWenn Sie es unbedingt verwenden müssen FTP Aus Gründen der Kompatibilität verwenden Sie FTPS(FTP (über TLS), sodass Anmeldeinformationen und Dateien nicht im Klartext offengelegt werden. Die meisten modernen Clients unterstützen dies. SFTP und FTPS.

Welche FTP Welchen Server sollte ich unter Ubuntu oder CentOS verwenden?

vsftpd ist aufgrund seines Fokus auf Sicherheit und Stabilität die gängigste Wahl. Alternative Server sind beispielsweise Pro.FTPD und Rein-FTPd, aber vsftpd ist weit verbreitet, einfach abzusichern und wird von den meisten Distributionen unterstützt.

Wie behebe ich den Fehler „500 OOPS: vsftpd: verweigert die Ausführung mit beschreibbarem Root-Verzeichnis“?

Entweder Satz allow_writeable_chroot=YES in /etc/vsftpd.conf oder das chroot-Verzeichnis nicht beschreibbar lassen und ein beschreibbares Unterverzeichnis erstellen (zum Beispiel, /home/ftpuser/ftp/uploadStarten Sie anschließend vsftpd neu.

Welche Firewall-Ports werden benötigt für FTP?

Öffnen Sie TCP 21 für die Steuerung und einen passiven Adressbereich (üblicherweise 40000–40100). Auf RHEL-basierten Systemen mit SELinux muss der passive Adressbereich zusätzlich dem entsprechenden Port zugeordnet werden. ftp_port_t tippe mit semanage und aktivieren ftpd_use_passive_mode.

Wie aktiviere ich? FTP über TLS (FTPS) auf vsftpd?

Generieren Sie ein Zertifikat und fügen Sie es dann hinzu. ssl_enable=YES, einstellen rsa_cert_file und rsa_private_key_filedeaktivieren SSLv2/3 und starten Sie vsftpd neu. Wählen Sie in Ihrem Client „Explizite Anforderung“ aus. FTP über TLS.“ Dadurch werden Anmeldeinformationen und Daten während der Übertragung gesichert.

Fazit

Sie wissen nun, wie Sie es einrichten FTP Auf einem Linux-Server die richtige Vorgehensweise: vsftpd installieren, absichern, die korrekten Firewall-/SELinux-Regeln öffnen und aktivieren FTPS steht für Verschlüsselung. Wenn Sie eine schnellere Route mit professioneller Härtung und 24/7-Support wünschen, hosten Sie auf YouStable und lassen Sie es von unseren Ingenieuren für Sie konfigurieren.

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit * gekennzeichnet.

Nach oben scrollen