GNU/Linux >> Tutoriales Linux >  >> Linux

CentOS/RHEL:Cómo configurar SFTP para Chroot Jail solo para un grupo específico

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.

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>

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".


Linux
  1. CentOS/RHEL 7:Cómo agregar un parámetro de kernel solo a un kernel específico

  2. CentOS/RHEL 7:Cómo habilitar telnet para un grupo de usuarios

  3. Cómo habilitar el registro SFTP sin chroot en CentOS/RHEL

  4. Cómo configurar children-max para el servicio udev en CentOS/RHEL 7

  5. CentOS / RHEL 7:cómo establecer el objetivo predeterminado (nivel de ejecución predeterminado)

Cómo configurar SSH en CentOS y RHEL

CentOS / RHEL:cómo configurar chroot jail para vsftp solo para usuarios específicos

CentOS / RHEL:cómo configurar chroot jail para vsftp para todos los usuarios

CentOS / RHEL:Cómo configurar chroot jail SFTP

Cómo configurar la ID del proceso en Linux para un programa específico

¿Cómo puedo crear un usuario solo para sftp?