FTP steht für „File Transfer Protocol“ und ist ein großartiges Protokoll zum Herunterladen von Dateien von einem entfernten oder lokalen Server oder zum Hochladen von Dateien auf den Server. Die Verwendung von FTP erweist sich als eine ziemlich einfache Aufgabe, nachdem es richtig eingerichtet wurde. Es funktioniert mit einem Server, der auf Verbindungen (standardmäßig auf Port 21) von Clients wartet. Die Clients können mit ihrem Benutzerkonto auf ein Remote-Verzeichnis zugreifen und dort Dateien herunterladen oder hochladen, je nachdem, welche Berechtigungen ihnen erteilt wurden. Es ist auch möglich, eine anonyme Autorisierung zu konfigurieren, was bedeutet, dass Benutzer kein eigenes Konto benötigen, um sich mit dem FTP-Server zu verbinden.
Unter Ubuntu Linux ist eine Vielzahl verschiedener FTP-Server- und Client-Softwarepakete verfügbar. Sie können sogar standardmäßige GUI- und Befehlszeilentools als FTP-Client verwenden. Ein sehr beliebtes und hochgradig konfigurierbares FTP-Serverpaket ist vsftpd, das für viele Linux-Systeme verfügbar ist, einschließlich Ubuntu.
In diesem Handbuch werden wir die Schritt-für-Schritt-Anleitung zur Installation von vsftpd auf Ubuntu durchgehen. 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.
FTP reicht für einige Situationen aus, aber für Verbindungen über das Internet wird SFTP empfohlen. Dies liegt daran, dass FTP über eine Internetverbindung nicht sicher verwendet werden kann, da Ihre Anmeldeinformationen und Daten unverschlüsselt übertragen werden. Das „S“ in SFTP steht für „Secure“ und tunnelt das FTP-Protokoll durch SSH, wodurch die Verschlüsselung bereitgestellt wird, die zum Herstellen einer sicheren Verbindung erforderlich ist. Weitere Informationen zu SFTP finden Sie in unserem Leitfaden zur sicheren Übertragung von Dateien mit SFTP.
In diesem Tutorial lernen Sie:
- Wie man vsftpd unter Ubuntu installiert und konfiguriert
- So richten Sie ein FTP-Benutzerkonto ein
- Wie man sich über die Befehlszeile mit dem FTP-Server verbindet
- So verbinden Sie sich mit dem FTP-Server über die GUI
- Anonyme FTP-Anmeldung konfigurieren
- So ändern Sie den Standard-FTP-Listening-Port
- Fehlerbehebung beim FTP-Verbindungsfehler „Verbindung abgelehnt“
Verbindung zum FTP-Server unter Ubuntu Linux
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Ubuntu-Linux |
Software | vsftpd |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
vsftpd-Installation
Installieren Sie vsftpd auf Ihrem Ubuntu-System, indem Sie diesen Befehl in das Terminal eingeben:
$ sudo apt install vsftpd
vsftpd-Server konfigurieren
- Es empfiehlt sich immer, eine Sicherungskopie der ursprünglichen Konfigurationsdatei aufzubewahren, falls später etwas schief geht. Lassen Sie uns die Standard-Konfigurationsdatei umbenennen:
$ sudo mv /etc/vsftpd.conf /etc/vsftpd.conf_orig
- Erstellen Sie eine neue vsftpd-Konfigurationsdatei mit nano oder einem anderen Texteditor Ihrer Wahl:
$ sudo nano /etc/vsftpd.conf
- 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 dies 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 Ihre neu erstellte
/etc/vsftpd.conf
ein Datei, speichern Sie die Änderungen und schließen Sie die Datei.
vsftpd-Konfigurationsdatei - Die eingebaute Firewall von Ubuntu blockiert standardmäßig den FTP-Datenverkehr, aber der folgende Befehl erstellt eine Ausnahme in UFW, um den Datenverkehr zuzulassen:
$ sudo ufw allow from any to any port 20,21,10000:10100 proto tcp
- Wenn die Konfigurationsdatei gespeichert und die Firewall-Regeln aktualisiert sind, starten Sie vsftpd neu, um die neuen Änderungen zu übernehmen:
$ sudo systemctl restart vsftpd
Erstellen Sie einen FTP-Benutzer
Unser FTP-Server ist bereit, eingehende Verbindungen zu empfangen, also ist es jetzt an der Zeit, ein neues Benutzerkonto zu erstellen, das wir verwenden, um uns mit dem FTP-Dienst zu verbinden.
- Verwenden Sie diesen ersten Befehl, um ein neues Konto namens
ftpuser
zu erstellen , und den zweiten Befehl, um ein Passwort für das Konto festzulegen:$ sudo useradd -m ftpuser $ sudo passwd ftpuser New password: Retype new password: passwd: password updated successfully
- Um zu überprüfen, ob alles richtig 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"
Über die Befehlszeile mit dem FTP-Server verbinden
Sie sollten sich jetzt entweder über die IP-Adresse oder den Hostnamen mit Ihrem FTP-Server verbinden können. Stellen Sie zunächst sicher, dass das standardmäßige FTP-Client-Dienstprogramm auf Ihrem System installiert ist, indem Sie den folgenden Befehl ausführen. Es wird entweder die Software installieren oder Ihnen mitteilen, dass sie bereits auf dem System vorhanden ist.
$ sudo apt install ftp
Um von der Befehlszeile aus eine Verbindung herzustellen und zu überprüfen, ob alles funktioniert, öffnen Sie ein Terminal und verwenden Sie den FTP-Befehl von Ubuntu, um eine Verbindung zu Ihrer Loopback-Adresse (127.0.0.1) herzustellen.
$ ftp 127.0.0.1Verbindung zum FTP-Server über die Befehlszeile
Wie Sie im obigen Screenshot sehen können, konnten wir uns beim FTP-Server anmelden, indem wir den Benutzernamen und das Passwort angeben, die wir zuvor konfiguriert haben. Als nächstes versuchen wir, ein ls
auszugeben Befehl, der die Testdatei auflisten sollte, die wir in den vorherigen Schritten erstellt haben.
ftp> lsAuflisten unserer Testdatei, um sicherzustellen, dass wir Inhalte des FTP-Servers anzeigen können
Ihre Ausgabe sollte wie im obigen Screenshot aussehen und eine erfolgreiche Anmeldung und ein ls
anzeigen Befehl, der unsere zuvor erstellte Testdatei anzeigt.
Über die GNOME-GUI mit dem FTP-Server verbinden
Sie können sich auch per GUI mit Ihrem FTP-Server verbinden, wenn Sie dies bevorzugen. Es gibt viele Optionen für FTP-Clients, aber die standardmäßige GNOME-GUI auf Ubuntu bietet bereits die Möglichkeit, vom Dateimanager aus eine Verbindung zu FTP-Servern herzustellen. So verwenden Sie es, um sich mit Ihrem FTP-Server zu verbinden.
- Öffnen Sie den Dateimanager über das Menü "Aktivitäten" oder die Schnellstartleiste.
- Klicken Sie auf „Andere Standorte“ und geben Sie
ftp://127.0.0.1
ein im Feld „Mit Server verbinden“ unten im Fenster und klicken Sie auf Verbinden.
Verbindung zum FTP-Server über den GNOME-Dateimanager - Wählen Sie „registrierter Benutzer“ und geben Sie dann die Anmeldedaten des FTP-Kontos ein, das wir zuvor eingerichtet haben, und klicken Sie auf „Verbinden“. Eingabe unserer FTP-Benutzerdaten
- Bei erfolgreicher Verbindung sehen Sie die zuvor erstellte Testdatei. Sie können diese Datei jetzt herunterladen und anzeigen oder Ihre eigenen Inhalte in das Verzeichnis hochladen. Erfolgreiche Verbindung zum FTP-Server, zeigt unsere Testdatei
Anonymen Zugriff in vsftpd zulassen
Bisher haben wir gesehen, wie man neue Benutzer erstellt, 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 Passwort anzugeben, können Sie eine anonyme Authentifizierung konfigurieren. Befolgen Sie die nachstehenden Schritte, um es einzurichten.
- Zuerst müssen wir die
/etc/vsftpd.conf
bearbeiten Datei, öffnen Sie sie also mit nano oder einem anderen Texteditor.$ sudo nano /etc/vsftpd.conf
- Suchen Sie als Nächstes nach
anonymous_enable=NO
Zeile und ändern Sie die Einstellung aufYES
.anonymous_enable=YES
- Wenn Sie fertig sind, verlassen 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
- Um die anonyme Anmeldung zu testen, geben Sie
ftp 127.0.0.1
aus verwenden Sieanonymous
als Ihren Benutzernamen und ein leeres Passwort. Sie sollten230 Login successful
erhalten Nachricht, wie im Screenshot unten gezeigt.
Anmelden am FTP-Server mit anonymem
Standard-FTP-Portnummer ändern
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 /etc/vsftpd.conf
vornehmen Datei. Verwenden Sie am Ende der Datei den listen_port
Direktive, um einen anderen Port anzugeben, den vsftpd verwenden soll. Wenn Sie beispielsweise die folgende Zeile hinzufügen, wird vsftpd angewiesen, auf Port 2121 zu lauschen:
listen_port=2121
Abschlussgedanken
In diesem Handbuch haben wir gesehen, wie Sie mit dem vsftpd-Softwarepaket einen FTP-Server unter Ubuntu Linux erstellen. Wir haben auch gelernt, wie man die Befehlszeile oder die GNOME-GUI als FTP-Client verwendet, um sich mit dem Server zu verbinden. Wenn Sie dieser Anleitung folgen, können Computer in Ihrem lokalen Netzwerk auf Ihr System zugreifen, um Dateien entweder über die Befehlszeile oder ihren bevorzugten FTP-Client zu speichern und abzurufen.
Fehlerbehebung
Der häufigste Fehler, den Sie möglicherweise erhalten, ist die Meldung „Verbindung abgelehnt“, wenn Sie versuchen, eine Verbindung zum Server herzustellen. Dies kann verschiedene Gründe haben, wird jedoch häufig mit einer Firewall in Verbindung gebracht, die die Verbindung blockiert, oder mit einer falsch konfigurierten vstpd-Datei. Stellen Sie sicher, dass der FTP-Port nicht von Ihrer Firewall blockiert wird, indem Sie diesen Befehl ausführen:
$ sudo ufw allow from any to any port 20,21,10000:10100 proto tcp
Überprüfen Sie auch den Status des vsftpd-Dienstes, um sicherzustellen, dass er ausgeführt wird und keine Startfehler aufgetreten sind.
$ systemctl status vsftpdÜberprüfung des Status des vsftpd-Dienstes
Verwenden Sie die folgenden Befehle, um vsftpd zu starten oder den Dienst nach dem Anwenden von Konfigurationsänderungen neu zu starten.
$ sudo systemctl start vsftpd OR $ sudo systemctl restart vsftpd
Denken Sie schließlich daran, dass ein Router oder eine externe Firewall auch für das Blockieren Ihrer Verbindung verantwortlich sein könnte. Wenn Sie sich mit ftp 127.0.0.1
erfolgreich mit Ihrem FTP-Server verbinden können auf dem Server selbst ausführen und die obigen Schritte zur Fehlerbehebung befolgt haben, aber keine Verbindung zum FTP-Server von einem Remote-System herstellen können, dann befindet sich wahrscheinlich ein Gerät zwischen den beiden Systemen, das die Verbindung blockiert.