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

CentOS / RHEL:So richten Sie SFTP für Chroot Jail nur für bestimmte Gruppen ein

Um die ChrootDirectory-Funktionalität auf Benutzerbasis zuzulassen, verwenden Sie eine bedingt ausgeführte sshd-Konfiguration (unter Verwendung der Datei „Match ” Schlüsselwort) in der sshd_config Datei. Wenn Sie ChrootDirectory auf eine bestimmte Gruppe setzen, stellen Sie sicher, dass die Benutzer dieser Gruppe ihr Home-Verzeichnis nicht verlassen können, wodurch wiederum sichergestellt wird, dass keine anderen Benutzer betroffen sind.

1. Erstellen Sie eine Gruppe für Benutzer, die chrooted werden sollen.

# groupadd sftp_group

2. Erstellen Sie einen Benutzer für die SFTP-Gruppe und legen Sie das Passwort fest.

# useradd sftp_test1
# passwd sftp_test1
Changing password for user sftp_test1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

3. Fügen Sie den Benutzer sftp_test1 zur Gruppe sftp_group hinzu. Lassen Sie die Benutzer-Shell /bin/false sein da den Benutzern nur sftp erlaubt sein sollte und nicht ssh/scp.

# usermod -g sftp_group -s /bin/false sftp_test1
# id sftp_test1
uid=1000(sftp_test1) gid=1001(sftp_test1) groups=1001(sftp_test1),1000(sftp_group)
HINWEIS :Benutzer, die nicht in dieser Gruppe sind, können sich weiterhin über ssh beim Host anmelden und ansonsten normal mit openssh interagieren.

4. Bearbeiten Sie die sshd-Konfiguration, um sftp zu konfigurieren. Entfernen Sie den /usr/libexec/openssh/sftp-server Zeile und fügen Sie die internal-sftp-Zeile wie unten gezeigt hinzu:
Entfernen oder hashen Sie die Zeile:

# vi /etc/ssh/sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server

fügen Sie die folgende Zeile hinzu:

# vi /etc/ssh/sshd_config
Subsystem sftp internal-sftp

5. Fügen Sie den folgenden Inhalt am Ende der Datei /etc/ssh/sshd_config hinzu So fügen Sie die sftp-Chroot-Umgebung hinzu:

# vi /etc/ssh/sshd_config
Match Group sftp_group
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /home
ForceCommand internal-sftp

5. Starten Sie den sshd-Dienst neu, um die sftp-Konfiguration zu übernehmen.

# systemctl restart sshd

Bestätigen

1. Versuchen Sie nun, von anderen Clients aus mit dem SSH- und SFTP-Dienst auf das System zuzugreifen:
a. SSH

# ssh [email protected]
The authenticity of host 'x.x.x.x (x.x.x.x)' can't be established.
ECDSA key fingerprint is 07:1c:34:30:f4:81:e1:e0:b3:13:30:b8:57:d9:d9:58.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'x.x.x.x' (ECDSA) to the list of known hosts.
[email protected]'s password:
Could not chdir to home directory /home/sftp_test1: No such file or directory
This service allows sftp connections only.
Connection to x.x.x.x closed.

Wie Sie oben sehen, ist die Verbindung geschlossen und es ist nicht erlaubt, sich über SSH anzumelden.

b. SFTP

# sftp [email protected]
[email protected]'s password:
Connected to x.x.x.x.
sftp> pwd
Remote working directory: /
sftp> ls
sftp_test1
sftp> cd /home
Couldn't canonicalize: No such file or directory
sftp>

Als Ergebnis ist der obige sftp_test1-Benutzer über SFTP angemeldet und kann das Verzeichnis aufgrund der Chroot-Umgebung nicht ändern

3. Sie können die SFTP-Server-Funktion auch vom Windows-Client aus testen, indem Sie die Software „WinSCP“ oder „Filezilla“ verwenden.


Linux
  1. CentOS / RHEL 7 :So deaktivieren Sie IPv6 nur auf einer bestimmten Schnittstelle

  2. CentOS / RHEL 7 :So fügen Sie einen Kernel-Parameter nur zu einem bestimmten Kernel hinzu

  3. CentOS / RHEL 7 :So aktivieren Sie Telnet für eine Gruppe von Benutzern

  4. So aktivieren Sie die SFTP-Protokollierung ohne Chroot in CentOS/RHEL

  5. So legen Sie children-max für den udev-Dienst in CentOS/RHEL 7 fest

So richten Sie SSH unter CentOS und RHEL ein

CentOS / RHEL :So löschen Sie eine Volumengruppe in LVM

CentOS / RHEL :So legen Sie das Chroot-Gefängnis für vsftp nur für bestimmte Benutzer fest

CentOS / RHEL :So legen Sie das Chroot-Gefängnis für vsftp für alle Benutzer fest

CentOS / RHEL :So richten Sie das Chroot-Gefängnis SFTP ein

So legen Sie die Prozess-ID in Linux für ein bestimmtes Programm fest