So beschränken Sie SFTP-Benutzer mithilfe des Chroot-Gefängnisses auf Home-Verzeichnisse
In diesem Tutorial besprechen wir, wie man SFTP-Benutzer auf ihre Home-Verzeichnisse oder bestimmte Verzeichnisse beschränkt. Dies bedeutet, dass der Benutzer nur auf sein jeweiliges Home-Verzeichnis zugreifen kann, nicht auf das gesamte Dateisystem.
Die Beschränkung der Home-Verzeichnisse der Benutzer ist besonders in einer Umgebung mit gemeinsam genutzten Servern von entscheidender Bedeutung, damit ein unbefugter Benutzer keinen heimlichen Einblick in die Dateien und Ordner des anderen Benutzers erhält.
Wichtig: Bitte beachten Sie auch, dass der Zweck dieses Artikels nur darin besteht, SFTP-Zugriff und nicht SSH-Anmeldungen bereitzustellen. Wenn Sie diesem Artikel folgen, erhalten Sie die Berechtigungen zur Dateiübertragung. Es ist jedoch nicht gestattet, eine Remote-SSH-Sitzung durchzuführen.
Empfohlene Lektüre: Beschränken Sie den SSH-Benutzerzugriff auf bestimmte Verzeichnisse mithilfe von Chrooted Jail
Der einfachste Weg, dies zu tun, besteht darin, eine chrootete Jail-Umgebung für den SFTP-Zugriff zu erstellen. Diese Methode ist für alle Unix/Linux-Betriebssysteme gleich. Mithilfe einer Chroot-Umgebung können wir Benutzer entweder auf ihr Home-Verzeichnis oder auf ein bestimmtes Verzeichnis beschränken.
Beschränken Sie Benutzer auf Home-Verzeichnisse
In diesem Abschnitt erstellen wir eine neue Gruppe mit dem Namen sftpgroup und weisen den Benutzerkonten die richtigen Eigentümer und Berechtigungen zu. Es gibt zwei Möglichkeiten, Benutzer auf Privatverzeichnisse oder bestimmte Verzeichnisse zu beschränken. In diesem Artikel werden wir uns mit beiden Möglichkeiten befassen.
Erstellen oder ändern Sie Benutzer und Gruppen
Beschränken wir den vorhandenen Benutzer, zum Beispiel tecmint
, auf sein/ihr Home-Verzeichnis mit dem Namen /home/tecmint
. Dazu müssen Sie eine neue sftpgroup-Gruppe mit dem Befehl groupadd erstellen, wie gezeigt:
groupadd sftpgroup
Als nächstes weisen Sie den Benutzer ‘tecmint’ der Gruppe sftpgroup zu.
usermod -G sftpgroup tecmint
Sie können auch einen neuen Benutzer mit dem Befehl useradd erstellen, zum Beispiel senthil
, und den Benutzer der Gruppe sftpusers zuweisen.
adduser senthil -g sftpgroup -s /sbin/nologin
passwd tecmint
Ändern Sie die SSH-Konfigurationsdatei
Öffnen Sie die Konfigurationsdatei /etc/ssh/sshd_config
und fügen Sie die folgenden Zeilen 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, damit die neuen Änderungen wirksam werden.
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.
chmod 700 /home/tecmint
Überprüfen Sie die 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 per SSH zu übertragen.
ssh [email
Hier,
- tecmint – Benutzername des Remote-Systems.
- 192.168.1.150 – IP-Adresse des Remote-Systems.
Beispielausgabe:
[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
Beispielausgabe:
[email '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 tecmint
das Home-Verzeichnis. Wechseln Sie mit der CD in das Verzeichnis tecmint 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 man einen neuen Benutzer auf ein benutzerdefiniertes Verzeichnis beschränkt.
Erstellen Sie eine Gruppe und neue 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/
Als nächstes erstellen Sie für jeden Benutzer neue Verzeichnisse, auf die er vollen Zugriff hat. Beispielsweise erstellen wir mit der folgenden Befehlsreihe den Benutzer tecmint
und sein neues Home-Verzeichnis mit der richtigen Gruppenberechtigung.
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 Sie 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, damit die gespeicherten Änderungen wirksam werden.
systemctl restart sshd
OR
service sshd restart
Das können Sie überprüfen, indem Sie sich bei Ihrem Remote-SSH- und SFTP-Server anmelden, indem Sie den Schritt oben unter „SSH- und SFTP-Anmeldung überprüfen“ 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 Dateiübertragungen von und zu den lokalen und Remote-Systemen durchführen.
Abschluss
Jetzt wissen Sie, wie Sie die Home-Verzeichnisse von Benutzern mithilfe einer Chroot-Umgebung unter Linux einschränken. 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 von Benutzern einzuschränken.