GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar el servidor Chroot SFTP en Linux

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


Linux
  1. Cómo configurar las cárceles chroot de Linux

  2. Cómo trabajar con el cliente SFTP en Linux:10 comandos sftp

  3. Cómo configurar un servidor SFTP en Arch Linux

  4. Cómo instalar y configurar el servidor y el cliente NTP de Linux

  5. Cómo configurar el servidor VNC en Oracle Linux 6

Cómo instalar y configurar un servidor NFS en un sistema Linux

Cómo instalar y configurar el servidor Apache SVN en el escritorio de Linux

Cómo SSH al servidor a través de Linux

Cómo configurar NGINX en un servidor CentOS 7

Cómo instalar y configurar el servidor web Apache en Oracle Linux 8

Cómo instalar y configurar el servidor DNS en Linux