Website-Suche

FTP-Server unter Linux einrichten


FTP, was für "File Transfer Protocol" steht, ist eine nützliche Methode zum Übertragen von Dateien zwischen einem Client und einem Server. Abhängig von den Berechtigungen, die einem Benutzer erteilt wurden, kann er Verzeichnisse auf dem Server durchlaufen, die Dateien auf den lokalen Computer herunterladen und auch Dateien vom Computer auf den Server hochladen. Normalerweise werden Server dadurch geschützt, dass nur Benutzer mit Konten sich über FTP anmelden können, aber es ist auch möglich, eine anonyme Autorisierung zu konfigurieren, die es jedem ermöglicht, sich mit dem Server zu verbinden, um Dateien herunterzuladen und/oder hochzuladen.

Der Betrieb eines FTP-Servers ist eine gute Wahl, wenn Sie Benutzern den Zugriff auf gehostete Dateien erlauben oder ihnen die Möglichkeit geben müssen, ihre lokalen Dateien auf den Server zu legen. Dies liegt daran, dass FTP weithin unterstützt wird (insbesondere auf einem Linux-System), einfach zu bedienen und leicht zu konfigurieren ist, wenn es um Benutzerberechtigungen geht.

In diesem Tutorial behandeln wir die Schritt-für-Schritt-Anleitung zum Einrichten eines FTP-Servers auf einem Linux-System. Wir werden auch sehen, wie Sie den FTP-Server über verschiedene Einstellungen konfigurieren und dann die Befehlszeile, die GNOME-GUI oder die FTP-Client-Software verwenden, um eine Verbindung zum FTP-Server herzustellen.

WARNUNG – FTP IST NICHT VERSCHLÜSSELT
FTP reicht in einigen Situationen aus, aber für Verbindungen über das Internet wird SFTP empfohlen. Dies liegt daran, dass die Verwendung von FTP über eine Internetverbindung nicht sicher ist, da Ihre Anmeldeinformationen und Daten unverschlüsselt übertragen werden. Das "S" in SFTP steht für "Secure" und tunnelt das FTP-Protokoll über SSH und bietet so die Verschlüsselung, die für den Aufbau einer sicheren Verbindung erforderlich ist. Weitere Informationen zu SFTP finden Sie in unserem Tutorial zum sicheren Übertragen von Dateien mit SFTP.

In diesem Tutorial lernen Sie:

  • So installieren und konfigurieren Sie vsftpd auf den wichtigsten Linux-Distributionen
  • So lassen Sie FTP-Datenverkehr durch die System-Firewall zu
  • So richten Sie ein FTP-Benutzerkonto ein
  • So verbinden Sie sich über die Befehlszeile mit dem FTP-Server
  • So stellen Sie über die GUI eine Verbindung zum FTP-Server her
  • So konfigurieren Sie die anonyme FTP-Anmeldung
  • So ändern Sie den standardmäßigen FTP-Überwachungsport

So installieren Sie vsftpd unter Linux

vsftpd (very secure FTP daemon) ist einer der besten und beliebtesten FTP-Server für Linux. Es gibt auch andere, aber wir empfehlen die Verwendung von vsftpd. Sie können den entsprechenden Befehl unten verwenden, um vsftpd mit dem Paketmanager Ihres Systems zu installieren.

So installieren Sie vsftpd unter Ubuntu, Debian und Linux Mint:


sudo apt install vsftpd

So installieren Sie vsftpd auf Fedora, CentOS, AlmaLinux und Red Hat:


sudo dnf install vsftpd

So installieren Sie vsftpd auf Arch Linux und Manjaro:


sudo pacman -S vsftpd

Konfigurieren eines vsftpd-Servers

Nach der Installation durchlaufen wir eine grundlegende Konfiguration, um den FTP-Server zum Laufen zu bringen:

  1. Es ist immer eine gute Praxis, eine Sicherungskopie der ursprünglichen Konfigurationsdatei aufzubewahren, nur für den Fall, dass später etwas schief geht. Benennen wir die Standardkonfigurationsdatei um:

    
    sudo mv /etc/vsftpd.conf /etc/vsftpd.conf_orig
    
  2. Erstellen Sie eine neue vsftpd-Konfigurationsdatei mit nano oder einem anderen Texteditor, den Sie bevorzugen:

    
    sudo nano /etc/vsftpd.conf
    
  3. Kopieren Sie die folgende Basiskonfiguration in Ihre Datei. Diese Konfiguration reicht für einen einfachen FTP-Server aus und kann später an die spezifischen Anforderungen Ihrer Umgebung angepasst werden, sobald Sie überprüft haben, dass sie ordnungsgemäß funktioniert:

    listen=NO
    listen_ipv6=YES
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    chroot_local_user=YES
    secure_chroot_dir=/var/run/vsftpd/empty
    pam_service_name=vsftpd
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    ssl_enable=NO
    pasv_enable=Yes
    pasv_min_port=10000
    pasv_max_port=10100
    allow_writeable_chroot=YES

    Fügen Sie die obigen Zeilen in die neu erstellte Datei /etc/vsftpd.conf ein, speichern Sie die Änderungen und schließen Sie die Datei.

  4. Ihre Linux-Firewall ist möglicherweise so konfiguriert, dass derzeit Verbindungen zu FTP blockiert werden, aber wenn Sie den entsprechenden Befehl unten für Ihre Distribution ausführen, wird eine Ausnahme erstellt, um den Datenverkehr zuzulassen:

    Auf Ubuntu und Systemen, die ufw (unkomplizierte Firewall) verwenden:

    
    sudo ufw allow from any to any port 20,21 proto tcp
    

    Auf RHEL-basierten Distributionen oder anderen Distributionen, die firewalld verwenden:

    
    sudo firewall-cmd --zone=public --permanent --add-service=ftp
    

    Oder wenn Sie nur iptables und kein Firewall-Frontend verwenden:

    
    sudo iptables -A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 20,21 -j ACCEPT
    
  5. Nachdem Sie die Konfigurationsdatei gespeichert und die Firewallregeln aktualisiert haben, starten Sie vsftpd neu, um die neuen Änderungen zu übernehmen:

    
    sudo systemctl restart vsftpd
    

Erstellen eines FTP-Benutzers

Unser FTP-Server ist bereit, eingehende Verbindungen zu empfangen, daher ist es jetzt an der Zeit, ein neues Benutzerkonto zu erstellen, das wir für die Verbindung mit dem FTP-Dienst verwenden werden.

  1. Verwenden Sie diesen ersten Befehl, um ein neues Konto mit dem Namen ftpuser zu erstellen, und den zweiten Befehl, um ein Kennwort für das Konto festzulegen:

    
    sudo useradd -m ftpuser
    sudo passwd ftpuser
    New password: 
    Retype new password: 
    passwd: password updated successfully
    
  2. Um zu überprüfen, ob alles ordnungsgemäß funktioniert, sollten Sie mindestens eine Datei im Home-Verzeichnis von ftpuser speichern. Diese Datei sollte sichtbar sein, wenn wir uns in den nächsten Schritten bei FTP anmelden.

    
    sudo bash -c "echo FTP TESTING > /home/ftpuser/FTP-TEST"
    

Verbinden Sie sich über die Befehlszeile mit dem FTP-Server

  1. Sie sollten jetzt in der Lage sein, sich entweder über die IP-Adresse oder den Hostnamen mit Ihrem FTP-Server zu verbinden. Um eine Verbindung über die Befehlszeile herzustellen und zu überprüfen, ob alles funktioniert, öffnen Sie ein Terminal und verwenden Sie den Befehl ftp, um eine Verbindung zu Ihrer Loopback-Adresse (127.0.0.1) herzustellen.

    
    ftp 127.0.0.1
    

  2. Wie Sie im obigen Screenshot sehen können, konnten wir uns beim FTP-Server anmelden, indem wir den Benutzernamen und das Passwort angegeben haben, die wir zuvor konfiguriert haben. Als Nächstes versuchen wir, einen ls-Befehl auszugeben, der die Testdatei auflisten sollte, die wir in den vorherigen Schritten erstellt haben.

    
    ftp> ls
    

Ihre Ausgabe sollte wie im obigen Screenshot aussehen und eine erfolgreiche Anmeldung und einen ls-Befehl anzeigen, der unsere zuvor erstellte Testdatei anzeigt.

Verbinden Sie sich über die GUI mit dem FTP-Server

Die meisten Desktop-Umgebungen verfügen über eine integrierte Möglichkeit, eine Verbindung zu FTP-Servern herzustellen. Auch wenn dies bei Ihnen nicht der Fall ist, gibt es viele kostenlose FTP-Clients für Linux. In den folgenden Anweisungen verwenden wir die GNOME-Desktop-Umgebung auf Ubuntu, um eine Verbindung zum FTP-Server herzustellen. Wenn Sie eine andere GUI verwenden, suchen Sie in Ihrem Dateimanager nach einer Option, um eine Verbindung zu einem externen Server herzustellen – von dort aus sollten die Anweisungen in etwa die gleichen sein wie unten:

  1. Klicken Sie in Ihrem Dateimanager auf "Andere Speicherorte" (kann anders genannt werden, wenn Sie GNOME nicht verwenden) und geben Sie ftp://127.0.0.1 in das Feld "Mit Server verbinden" am unteren Rand des Fensters ein und klicken Sie auf Verbinden.

  2. Wählen Sie "Registrierter Benutzer" und geben Sie dann die Anmeldeinformationen des FTP-Kontos ein, die wir zuvor eingerichtet haben, und klicken Sie auf Verbinden.

  3. Nach erfolgreicher Verbindung wird die zuvor erstellte Testdatei angezeigt. Sie können diese Datei nun herunterladen und anzeigen oder Ihre eigenen Inhalte in das Verzeichnis hochladen.

Anonymen Zugriff in vsftpd zulassen

Bisher haben wir gesehen, wie man neue Benutzer anlegt, die auf den FTP-Server zugreifen können. Wenn Sie möchten, dass andere auf Ihren FTP-Server zugreifen können, ohne einen Benutzernamen und ein Kennwort anzugeben, können Sie die anonyme Authentifizierung konfigurieren. Führen Sie die folgenden Schritte aus, um es einzurichten.

  1. Zuerst müssen wir die Datei /etc/vsftpd.conf bearbeiten, also öffnen Sie sie mit nano oder einem anderen Texteditor.

    
    sudo nano /etc/vsftpd.conf
    
  2. Suchen Sie als Nächstes nach der Zeile anonymous_enable=NO und ändern Sie die Einstellung in JA.

    
    anonymous_enable=YES
    
  3. Wenn Sie fertig sind, beenden Sie diese Datei, während Sie die neuen Änderungen speichern, und starten Sie dann den vsftpd-Dienst neu, damit die Änderungen wirksam werden.

    
    sudo systemctl restart vsftpd
    
  4. Um die anonyme Anmeldung zu testen, geben Sie den Befehl ftp 127.0.0.1 ein, verwenden Sie anonymous als Benutzernamen und ein leeres Kennwort. Sie sollten die Meldung 230 Login erfolgreich erhalten, wie im Screenshot unten gezeigt.

Ändern der Standard-FTP-Portnummer

Standardmäßig überwacht das FTP-Protokoll Port 21 für die Benutzerauthentifizierung und Port 20 für die Datenübertragung. Wir können dieses Verhalten jedoch ändern, indem wir eine kleine Änderung an der Datei /etc/vsftpd.conf vornehmen. Verwenden Sie am Ende der Datei die Direktive listen_port, um einen anderen Port anzugeben, den vsftpd verwenden soll. Wenn Sie z. B. die folgende Zeile hinzufügen, wird vsftpd angewiesen, Port 2121 zu überwachen:


listen_port=2121

Abschließende Gedanken

In diesem Tutorial haben wir gesehen, wie man einen FTP-Server auf einem Linux-System über vsftpd einrichtet. Wir haben auch gelernt, wie man die Befehlszeile oder die GUI als FTP-Client verwendet, um eine Verbindung zum Server herzustellen. Wenn Sie einen FTP-Server ausführen, können Computer in Ihrem lokalen Netzwerk auf Ihr System zugreifen, um Dateien zu speichern und abzurufen, entweder über die Befehlszeile oder ihren bevorzugten FTP-Client.

Verwandte Artikel: