Hay algunos escenarios donde el administrador del sistema quiere que solo unos pocos usuarios puedan transferir archivos a cajas de Linux pero no ssh . Podemos lograr esto configurando SFTP en entorno chroot.
Antecedentes de SFTP y chroot:
SFTP significa protocolo de transferencia de archivos SSH o Protocolo seguro de transferencia de archivos . SFTP proporciona funcionalidades de acceso a archivos, transferencia de archivos y administración de archivos sobre cualquier flujo de datos confiable. Cuando configuramos SFTP en el entorno chroot, solo los usuarios permitidos estarán limitados a su directorio de inicio , o podemos decir que los usuarios permitidos estarán en cárcel como un entorno en el que ni siquiera pueden cambiar su directorio.
En el artículo configuraremos el servidor Chroot SFTP en RHEL y CentOS sistema . Tenemos un usuario 'Jack ', este usuario podrá transferir archivos en el cuadro de Linux pero no tendrá acceso ssh.
Paso:1) Crear un grupo
Cree un grupo sftp_users usando el comando groupadd,
[[email protected] ~]# groupadd sftp_users
Paso:2) Asigne el grupo secundario (sftp_users) al usuario
Si los usuarios no existen en el sistema, use el siguiente comando para crearlo,
[[email protected] ~]# useradd -G sftp_users -s /sbin/nologin jack [[email protected] ~]# passwd jack
Para usuarios ya existentes , use el siguiente comando usermod:
[[email protected] ~]# usermod –G sftp_users -s /sbin/nologin jack
Nota: Si desea cambiar el directorio de inicio predeterminado de usuarios , luego use '-d' opción en el comando useradd y usermod y establezca los permisos correctos.
Paso :3) Ahora edite el archivo de configuración “/etc/ssh/sshd_config”
Edite sshd_config usando su editor favorito,
# 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
Dónde:
Grupo de coincidencias sftp_users – Esto indica que las siguientes líneas coincidirán solo para los usuarios que pertenecen al grupo sftp_users
ChrootDirectory %h – Esta es la ruta (directorio de inicio del usuario predeterminado) que se usará para chroot después de que el usuario se autentique. Entonces, para Jack, será /home/jack.
ForceCommand internal-sftp – Esto fuerza la ejecución de internal-sftp e ignora cualquier comando que se mencione en el archivo ~/.ssh/rc.
Después de realizar los cambios anteriores, reinicie el servicio ssh usando el siguiente comando,
[[email protected] ~] # systemctl restart sshd
Paso:4) Establezca los permisos requeridos en el directorio de inicio del usuario
Como en nuestra demostración, estamos usando al usuario jack como usuario de sftp, así que ejecute los siguientes comandos para configurar los permisos necesarios en su directorio de inicio,
[[email protected] ~]# chmod 755 /home/jack [[email protected] ~]# chown root /home/jack [[email protected] ~]# chgrp -R sftp_users /home/jack
En caso de que desee que el usuario jack pueda cargar archivos , luego cree una carpeta de carga con los siguientes permisos ,
[[email protected] jack]# mkdir /home/jack/upload [[email protected] jack]# chown jack. /home/jack upload/
En caso de que selinux esté habilitado en su sistema, ejecute el siguiente comando para establecer las reglas de selinux,
[[email protected] ~] setsebool -P ssh_chroot_full_access on
Paso :5) Probar el servidor Sftp
Primero intente acceder al sistema usando ssh vía jack user,
Como podemos ver en la salida anterior, el usuario jack puede usar ssh.
Ahora intentemos iniciar sesión usando sftp,
Como puede ver arriba, el usuario jack ha iniciado sesión a través de SFTP y no puede cambiar el directorio debido al entorno chroot.
Ahora realiza la carga y descarga prueba como se muestra a continuación:
Como podemos ver arriba, tanto la carga como la descarga funcionan bien para el usuario jack. Con eso concluye el artículo, le invitamos a compartir sus comentarios y comentarios en las secciones de comentarios a continuación.
Lea también : Cómo configurar el servidor SFTP con Chroot en Debian 10