Tutoriales

Restrinja el acceso de los usuarios de SSH al directorio de inicio mediante la cárcel chrooted

Hay varias razones para restringir las sesiones de usuario de SSH a directorios específicos, especialmente en servidores web, pero la más obvia es la seguridad del sistema.Para bloquear al usuario de SSH en un directorio determinado, podemos usar chroot mecanismo.

cambiar raíz (chroot) en sistemas similares a Unix, como Linux, es un método para separar operaciones de usuario específicas del resto del sistema Linux; cambia la raíz aparente de los procesos de usuario que se están ejecutando actualmente y sus procesos secundarios (principales) con una nueva raíz llamada Tabla de contenido cárcel chroot.

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

Paso 1: Cree una Cárcel Chroot SSH

1. Primero cree la cárcel chroot usando el comando mkdir a continuación:

# mkdir -p /home/test

2. A continuación, según sshd_config página man ChrootDirectory La opción especifica el nombre de la ruta del directorio al que se va a hacer chroot después de la autenticación. Este directorio debe contener los archivos y directorios necesarios para admitir sesiones de usuario.

Para sesiones interactivas, esto generalmente requiere al menos un shell shy básico /dev Nodos como dispositivos null, zero, stdin, stdout, stderr y tty:

# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
lista de documentos requeridos

3. Ahora, crea /dev El archivo se utiliza de la siguiente manera comando mknodEn el siguiente comando, -m bandera se utiliza para especificar el bit de permiso de archivo, c Indica un archivo de caracteres, y los dos números son los números mayor y menor a los que apunta el archivo.

# 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 zero c 1 5
# mknod -m 666 random c 1 8
Crear /dev y archivos requeridos
Crear /dev y archivos requeridos

4. Después de eso, configure los permisos apropiados en chroot jail.Tenga en cuenta que chroot jail y sus subdirectorios y subarchivos deben ser controlados por raíz usuario, y no puede ser escrito por ningún usuario o grupo normal:

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

Paso 2: configure un shell interactivo para SSH Chroot Jail

5. Primero, crea bin directorio, luego copie /bin/bash archivo en bin El directorio que usa el comando cp es el siguiente:

# mkdir -p /home/test/bin
# cp -v /bin/bash /home/test/bin/
Copie el archivo en el directorio bin
Copie el archivo en el directorio bin

6. Ahora, identifique el bash requerido para compartir libscomo se muestra a continuación, y cópielos en lib Tabla de contenido:

# ldd /bin/bash
# mkdir -p /home/test/lib64
# cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/
Copiar archivos de biblioteca compartidos
Copiar archivos de biblioteca compartidos

Paso 3: Crear y configurar un usuario SSH

7. Ahora, use el comando useradd para crear un usuario SSH y establecer una contraseña segura para el usuario:

# useradd tecmint
# passwd tecmint

8. Cree un directorio de configuración común de chroot jail, /home/test/etc y copie el archivo de cuenta actualizado (/etc/contraseña y /etc/grupo) en ese directorio, de la siguiente manera:

# mkdir /home/test/etc
# cp -vf /etc/{passwd,group} /home/test/etc/
copiar archivo de contraseña
copiar archivo de contraseña

notas: Cada vez que agrega más usuarios de SSH al sistema, debe copiar el archivo de cuenta actualizado a /home/test/etc Tabla de contenido.

Paso 4: Configure SSH para usar Chroot Jail

9. ahora abierto sshd_config documento.

# vi /etc/ssh/sshd_config

y agregue/modifique las siguientes líneas en el archivo.

#define username to apply chroot jail to
Match User tecmint
#specify chroot jail
ChrootDirectory /home/test
Configurar la cárcel SSH Chroot
Configurar la cárcel SSH Chroot

Guarde el archivo y salga, reinicie el servicio SSHD:

# systemctl restart sshd
OR
# service sshd restart

Paso 5: Pruebe SSH con Chroot Jail

10 En este punto, pruebe que la configuración de chroot jail está funcionando como se esperaba:

# ssh [email protected]
-bash-4.1$ ls
-bash-4.1$ date
-bash-4.1$ uname
Prueba de usuario SSH Chroot Jail
Prueba de usuario SSH Chroot Jail

En la captura de pantalla anterior, podemos ver que el usuario de SSH está encerrado en la cárcel chroot y no puede ejecutar ningún comando externo (ls, date, uname, etc.).

Los usuarios solo pueden ejecutar bash y sus comandos integrados, como (pwd, history, echo, etc.), de la siguiente manera:

# ssh [email protected]
-bash-4.1$ pwd
-bash-4.1$ echo "Tecmint - Fastest Growing Linux Site"
-bash-4.1$ history
Comandos integrados de SSH
Comandos integrados de SSH

Paso 6. Cree el directorio de inicio del usuario de SSH y agregue los comandos de 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 este (haga 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 SSH
Crear directorio de inicio de usuario SSH

12 A continuación, instale algunos comandos de usuario en el directorio, como ls, date y mkdir bin Tabla de contenido:

# 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 SSH
Agregar comandos al usuario SSH

13 A continuación, verifique las bibliotecas compartidas para el comando anterior y muévalas al directorio de la biblioteca de la cárcel chroot:

# ldd /bin/ls
# cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/
copiar biblioteca compartida
copiar biblioteca compartida

Paso 7. Pruebe SFTP con Chroot Jail

14 Haz una prueba final con sftp; comprueba que los comandos que acabas de instalar funcionan.

En la línea de abajo agrega /etc/ssh/sshd_config documento:

#Enable sftp to chrooted jail 
ForceCommand internal-sftp

Guarda el archivo y cierra. Luego reinicie el servicio SSHD:

# systemctl restart sshd
OR
# service sshd restart

15. Ahora, probando con SSH, obtendrá el siguiente error:

# ssh [email protected]
Probar SSH Chroot Jail
Probar SSH Chroot Jail

Intente usar SFTP así:

# sftp [email protected]
Probar usuario sFTP SSH
Probar usuario sFTP SSH

¡Que así sea! En este artículo, le mostramos cómo restringir a los usuarios de SSH en un directorio determinado (chroot jail) en Linux. Danos tu opinión sobre esta guía utilizando la sección de comentarios a continuación.

Si aprecia el trabajo que hacemos en TecMint, debe considerar:

TecMint es el sitio comunitario de más rápido crecimiento y más confiable para artículos, guías y libros de Linux de cualquier tipo en la web. ¡Millones de personas visitan TecMint! Busque o explore miles de artículos publicados disponibles gratuitamente para todos.

Si le gusta lo que está leyendo, considere ofrecernos una taza de café (o 2) para agradecernos.

Apoyanos

Agradecemos su apoyo interminable.

LEER  Comandos básicos del editor Vim

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba