FTP und SFTP sind großartige Protokolle zum Herunterladen von Dateien von einem entfernten oder lokalen Server oder zum Hochladen von Dateien auf den Server. FTP reicht für einige Situationen aus, aber für Verbindungen über das Internet wird SFTP empfohlen. Mit anderen Worten, die Verwendung von FTP über eine Internetverbindung ist nicht sicher, 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.
In diesem Leitfaden gehen wir die Schritt-für-Schritt-Anleitungen durch, um einen FTP-Server über die VSFTP-Software oder einen SFTP-Server über OpenSSH auf AlmaLinux einzurichten. Dann werden wir sehen, wie man von einem Client-AlmaLinux-System aus eine Verbindung zum Server herstellt. Das Einrichten von FTP/SFTP ist ein üblicher Schritt nach der Installation von AlmaLinux oder der Migration von CentOS zu AlmaLinux.
In diesem Tutorial lernen Sie:
- Wie man einen FTP-Server über VSFTPD einrichtet
- So richten Sie einen SFTP-Server über OpenSSH ein
- So richten Sie FTP- und SFTP-Benutzerkonten ein
- So erlauben Sie FTP und SFTP durch die Firewalld
- So stellen Sie über die Befehlszeile eine Verbindung zu einem FTP/SFTP-Server her
- So stellen Sie über die GNOME-GUI eine Verbindung zu einem FTP/SFTP-Server her
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | AlmaLinux |
Software | VSFTPD, OpenSSH |
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 |
Richten Sie einen FTP-Server über VSFTPD ein
Es gibt verschiedene Softwarepakete, mit denen man einen FTP-Server einrichten kann, aber eines der besten ist VSFTPD. Dieser Abschnitt zeigt Ihnen, wie Sie VSFTPD installieren und konfigurieren, um einen FTP-Server auf AlmaLinux einzurichten. Wenn FTP für Ihr Szenario nicht sicher genug ist und Sie lieber SFTP einrichten möchten, scrollen Sie nach unten zum entsprechenden Abschnitt unten.
VSFTPD-Installation
Installieren Sie VSFTPD auf Ihrem System, indem Sie diesen Befehl in das Terminal eingeben:
$ sudo dnf install vsftpd
FSFTPD-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/vsftpd.conf /etc/vsftpd/vsftpd.conf_orig
- Erstellen Sie eine neue VSFTPD-Konfigurationsdatei mit nano oder einem anderen Texteditor Ihrer Wahl:
$ sudo nano /etc/vsftpd/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:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES
Fügen Sie die obigen Zeilen in Ihre neu erstellte
/etc/vsftpd/vsftpd.conf
ein Datei, speichern Sie die Änderungen und schließen Sie die Datei. - Die Standard-Firewall von AlmaLinux (firewalld) blockiert standardmäßig den FTP-Datenverkehr, aber der folgende Befehl erstellt eine Ausnahme, um den Datenverkehr zuzulassen:
$ sudo firewall-cmd --zone=public --add-service=ftp --permanent $ sudo firewall-cmd --reload
- 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 in
ftpuser
speichern 's Home-Verzeichnis. 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
Installieren Sie das FTP-Befehlszeilendienstprogramm mit dem folgenden Befehl:
$ sudo dnf install ftp
Sie sollten sich jetzt entweder über die IP-Adresse oder den Hostnamen mit Ihrem FTP-Server verbinden können. Um sich von der Befehlszeile aus zu verbinden und zu überprüfen, ob alles funktioniert, öffnen Sie ein Terminal und verwenden Sie AlmaLinux’s ftp
Befehl zum Verbinden mit Ihrer Loopback-Adresse (127.0.0.1).
$ ftp 127.0.0.1 Connected to 127.0.0.1 (127.0.0.1). 220 (vsFTPd 3.0.3) Name (127.0.0.1:root): ftpuser 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (127,0,0,1,71,72). 150 Here comes the directory listing. -rw-r--r-- 1 0 0 12 Apr 03 01:11 FTP-TEST 226 Directory send OK. ftp>
Ihre Ausgabe sollte wie der obige Text 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 AlmaLinux 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 im Menü "Aktivitäten".
- 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.
Stellen Sie mit dem GNOME-Dateimanager eine Verbindung zum FTP-Server her - Geben Sie die zuvor eingerichteten Zugangsdaten des FTP-Kontos ein und klicken Sie auf Verbinden. Geben Sie den FTP-Benutzernamen und das Kennwort ein
- Bei erfolgreicher Verbindung sehen Sie die zuvor erstellte Testdatei. Erfolgreiche Verbindung zum FTP-Server
Richten Sie einen SFTP-Server über OpenSSH ein
Wenn Sie OpenSSH bereits auf AlmaLinux installiert und aktiviert haben, benötigen Sie keine zusätzliche Software, um einen SFTP-Server zu betreiben. Befolgen Sie die nachstehenden Anweisungen, um die richtigen Konfigurationsänderungen vorzunehmen, die Ihr System in einen SFTP-Server verwandeln.
Installieren und konfigurieren Sie OpenSSH
- Wenn es noch nicht installiert ist, verwenden Sie den folgenden Befehl, um OpenSSH zu installieren.
$ sudo dnf install openssh-server openssh-clients
- Sobald SSH installiert ist, müssen wir einige Änderungen an der SSHD-Konfigurationsdatei vornehmen. Verwenden Sie nano oder Ihren bevorzugten Texteditor, um es zu öffnen:
$ sudo nano /etc/ssh/sshd_config
- Scrollen Sie zum Ende der Datei und fügen Sie ganz am Ende die folgenden 5 Zeilen hinzu:
Match group sftp ChrootDirectory /home X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
Die obigen Zeilen erlauben Benutzern im
sftp
Gruppe, über SFTP auf ihre Home-Verzeichnisse zuzugreifen, verweigert ihnen jedoch den normalen SSH-Zugriff, sodass sie niemals auf eine Shell zugreifen können. Nachdem Sie diese Zeilen eingefügt haben, speichern und schließen Sie die Konfigurationsdatei. - Starten Sie den SSH-Dienst neu, damit diese neuen Änderungen wirksam werden:
$ sudo systemctl restart sshd
- Die Standard-Firewall von AlmaLinux (firewalld) blockiert standardmäßig den SFTP/SSH-Datenverkehr, aber der folgende Befehl erstellt eine Ausnahme, um den Datenverkehr zuzulassen:
$ sudo firewall-cmd --zone=public --add-service=ssh --permanent $ sudo firewall-cmd --reload
SFTP-Benutzerkonto erstellen
Jetzt müssen wir Benutzerkonten für jeden erstellen, dem wir SFTP-Zugriff gewähren möchten.
- Erstellen Sie eine neue Benutzergruppe namens
sftp
. Alle unsere SFTP-Benutzer müssen dieser Gruppe angehören.$ sudo groupadd sftp
- Erstellen Sie als Nächstes einen neuen Benutzer. Wir nennen unseren einfach
sftpuser
in diesem Beispiel. Achten Sie auch darauf, diesen Benutzer zumsftp
hinzuzufügen Gruppe.$ sudo useradd -m sftpuser -g sftp
- Legen Sie ein Passwort für den neu erstellten sftpuser fest:
$ sudo passwd sftpuser New password: Retype new password: passwd: password updated successfully
- Zu guter Letzt gewähren wir dem Benutzer vollen Zugriff auf sein eigenes Home-Verzeichnis, verweigern aber allen anderen Benutzern im System den Zugriff auf das Verzeichnis:
$ sudo chmod 700 /home/sftpuser/
Unsere SFTP-Konfiguration ist abgeschlossen; Jetzt können wir uns anmelden, um sicherzustellen, dass alles richtig funktioniert.
Über die Befehlszeile mit dem SFTP-Server verbinden
Sie können sich über SFTP entweder mit dem Hostnamen oder der IP-Adresse Ihres Systems anmelden. Um von demselben System zu testen, auf dem Sie gerade SFTP konfiguriert haben, verbinden Sie sich mit der Loopback-Adresse
127.0.0.1
wird gut funktionieren.
- Öffnen Sie ein Terminal und melden Sie sich mit dem sftp-Befehl an:
$ sftp [email protected] The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:VI1OabYHoVZyVtKtDwX5HflcFpBW2txOpdBAqLtP1K8. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts. [email protected]'s password: Connected to [email protected]. sftp>
- Navigieren Sie zum Home-Verzeichnis des Benutzers, da dies der einzige Ort ist, an dem er Berechtigungen hat. Versuchen Sie hier, ein neues Verzeichnis zu erstellen, um zu bestätigen, dass alles wie vorgesehen funktioniert:
sftp> cd sftpuser sftp> mkdir sftp-test sftp> ls sftp-test sftp>
Über die GNOME-GUI mit dem SFTP-Server verbinden
Sie können sich auch über die GUI mit Ihrem SFTP-Server verbinden, wenn Sie dies bevorzugen. Es gibt viele Optionen für SFTP-Clients, aber die standardmäßige GNOME-GUI auf AlmaLinux bietet bereits die Möglichkeit, vom Dateimanager aus eine Verbindung zu SFTP-Servern herzustellen. So verwenden Sie es, um sich mit Ihrem SFTP-Server zu verbinden.
- Öffnen Sie den Dateimanager im Menü "Aktivitäten".
- Klicken Sie auf „Andere Standorte“ und geben Sie
sftp://127.0.0.1
ein im Feld „Mit Server verbinden“ unten im Fenster und klicken Sie auf Verbinden.
Stellen Sie mit dem GNOME-Dateimanager eine Verbindung zum SFTP-Server her - Geben Sie die Anmeldedaten des SFTP-Kontos ein, das wir zuvor eingerichtet haben, und klicken Sie auf Verbinden. Geben Sie den SFTP-Benutzernamen und das Kennwort ein
- Bei erfolgreicher Verbindung können Sie Ihr Home-Verzeichnis öffnen, wo Sie Dateien hochladen und herunterladen können. Erfolgreiche Verbindung zum SFTP-Server
Abschlussgedanken
In dieser Anleitung haben wir gelernt, wie man einen FTP- oder SFTP-Server auf AlmaLinux erstellt. Wir haben auch gesehen, wie man sich über die Befehlszeile oder die GNOME-GUI mit dem FTP/SFTP-Server verbindet. Wir konnten diese Funktionalität durch VSFTPD und OpenSSH erreichen, die es uns ermöglichen, FTP bzw. SFTP zu hosten.