Cómo restringir el acceso de los usuarios de SSH a cierto directorio utilizando la cárcel de chrooted

Cómo restringir el acceso de los usuarios de SSH a cierto directorio utilizando la cárcel de chrooted

Hay varias razones para restringir una sesión de usuario de SSH a un directorio en particular, especialmente en los servidores web, pero el obvio es la seguridad del sistema. Para bloquear a los usuarios de SSH en un determinado directorio, podemos usar croote mecanismo.

Cambiar raíz (croote) en sistemas similares a unix como Linux, es un medio para separar operaciones de usuario específicas del resto del sistema Linux; Cambia el directorio raíz aparente para el proceso de usuario que se ejecuta actualmente y su proceso infantil (padre) con un nuevo directorio raíz llamado cárcel.

En este tutorial, le mostraremos cómo restringir el acceso de los usuarios de SSH a un directorio determinado en Linux. Tenga en cuenta que ejecutaremos todos los comandos como root, use el comando sudo si ha iniciado sesión en el servidor como usuario normal.

Tabla de contenido

1
  • Paso 1: Crea la cárcel SSH Chroot
  • Paso 2: Configurar Shell Interactive para la cárcel SSH Chroot
  • Paso 3: Crear y configurar el usuario de SSH
  • Paso 4: Configure SSH para usar la cárcel de Chroot
  • Paso 5: Prueba de SSH con cárcel chroot
  • Paso 6. Crear directorio de inicio del usuario de SSH y agregar comandos Linux
  • Paso 7. Prueba de SFTP con cárcel chroot

Paso 1: Crea la cárcel SSH Chroot

1. Comience creando la cárcel Chroot usando el comando mkdir a continuación:

# mkdir -p /home /test 

2. A continuación, identifique los archivos requeridos, de acuerdo con el sshd_config Página del hombre, el Chrootdirectorio La opción especifica el nombre de ruta del directorio a Chroot a después de la autenticación. El directorio debe contener los archivos y directorios necesarios para admitir la sesión de un usuario.

Para una sesión interactiva, esto requiere al menos un caparazón, comúnmente mierda, y básico /desarrollo Nodos como NULL, ZERO, STDIN, STDOUT, STDERR Y TTY

# ls -l /dev /null, cero, stdin, stdout, stderr, aleatory, tty 
Listado de archivos requeridos

3. Ahora, crea el /desarrollo archivos de la siguiente manera utilizando el comando mknod. En el comando a continuación, el -metro El indicador se usa para especificar los bits de permisos de archivo, C significa que el archivo de caracteres y los dos números son números principales y menores a los que apuntan los archivos.

# mkdir -p/home/test/dev/ # cd/home/test/dev/ # mknod -m 666 null c 1 3 # mknod -m 666 tty c 5 0 # mknod -m 666 cero c 1 5 # mknod - - m 666 aleatorio c 1 8 
Crear /dev y archivos requeridos

4. Posteriormente, establezca el permiso apropiado en la cárcel de Chroot. Tenga en cuenta que la cárcel de chroot y sus subdirectorios y subfiles deben ser propiedad de la raíz usuario, y no por ningún usuario o grupo normal:

# root chown: root /home /test # chmod 0755 /home /test # ls -ld /home /test 
Establecer permisos en el directorio

Paso 2: Configurar Shell Interactive para la cárcel SSH Chroot

5. Primero, cree el papelera directorio y luego copiar el /bin/bash archivos en el papelera directorio utilizando el comando CP de la siguiente manera:

# mkdir -p/home/test/bin # cp -v/bin/bash/home/test/bin/ 
Copiar archivos al directorio bin

6. Ahora, identifique la fiesta requerida para compartir libraciones, como se muestra a continuación, y cópielos en el lib directorio:

# ldd/bin/bash # mkdir -p/home/test/lib64 # cp -v/lib64/libtinfo.entonces.5, libdl.entonces.2, libc.entonces.6, LD-Linux-X86-64.entonces.2/home/test/lib64/ 
Copiar archivos de biblioteca compartidos

Paso 3: Crear y configurar el usuario de SSH

7. Ahora, cree el usuario de SSH con el comando UserAdd y establezca una contraseña segura para el usuario:

# UserAdd TecMint # passwd tecMint 

8. Crea el directorio de configuraciones generales de la cárcel chroot, /Home/Test/Etc y copiar los archivos de cuenta actualizados (/etc/passwd y /etc/grupo) en este directorio de la siguiente manera:

# mkdir/home/test/etc # cp -vf/etc/passwd, group/home/test/etc/ 
Copiar archivos de contraseña Nota: Cada vez que agrega más usuarios de SSH al sistema, deberá copiar los archivos de cuenta actualizados en el /Home/Test/Etc directorio.

Paso 4: Configure SSH para usar la cárcel de Chroot

9. Ahora, abra el sshd_config archivo.

# vi/etc/ssh/sshd_config 

y agregar/modificar las líneas a continuación en el archivo.

#Define el nombre de usuario para aplicar la cárcel de chroot a Haga coincidir la tecmint del usuario #Especificar la cárcel de chroot Chrootdirectory /home /test 
Configurar la cárcel SSH Chroot

Guarde el archivo y la salida, y reinicie los servicios SSHD:

# SystemCTL reiniciar sshd o # servicio sshd reiniciar 

Paso 5: Prueba de SSH con cárcel chroot

10. En este punto, pruebe si la configuración de la cárcel de Chroot funciona como se esperaba:

# ssh [correo electrónico protegido] -bash-4.1 $ ls -bash -4.1 $ date -bash -4.1 $ desanimado 
Prueba de la cárcel del usuario de SSH

Desde la captura de pantalla anterior, podemos ver que el usuario de SSH está bloqueado en la cárcel de chrooted y no puede ejecutar ningún comando externo (LS, fecha, desacuerdo, etc.).

El usuario solo puede ejecutar Bash y sus comandos Builtin, como (PWD, Historia, Echo, etc.) como se ve a continuación:

# ssh [correo electrónico protegido] -bash-4.1 $ pwd -bash -4.1 $ ECHO "TECMINT -SITIO LINUX de más rápido crecimiento" -Bash -4.1 $ Historia 
Comandos incorporados SSH

Paso 6. Crear directorio de inicio del usuario de SSH y agregar comandos Linux

11. Desde el paso anterior, podemos notar que el usuario está bloqueado en el directorio raíz, podemos crear un directorio de inicio para el usuario de SSH como SO (haz esto para todos los usuarios futuros):

# mkdir -p/home/test/home/tecmint # chown -r tecmint: tecmint/home/test/home/tecmint # chmod -r 0700/home/test/home/tecmint 
Crear directorio de inicio de usuario de SSH

12. A continuación, instale algunos comandos de usuario como LS, Date y Mkdir en el papelera directorio:

# cp -v/bin/ls/home/test/bin/ # cp -v/bin/date/home/test/bin/ # cp -v/bin/mkdir/home/test/bin/ 
Agregar comandos al usuario de SSH

13. A continuación, consulte las bibliotecas compartidas los comandos anteriores y muévalos al directorio de bibliotecas de la cárcel chrootada:

# ldd /bin /ls # cp -v /lib64 /libselinux.entonces.1, libcap.entonces.2, libacl.entonces.1, libc.entonces.6, libpcre.entonces.1, libdl.entonces.2, LD-Linux-X86-64.entonces.2, libattr.entonces.1, LibpThread.entonces.0/home/test/lib64/ 
Copiar bibliotecas compartidas

Paso 7. Prueba de SFTP con cárcel chroot

14. Haga una prueba final usando SFTP; Compruebe si los comandos que acaba de instalar están funcionando.

Agregue la línea de abajo en el /etc/ssh/sshd_config archivo:

#Enable SFTP a la cárcel de chrooted Fortecommand interno-SFTP 

Guarda el archivo y cierra. Luego reinicie los servicios SSHD:

# SystemCTL reiniciar sshd o # servicio sshd reiniciar 

15. Ahora, pruebe usando SSH y obtendrá el siguiente error:

# ssh [correo electrónico protegido] 
Prueba SSH Chroot Jail

Intente usar SFTP de la siguiente manera:

# SFTP [Correo electrónico protegido] 
Prueba de usuario de SFTP SSH

También podría gustarte:

  • Cómo restringir a los usuarios de SFTP a los directorios de inicio utilizando la cárcel de Chroot
  • Uso y configuración básica del comando SSH en Linux
  • 5 mejores prácticas para evitar ataques de inicio de sesión de fuerza bruta SSH en Linux
  • 5 mejores prácticas de seguridad del servidor OpenSsh

Eso es todo por ahora! En este artículo, le mostramos cómo restringir a un usuario de SSH en un directorio determinado (cárcel de chrooted) en Linux. Use la sección de comentarios a continuación para ofrecernos sus pensamientos sobre esta guía.