SFTP steht für „SSH File Transfer Protocol“. SFTP ist ein Dateiübertragungsprotokoll, das zum Übertragen von Dateien zwischen zwei Servern verwendet wird. Standardmäßig erlaubt Ihnen SFTP, Dateien auf alle Server zu übertragen, auf denen der SSH-Zugriff aktiviert ist. Es gewährt jedoch allen Benutzern Zugriff auf das Terminal, was aus Sicherheitsgründen nicht empfohlen wird.
In diesem Tutorial erfahren wir, wie Sie einen SFTP-Benutzer ohne Shell-Zugriff erstellen, sodass der Benutzer nur SFTP-Zugriff und keinen SSH-Zugriff hat.
Voraussetzungen
- Ein frischer CentOS 8 VPS auf der Atlantic.net Cloud Platform.
- Ein auf Ihrem Server konfiguriertes Root-Passwort.
Schritt 1 – Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie CentOS 8 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem CentOS 8-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
dnf update -y
Schritt 2 – Erstellen Sie einen SFTP-Benutzer
Zuerst müssen Sie einen neuen Benutzer erstellen, der nur Zugriff auf die Dateiübertragung hat. Sie können mit dem folgenden Befehl einen neuen Benutzer namens sftp erstellen:
adduser sftp
Legen Sie als Nächstes das Passwort für den obigen Benutzer fest:
passwd sftp
Geben Sie Ihr gewünschtes Passwort ein und drücken Sie die Eingabetaste.
Schritt 3 – Erstellen Sie eine Verzeichnisstruktur für Dateiübertragungen
Als Nächstes müssen Sie eine Verzeichnisstruktur für die Dateiübertragung erstellen, um den SFTP-Zugriff auf ein Verzeichnis zu beschränken.
Sie können ein neues Verzeichnis mit dem folgenden Befehl erstellen:
mkdir -p /opt/sftp/public
Als nächstes setzen Sie den Besitz des Verzeichnisses /opt/sftp/ auf root:
chown root:root /opt/sftp
Geben Sie als Nächstes die richtigen Berechtigungen mit dem folgenden Befehl:
chmod 755 /opt/sftp
Legen Sie als Nächstes den Besitz des öffentlichen Verzeichnisses auf den sftp-Benutzer fest:
chown sftp:sftp /opt/sftp/public
Schritt 4 – SSH für SFTP konfigurieren
Als Nächstes müssen Sie SSH konfigurieren, um den Zugriff auf ein Verzeichnis zu beschränken und den Terminalzugriff für den sftp-Benutzer zu verbieten.
Sie können dies tun, indem Sie die Datei /etc/ssh/sshd_config:
bearbeitennano /etc/ssh/sshd_config
Fügen Sie am Ende der Datei die folgenden Zeilen hinzu:
Match User sftp ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /opt/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den SSH-Dienst neu, um die Änderungen zu implementieren:
systemctl restart sshd
Schritt 5 – SFTP verifizieren
Überprüfen Sie nun den SFTP-Zugang mit folgendem Befehl:
sftp [email protected]
Sie werden wie unten gezeigt aufgefordert, ein Passwort einzugeben:
[email protected]'s password:
Geben Sie Ihr sftp-Benutzerkennwort ein und drücken Sie die Eingabetaste. Sobald die Verbindung hergestellt ist, sollten Sie die folgende Ausgabe sehen:
Connected to your-server-ip. sftp>
Führen Sie als Nächstes den folgenden Befehl aus, um das Verzeichnis aufzulisten:
sftp> ls
Sie sollten das öffentliche Verzeichnis in der folgenden Ausgabe sehen:
public sftp>
Überprüfen Sie als Nächstes, ob Sie eine SSH-Verbindung herstellen können oder nicht:
ssh [email protected]
Sie werden wie unten gezeigt aufgefordert, ein Passwort einzugeben:
[email protected]'s password:
Geben Sie Ihr sftp-Benutzerkennwort ein und drücken Sie die Eingabetaste. Sie sollten die folgende Ausgabe sehen:
This service allows sftp connections only. Connection to your-server-ip closed.
Die obige Ausgabe zeigt an, dass der sftp-Benutzer nicht mehr über SSH auf die Server-Shell zugreifen kann.
Schlussfolgerung
Herzliche Glückwünsche! Sie haben SFTP ohne Shell-Zugriff auf CentOS 8 erfolgreich konfiguriert. Sie können dieses Setup auch für mehrere Benutzer und Verzeichnisse verwenden. Beginnen Sie noch heute mit SFTP auf einem VPS von Atlantic.Net!