Wie man SFTP-Benutzer auf Home-Verzeichnisse mit chroot-Gefängnis beschränkt

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,

  1. tecmint – Benutzername des Remote-Systems.
  2. 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&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Hier ist das Verzeichnis tecmint das Hauptverzeichnis. Wechseln Sie zum Verzeichnis tecmint und erstellen Sie die gewünschten Dateien oder Ordner.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt 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/