GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So konfigurieren Sie den Chroot SFTP-Server unter Linux

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


Linux
  1. So richten Sie Linux-Chroot-Jails ein

  2. So arbeiten Sie mit dem SFTP-Client unter Linux – 10 sftp-Befehle

  3. So richten Sie einen SFTP-Server unter Arch Linux ein

  4. So installieren und konfigurieren Sie Linux NTP-Server und -Client

  5. So konfigurieren Sie VNC Server auf Oracle Linux 6

So installieren und konfigurieren Sie einen NFS-Server auf einem Linux-System

So installieren und konfigurieren Sie Apache SVN Server auf einem Linux-Desktop

So führen Sie SSH zum Server über Linux

So konfigurieren Sie NGINX auf einem CentOS 7-Server

So installieren und konfigurieren Sie Apache Webserver unter Oracle Linux 8

So installieren und konfigurieren Sie den DNS-Server unter Linux