In diesem Tutorial werden wir besprechen, wie man SFTP-Benutzer auf ihre Home-Verzeichnisse oder bestimmte Verzeichnisse beschränkt. Das bedeutet, dass der Benutzer nur auf sein jeweiliges Home-Verzeichnis zugreifen kann, nicht auf das gesamte Dateisystem.
Das Einschränken der Benutzer-Home-Verzeichnisse ist besonders wichtig, insbesondere in einer Shared-Server-Umgebung, damit ein nicht autorisierter Benutzer nicht in die Dateien und Ordner anderer Benutzer schauen kann.
Wichtig: Bitte beachten Sie auch, dass der Zweck dieses Artikels darin besteht, nur SFTP-Zugriff zu ermöglichen, nicht jedoch SSH-Anmeldungen. Durch das Befolgen dieses Artikels erhalten Sie die Berechtigungen zum Dateiübertragung, jedoch ist keine Remote-SSH-Sitzung erlaubt.
Vorgeschlagene Lektüre: Beschränken Sie den SSH-Benutzerzugriff auf bestimmte Verzeichnisse mit Chrooted Jail
Der einfachste Weg, dies zu tun, besteht darin, eine chrooted jail-Umgebung für den SFTP-Zugriff zu erstellen. Diese Methode ist für alle Unix/Linux-Betriebssysteme gleich. Mit der chrooted-Umgebung können wir Benutzer entweder auf ihr Home-Verzeichnis oder auf ein bestimmtes Verzeichnis beschränken.
Benutzer auf Home-Verzeichnisse beschränken
In diesem Abschnitt werden wir eine neue Gruppe namens sftpgroup erstellen und die richtigen Besitzverhältnisse und Berechtigungen für Benutzerkonten zuweisen. Es gibt zwei Möglichkeiten, Benutzer auf Home- oder bestimmte Verzeichnisse zu beschränken, wir werden beide Methoden in diesem Artikel sehen.
Benutzer und Gruppen erstellen oder ändern
Lassen Sie uns den vorhandenen Benutzer, zum Beispiel tecmint
, auf sein/ihr Home-Verzeichnis mit dem Namen /home/tecmint
beschränken. Dazu müssen Sie eine neue sftpgroup-Gruppe mit dem groupadd-Befehl erstellen, wie folgt:
# groupadd sftpgroup
Weisen Sie dann den Benutzer ‘tecmint’ der sftpgroup-Gruppe zu.
# usermod -G sftpgroup tecmint
Sie können auch einen neuen Benutzer mit dem useradd-Befehl erstellen, zum Beispiel senthil
, und den Benutzer der sftpusers-Gruppe zuweisen.
# adduser senthil -g sftpgroup -s /sbin/nologin # passwd tecmint
SSH-Konfigurationsdatei ändern
Öffnen und fügen Sie die folgenden Zeilen zur Konfigurationsdatei /etc/ssh/sshd_config
hinzu.
Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /home ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Speichern und beenden Sie die Datei, und starten Sie den sshd-Dienst neu, um die neuen Änderungen wirksam zu machen.
# systemctl restart sshd OR # service sshd restart
Wenn Sie mehrere Benutzer in das gleiche Verzeichnis chrooten, sollten Sie die Berechtigungen des Home-Verzeichnisses jedes Benutzers ändern, um zu verhindern, dass alle Benutzer die Home-Verzeichnisse der anderen Benutzer durchsuchen können.
# chmod 700 /home/tecmint
Anmeldung von SSH- und SFTP-Benutzern überprüfen
Jetzt ist es an der Zeit, die Anmeldung von einem lokalen System aus zu überprüfen. Versuchen Sie, sich von Ihrem lokalen System aus mit Ihrem Remote-System über SSH zu verbinden.
# ssh [email protected]
Hier,
- tecmint – Benutzername des Remote-Systems.
- 192.168.1.150 – IP-Adresse des Remote-Systems.
Beispiel-Ausgabe:
[email protected]'s password: Could not chdir to home directory /home/tecmint: No such file or directory This service allows sftp connections only. Connection to 192.168.1.150 closed.
Anschließend greifen Sie über SFTP auf das Remote-System zu.
# sftp [email protected]
Beispiel-Ausgabe:
[email protected]'s password: Connected to 192.168.1.150. sftp>
Lassen Sie uns das aktuelle Arbeitsverzeichnis überprüfen:
sftp> pwd Remote working directory: / sftp> ls tecmint
Hier ist das Verzeichnis tecmint
das Hauptverzeichnis. Wechseln Sie zum Verzeichnis tecmint und erstellen Sie die gewünschten Dateien oder Ordner.
sftp> cd tecmint Remote working directory: / sftp> mkdir test tecmint
Benutzer auf ein bestimmtes Verzeichnis beschränken
In unserem vorherigen Beispiel beschränken wir die vorhandenen Benutzer auf das Hauptverzeichnis. Jetzt werden wir sehen, wie man einen neuen Benutzer auf ein benutzerdefiniertes Verzeichnis beschränkt.
Gruppe und neue Benutzer erstellen
Erstellen Sie eine neue Gruppe sftpgroup
.
# groupadd sftpgroup
Erstellen Sie anschließend ein Verzeichnis für die SFTP-Gruppe und weisen Sie Berechtigungen für den Root-Benutzer zu.
# mkdir -p /sftpusers/chroot # chown root:root /sftpusers/chroot/
Erstellen Sie als nächstes neue Verzeichnisse für jeden Benutzer, auf die sie voll zugreifen können. Zum Beispiel erstellen wir den Benutzer tecmint
und sein neues Hauptverzeichnis mit den korrekten Gruppenberechtigungen mithilfe der folgenden Befehlsreihe.
# adduser tecmint -g sftpgroup -s /sbin/nologin # passwd tecmint # mkdir /sftpusers/chroot/tecmint # chown tecmint:sftpgroup /sftpusers/chroot/tecmint/ # chmod 700 /sftpusers/chroot/tecmint/
SSH für SFTP-Zugriff konfigurieren
Ändern oder fügen Sie die folgenden Zeilen am Ende der Datei hinzu:
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /sftpusers/chroot/ ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Speichern Sie die Datei und beenden Sie sie. Starten Sie den sshd-Dienst neu, um die gespeicherten Änderungen wirksam werden zu lassen.
# systemctl restart sshd OR # service sshd restart
Das ist alles, Sie können überprüfen, indem Sie sich über SSH und SFTP auf Ihrem Remote-SSH- und SFTP-Server anmelden, indem Sie die oben angegebenen Schritte verwenden SSH- und SFTP-Anmeldung überprüfen.
Beachten Sie, dass diese Methode den Shell-Zugriff deaktiviert, d.h. Sie können keine Shell-Sitzung des Remote-Systems über SSH aufrufen. Sie können nur über SFTP auf die Remote-Systeme zugreifen und Dateien zwischen den lokalen und Remote-Systemen übertragen.
Zusammenfassung
Jetzt weißt du, wie du Benutzerverzeichnisse mithilfe einer Chroot-Umgebung in Linux einschränken kannst. Wenn du das nützlich findest, teile diesen Artikel auf deinen sozialen Netzwerken und lass uns im Kommentarbereich unten wissen, ob es noch andere Methoden gibt, um Benutzerverzeichnisse einzuschränken.
Source:
https://www.tecmint.com/restrict-sftp-user-home-directories-using-chroot/