Es gibt einige Szenarien wo der Systemadministrator möchte, dass nur wenige Benutzer Dateien auf Linux-Boxen übertragen dürfen, aber kein SSH . Wir können dies erreichen, indem wir SFTP einrichten in der Chroot-Umgebung.
Hintergrund von SFTP &Chroot:
SFTP steht für SSH File Transfer Protocol oderSecure File Transfer Protocol . SFTP bietet Dateizugriff, Dateiübertragung und Dateiverwaltungsfunktionen über jeden zuverlässigen Datenstrom. Wenn wir SFTP in einer Chroot-Umgebung konfigurieren, werden nur zugelassene Benutzer auf ihr Home-Verzeichnis beschränkt , oder wir können sagen, dass zugelassene Benutzer im Gefängnis sein werden wie eine Umgebung, in der sie nicht einmal ihr Verzeichnis ändern können.
In diesem Artikel werden wir den Chroot SFTP-Server auf RHEL konfigurieren &CentOS System . Wir haben einen Benutzer ‘Jack “, darf dieser Benutzer Dateien auf die Linux-Box übertragen, hat aber keinen SSH-Zugriff.
Schritt:1) Erstellen Sie eine Gruppe
Erstellen Sie die Gruppe sftp_users mit dem Befehl groupadd,
[[email protected] ~]# groupadd sftp_users
Schritt:2) Weisen Sie dem Benutzer die sekundäre Gruppe (sftp_users) zu
Wenn der Benutzer nicht auf dem System existiert, verwenden Sie den folgenden Befehl, um ihn zu erstellen,
[[email protected] ~]# useradd -G sftp_users -s /sbin/nologin jack [[email protected] ~]# passwd jack
Für bereits bestehende Benutzer , verwenden Sie den folgenden usermod-Befehl:
[[email protected] ~]# usermod –G sftp_users -s /sbin/nologin jack
Hinweis: Wenn Sie das Standard-Home-Verzeichnis ändern möchten der Benutzer , verwenden Sie dann ‘-d’ Option in den Befehlen useradd und usermod und legen Sie die korrekten Berechtigungen fest
Schritt :3) Bearbeiten Sie nun die Konfigurationsdatei „/etc/ssh/sshd_config“
Bearbeiten Sie die sshd_config mit Ihrem bevorzugten Editor,
# vi /etc/ssh/sshd_config #comment out the below line and add a line like below #Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp # add Below lines at the end of file Match Group sftp_users X11Forwarding no AllowTcpForwarding no ChrootDirectory %h ForceCommand internal-sftp
Wo :
Match-Gruppe sftp_users – Dies zeigt an, dass die folgenden Zeilen nur für Benutzer abgeglichen werden, die zur Gruppe sftp_users
ChrootDirectory %h gehören – Dies ist der Pfad (das Home-Verzeichnis des Standardbenutzers), der für Chroot verwendet wird, nachdem der Benutzer authentifiziert wurde. Für Jack ist dies also /home/jack.
ForceCommand internal-sftp – Dies erzwingt die Ausführung von internal-sftp und ignoriert alle Befehle, die in der Datei ~/.ssh/rc erwähnt werden.
Nachdem Sie die obigen Änderungen vorgenommen haben, starten Sie den ssh-Dienst mit dem folgenden Befehl neu,
[[email protected] ~] # systemctl restart sshd
Schritt:4) Legen Sie die erforderlichen Berechtigungen für das Home-Verzeichnis des Benutzers fest
Wie in unserer Demonstration verwenden wir den Jack-Benutzer als sftp-Benutzer, führen Sie also die folgenden Befehle aus, um die erforderlichen Berechtigungen für sein Home-Verzeichnis festzulegen,
[[email protected] ~]# chmod 755 /home/jack [[email protected] ~]# chown root /home/jack [[email protected] ~]# chgrp -R sftp_users /home/jack
Falls Sie möchten, dass der Jack-Benutzer Dateien hochladen darf , erstellen Sie dann einen Upload-Ordner mit den folgenden Berechtigungen ,
[[email protected] jack]# mkdir /home/jack/upload [[email protected] jack]# chown jack. /home/jack upload/
Falls Selinux auf Ihrem System aktiviert ist, führen Sie den folgenden Befehl aus, um Selinux-Regeln festzulegen,
[[email protected] ~] setsebool -P ssh_chroot_full_access on
Schritt :5) Sftp-Server testen
Versuchen Sie zuerst, mit ssh über den Jack-Benutzer auf das System zuzugreifen
Wie wir in der Ausgabe oben sehen können, darf Benutzer jack ssh.
Versuchen wir nun, uns über sftp anzumelden,
Wie Sie oben sehen können, ist der Jack-Benutzer über SFTP angemeldet und kann das Verzeichnis aufgrund der Chroot-Umgebung nicht ändern.
Führen Sie jetzt das Hoch- und Herunterladen durch Testen wie unten gezeigt:
Wie wir oben sehen können, funktioniert sowohl das Hochladen als auch das Herunterladen für Jack-Benutzer einwandfrei. Damit ist der Artikel abgeschlossen. Sie sind herzlich eingeladen, Ihr Feedback und Ihre Kommentare in den Kommentarabschnitten unten zu teilen.
Auch lesen : So konfigurieren Sie den SFTP-Server mit Chroot in Debian 10