Para permitir la funcionalidad de ChrootDirectory por usuario, emplee una configuración sshd ejecutada condicionalmente (usando el comando "Coincidencia ” palabra clave) en sshd_config expediente. Establecer ChrootDirectory en un grupo específico garantiza que los usuarios de ese grupo no puedan salir de su directorio de inicio, lo que a su vez garantiza que ningún otro usuario se vea afectado.
1. Cree un grupo para los usuarios que serán chrooteados.
# groupadd sftp_group
2. Cree un usuario para el grupo SFTP y configure la contraseña.
# useradd sftp_test1
# passwd sftp_test1 Changing password for user sftp_test1. New password: Retype new password: passwd: all authentication tokens updated successfully.
3. Agregue el usuario sftp_test1 al grupo sftp_group. Deje que el shell del usuario sea /bin/false ya que a los usuarios solo se les debe permitir hacer sftp y no 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)NOTA :Los usuarios que no están en este grupo aún pueden iniciar sesión en el host a través de ssh e interactuar normalmente con openssh.
4. Edite la configuración de sshd para configurar el sftp. Elimina el /usr/libexec/openssh/sftp-server y agregue la línea interna-sftp como se muestra a continuación:
Elimine o haga un hash de la línea:
# vi /etc/ssh/sshd_config Subsystem sftp /usr/libexec/openssh/sftp-server
agregue la siguiente línea:
# vi /etc/ssh/sshd_config Subsystem sftp internal-sftp
5. Agregue el siguiente contenido al final del archivo /etc/ssh/sshd_config para agregar el entorno chroot sftp:
# vi /etc/ssh/sshd_config Match Group sftp_group X11Forwarding no AllowTcpForwarding no ChrootDirectory /home ForceCommand internal-sftp
5. Reinicie el servicio sshd para que tenga efecto la configuración de sftp.
# systemctl restart sshd
Verificar
1. Ahora intente acceder al sistema con el servicio SSH y SFTP desde otros clientes:
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.
Como ve arriba, la conexión está cerrada y no se le permite iniciar sesión en SSH.
# 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>
Como resultado, el usuario sftp_test1 anterior inició sesión a través de SFTP y no puede cambiar el directorio debido al entorno chroot
3. También puede probar la función del servidor SFTP desde el cliente de Windows utilizando los softwares "WinSCP" o "Filezilla".