So beschränken Sie SFTP-Benutzer mithilfe von chroot Jail auf Home-Verzeichnisse
In diesem Tutorial werden wir besprechen, wie Sie SFTP-Benutzer auf ihre Home-Verzeichnisse oder bestimmte Verzeichnisse beschränken können. Das bedeutet, dass der Benutzer nur auf sein jeweiliges Home-Verzeichnis zugreifen kann, nicht auf das gesamte Dateisystem.
Das Einschränken der Benutzerverzeichnisse ist von entscheidender Bedeutung, insbesondere in einer gemeinsam genutzten Serverumgebung, damit ein nicht autorisierter Benutzer keinen Blick in die Dateien und Ordner des anderen Benutzers werfen kann.
Wichtig: Bitte beachten Sie auch, dass der Zweck dieses Artikels darin besteht, nur SFTP-Zugang zu gewähren, nicht SSH-Anmeldungen, indem Sie diesem Artikel folgen, haben Sie die Berechtigungen, Dateiübertragungen durchzuführen, aber nicht berechtigt, eine Remote-SSH-Sitzung durchzuführen.
Empfohlene 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 chroot-Umgebung können wir Benutzer entweder auf ihr Home-Verzeichnis oder auf ein bestimmtes Verzeichnis beschränken.
Benutzer auf Basisverzeichnisse beschränken
In diesem Abschnitt erstellen wir eine neue Gruppe mit dem Namen sftpgroup und weisen den Benutzerkonten die korrekte Eigentümerschaft und Berechtigungen zu. Es gibt zwei Möglichkeiten, Benutzer auf Home- oder bestimmte Verzeichnisse zu beschränken, die wir in diesem Artikel in beide Richtungen sehen werden.
Erstellen oder Ändern von Benutzern und Gruppen
Beschränken wir den vorhandenen Benutzer, z.B. tecmint, auf sein Home-Verzeichnis mit dem Namen /home/tecmint. Dazu müssen Sie eine neue sftpgroup-Gruppe mit dem Befehl groupadd erstellen, wie gezeigt:
# groupadd sftpgroup
Weisen Sie als Nächstes den Benutzer 'tecmint' der sftpgroup group group zu.
# usermod -G sftpgroup tecmint
Sie können auch einen neuen Benutzer mit dem Befehl useradd erstellen, z. B. senthil, und den Benutzer der Gruppe sftpusers zuweisen.
# adduser senthil -g sftpgroup -s /sbin/nologin
passwd tecmint
SSH-Konfigurationsdatei ändern
Öffnen Sie die folgenden Zeilen und fügen Sie sie der 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, starten Sie den sshd-Dienst neu, um die neuen Änderungen zu übernehmen.
# systemctl restart sshd
OR
service sshd restart
Wenn Sie mehrere Benutzer in dasselbe 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
Überprüfen der SSH- und SFTP-Benutzeranmeldung
Jetzt ist es an der Zeit, die Anmeldung von einem lokalen System aus zu überprüfen. Versuchen Sie, Ihr Remote-System von Ihrem lokalen System aus zu ssh.
# ssh [email
Hier
- tecmint – Benutzername des entfernten Systems.
- 192.168.1.150 – IP-Adresse des Remote-Systems.
Beispielhafte Ausgabe:
[email '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.
Greifen Sie dann über SFTP auf das Remote-System zu.
# sftp [email
Beispielhafte Ausgabe:
[email 's password:
Connected to 192.168.1.150.
sftp>
Schauen wir uns das aktuelle Arbeitsverzeichnis an:
sftp> pwd
Remote working directory: /
sftp> ls
tecmint
Hier ist tecmint das Home-Verzeichnis. cd in das tecmint-Verzeichnis und erstellen Sie die Dateien oder Ordner Ihrer Wahl.
sftp> cd tecmint
Remote working directory: /
sftp> mkdir test
tecmint
Beschränken Sie Benutzer auf ein bestimmtes Verzeichnis
In unserem vorherigen Beispiel beschränken wir die vorhandenen Benutzer auf das Home-Verzeichnis. Jetzt werden wir sehen, wie Sie einen neuen Benutzer auf ein benutzerdefiniertes Verzeichnis beschränken können.
Erstellen einer Gruppe und neuer Benutzer
Erstellen Sie eine neue Gruppe sftpgroup.
# groupadd sftpgroup
Erstellen Sie als Nächstes ein Verzeichnis für die SFTP-Gruppe und weisen Sie dem Root-Benutzer Berechtigungen zu.
# mkdir -p /sftpusers/chroot
chown root:root /sftpusers/chroot/
Erstellen Sie als Nächstes für jeden Benutzer neue Verzeichnisse, auf die er vollen Zugriff hat. Zum Beispiel erstellen wir den Benutzer tecmint und sein neues Home-Verzeichnis mit der richtigen Gruppenberechtigung unter Verwendung 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/
Konfigurieren von SSH für den SFTP-Zugriff
Ä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 und beenden Sie die Datei. Starten Sie den sshd-Dienst neu, um die gespeicherten Änderungen zu übernehmen.
# systemctl restart sshd
OR
service sshd restart
Das war's, Sie können dies überprüfen, indem Sie sich bei Ihrem Remote-SSH- und SFTP-Server anmelden, indem Sie den oben unter SSH- und SFTP-Anmeldung überprüfen angegebenen Schritt ausführen.
Beachten Sie, dass diese Methode den Shell-Zugriff deaktiviert, d.h. Sie können nicht über SSH auf die Shell-Sitzung des Remote-Systems zugreifen. Sie können nur über SFTP auf die Remote-Systeme zugreifen und Dateien zu und von den lokalen und Remote-Systemen übertragen.
Schlussfolgerung
Jetzt wissen Sie, wie Sie die Home-Verzeichnisse von Benutzern mit einer Chroot-Umgebung unter Linux einschränken können. Wenn Sie dies nützlich finden, teilen Sie diesen Artikel in Ihren sozialen Netzwerken und teilen Sie uns im Kommentarbereich unten mit, ob es andere Methoden gibt, um die Home-Verzeichnisse der Benutzer einzuschränken.