Chcete-li povolit funkci ChrootDirectory na úrovni jednotlivých uživatelů, použijte podmíněně spouštěnou konfiguraci sshd (pomocí „Match ”) v sshd_config soubor. Nastavení ChrootDirectory na konkrétní skupinu zajistí, že uživatelé této skupiny se nebudou moci dostat ze svého domovského adresáře, čímž se zajistí, že nebudou ovlivněni žádní ostatní uživatelé.
1. Vytvořte skupinu pro uživatele, kteří budou chrootováni.
# groupadd sftp_group
2. Vytvořte uživatele pro skupinu SFTP a nastavte heslo.
# useradd sftp_test1
# passwd sftp_test1 Changing password for user sftp_test1. New password: Retype new password: passwd: all authentication tokens updated successfully.
3. Přidejte uživatele sftp_test1 do skupiny sftp_group. Nechte uživatelské prostředí /bin/false protože uživatelé by měli mít povoleno pouze sftp a ne 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)POZNÁMKA :Uživatelé, kteří nejsou v této skupině, se mohou stále přihlásit k hostiteli přes ssh a jinak normálně komunikovat s openssh.
4. Upravte konfiguraci sshd pro konfiguraci sftp. Odeberte /usr/libexec/openssh/sftp-server řádek a přidejte řádek internal-sftp, jak je znázorněno níže:
Odstraňte nebo hashujte řádek:
# vi /etc/ssh/sshd_config Subsystem sftp /usr/libexec/openssh/sftp-server
přidejte následující řádek:
# vi /etc/ssh/sshd_config Subsystem sftp internal-sftp
5. Přidejte níže uvedený obsah na konec souboru /etc/ssh/sshd_config pro přidání prostředí chroot sftp:
# vi /etc/ssh/sshd_config Match Group sftp_group X11Forwarding no AllowTcpForwarding no ChrootDirectory /home ForceCommand internal-sftp
5. Restartujte službu sshd, aby se projevila konfigurace sftp.
# systemctl restart sshd
Ověřit
1. Nyní se pokuste o přístup do systému pomocí služby SSH a SFTP z jiných klientů:
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.
Jak vidíte výše, připojení je uzavřeno a není povoleno se přihlásit k SSH.
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>
V důsledku toho je uživatel sftp_test1 přihlášen přes SFTP a nemůže změnit adresář kvůli prostředí chroot
3. Funkci SFTP serveru můžete také otestovat z klienta Windows pomocí softwaru „WinSCP“ nebo „Filezilla“.