Das File Transfer Protocol ist ein Standardkommunikationsprotokoll, das für die Übertragung von Computerdateien von einem Server zu einem Client in einem Computernetzwerk verwendet wird.
FTP ist heute nicht beliebt, weil es an Sicherheit mangelt. Wenn eine Datei mit diesem Protokoll gesendet wird, werden die Daten, der Benutzername und das Passwort im Klartext geteilt, was bedeutet, dass ein Hacker mit wenig bis gar keinem Aufwand auf diese Informationen zugreifen kann. Damit die Daten sicher sind, müssen Sie eine aktualisierte FTP-Version wie SFTP verwenden.
SFTP Secure File Transfer Protocol ist ein Dateiübertragungsprotokoll, das sicheren Zugriff auf einen Remote-Computer bietet, um sichere Kommunikation bereitzustellen. Es nutzt SSH – Secure Socket Shell und wird häufig auch als „Secure Shell File Transfer Protocol“ bezeichnet.
Verwandte Inhalte
- So installieren und konfigurieren Sie den sftp-Server in Ubuntu 20.04
- So richten Sie einen SFTP-Server auf OpenSUSE Leap 15.3 Server ein
Voraussetzungen
Um dieser Anleitung zu folgen, stellen Sie sicher, dass Sie über Folgendes verfügen:
- Centos 8- oder RHEL 8-basiertes System
- Root-Zugriff auf den Server oder ein Benutzer mit Root-Zugriff
Inhaltsverzeichnis
- Installieren von ssh auf dem Dienst, falls nicht vorhanden
- Erstellen von Benutzern und Gruppen und Hinzufügen der erforderlichen Verzeichnisse
- SSH-Dienst konfigurieren
- Überprüfen, ob die Einrichtung wie erwartet funktioniert
1. Installieren von ssh auf dem Dienst, falls nicht vorhanden
Stellen Sie vor dem Fortfahren sicher, dass Ihr System auf dem neuesten Stand ist:
$ sudo dnf update -y
Last metadata expiration check: 2:05:00 ago on Mon 27 Sep 2021 03:48:26 PM UTC.
Dependencies resolved.
Nothing to do.
Complete!
Stellen Sie dann sicher, dass ssh installiert ist und ausgeführt wird:
$ sudo dnf install -y openssh-server
Last metadata expiration check: 3:48:26 ago on Mon 27 Sep 2021 03:48:26 PM UTC.
Package openssh-server-8.0p1-6.el8_4.2.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Starten Sie den Dienst
sudo systemctl restart sshd
2. Erstellen von Benutzern und Gruppen und Hinzufügen der erforderlichen Verzeichnisse
Als nächstes werden wir sicherstellen, dass die erforderlichen Benutzer im System vorhanden sind. In meinem Fall möchte ich die sftp-Benutzer zu Hause als /srv/sftp
haben
Lassen Sie uns das Home /srv/sftp
erstellen mit diesem Befehl:
sudo mkdir /srv/sftp
Dann lassen Sie uns eine Dachgruppe nur für SFTP erstellen
sudo groupadd sftpusers
Erstellen Sie dann einen Nur-SFTP-Benutzer:
sudo useradd -G sftpusers -d /srv/sftp/citizix -s /sbin/nologin citizix
Die obigen Optionen bewirken Folgendes:
-G sftpusers
:Benutzer erstellen, ansftpusers
anhängen Gruppe-d /srv/sftp/citizix
:Home-Verzeichnis als/srv/sftp/citizix
festlegen-s /sbin/nologin
:Wir wollen nicht, dass sich der Benutzer anmeldet, also keine SSH-Anmelde-Shell- Zu guter Letzt, Benutzername als
citizix
Fügen Sie dann mit diesem Befehl ein Passwort zum erstellten Benutzer hinzu:
$ sudo passwd citizix
Changing password for user citizix.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
3. SSH-Dienst konfigurieren
Nachdem wir nun die notwendige Software installiert und die Benutzer und Gruppen erstellt haben, lassen Sie uns ssh konfigurieren.
Stellen Sie sicher, dass die Kennwortauthentifizierung für ssh aktiviert ist. Bearbeiten Sie die Konfigurationsdatei hier /etc/ssh/sshd_config
:
sudo vim /etc/ssh/sshd_config
Stellen Sie dann sicher, dass diese Zeile nicht kommentiert ist:
PasswordAuthentication yes
Als nächstes müssen wir Regeln für die Benutzer in den sftpusers
hinzufügen Gruppe als sftp betrachtet werden. Bearbeiten Sie die Konfigurationsdatei:
sudo vim /etc/ssh/sshd_config
Fügen Sie diesen Inhalt am Ende der Datei hinzu:
Match Group sftpusers
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /srv/sftp
ForceCommand internal-sftp
Starten Sie dann sshd neu, um die Konfiguration neu zu laden:
sudo systemctl restart sshd
Überprüfen Sie, ob sshd
läuft wie erwartet:
$ sudo systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-09-27 19:05:29 UTC; 43min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 746214 (sshd)
Tasks: 1 (limit: 23800)
Memory: 7.2M
CGroup: /system.slice/sshd.service
└─746214 /usr/sbin/sshd -D [email protected],[email protected]>
4. Prüfen, ob die Einrichtung wie erwartet funktioniert
Nachdem Sie den Benutzer erfolgreich erstellt und sftp-Konfigurationen hinzugefügt haben, testen Sie die Einrichtung mit dem Befehl:
❯ sftp [email protected]
[email protected]'s password:
Connected to 3.250.122.68.
sftp> ls
citizix
sftp>
Jetzt haben wir den sftp-Server eingerichtet und laufen mit einem konfigurierten Benutzer!
Die Benutzer können sich beim Server anmelden und auf Dateien und Verzeichnisse zugreifen, die sich in ihrem Home-Verzeichnis befinden. Wenn Sie dem Benutzer andere Verzeichnisse außerhalb seines eigenen Verzeichnisses zuweisen möchten, stellen Sie einfach sicher, dass der Benutzer über ausreichende Zugriffsrechte verfügt. Diese Verzeichnisse und Dateien müssen sich im sftp-Verzeichnis befinden – /srv/sftp
.
Beispiel:wenn ich möchte, dass der Benutzer auf das Verzeichnis /srv/sftp/paymentfiles
zugreift , gehen Sie wie folgt vor:
Erstellen Sie das Verzeichnis
sudo mkdir /srv/sftp/paymentfiles
Weisen Sie dann den Benutzer (citizix
) zugreifen, indem Sie sie zum Eigentümer des Verzeichnisses machen:
sudo chown citizix:sftpusers /srv/sftp/paymentfiles
Sie können nun auf den Inhalt des Verzeichnisses zugreifen.
Schlussfolgerung
In dieser Anleitung ist es uns gelungen, einen SFTP-Server auf einem RHEL 8-basierten Server wie Rocky Linux oder Centos 8 einzurichten.