Restringir el acceso de usuarios SSH a ciertos directorios usando Chrooted Jail

Restringir el acceso de usuarios SSH a ciertos directorios usando Chrooted Jail

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

cambiar la raíz ( chroot. en sistemas similares a Unix como Linux, es un medio para separar las operaciones específicas de los usuarios del resto del sistema Linux; cambia el directorio raíz aparente para el proceso de usuario en ejecución actual y su proceso hijo con un nuevo directorio raíz llamado cárcel chrooted.

En este tutorial, le mostraremos cómo restringir un acceso de usuario 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 un usuario normal.

Paso 1: Cree SSH Chroot Jail

1.. Empiece por crear la cárcel chroot usando el comando mkdir a continuación:

# mkdir-p/home/test

2.. Luego, identifique los archivos requeridos, de acuerdo con la página de manual sshd_config. la opción ChrootDirectory especifica el nombre de ruta del directorio al que se aplicará el chroot después de la autenticación. El directorio debe contener los archivos y directorios necesarios para admitir la sesión de un usuario.

freestar.config.enabled_slots.push

Para una sesión interactiva, esto requiere al menos un shell, comúnmente sh, y nodos básicos/dev como los dispositivos null, zero, stdin, stdout, stderr y tty:

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

3.. Ahora, cree el/dev archivos de la siguiente manera usando el mknod comando. En el siguiente comando, la bandera-m se usa para especificar los bits de permisos de archivo, c significa archivo de caracteres y los dos números son números mayores y menores a los que apuntan los archivos.

# mkdir-p/home/test/dev/# cd/home/test/dev/# mknod-m 666 nulo 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  Crear/dev y archivos requeridos Crear/dev y archivos requeridos

4.. Luego, establezca el permiso apropiado en la cárcel de chroot. Tenga en cuenta que la jail chroot y sus subdirectorios y subarchivos deben ser propiedad del usuario root. y ningún usuario o grupo normal puede escribirla:

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

Paso 2: Configure Interactive Shell para SSH Chroot Jail

5.. Primero, cree el directorio bin y luego copie los archivos/bin/bash en el directorio bin de la siguiente manera:

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

6.. Ahora, identifique bash requería bibliotecas compartidas, como se muestra a continuación, y cópielas en el directorio lib:

# 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 compartida  Copiar archivos de biblioteca compartida Copiar archivos de biblioteca compartida

Paso 3: Crear y configurar el usuario SSH

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

# useradd tecmint # passwd tecmint

8.. Cree el directorio de configuraciones generales de chroot jail,/home/test/etc y copie los archivos de cuenta actualizados (/etc/passwd. y /etc/group. en este directorio de la siguiente manera:

# mkdir/home/test/etc # cp-vf/etc/passwd, group/home/test/etc/ Copiar archivos de contraseña  Copiar archivos de contraseña Copiar archivos de contraseña

Nota : Cada vez que agregue más usuarios SSH al sistema, deberá copiar los archivos de cuenta actualizados en el directorio/home/test/etc.

Paso 4: Configure SSH para usar Chroot Jail

9.. Ahora, abra el archivo sshd_config.

# vi/etc/ssh/sshd_config

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

#define nombre de usuario para aplicar chroot jail a Match User tecmint. #especifique chroot jail ChrootDirectory/home/test.  Configurar SSH Chroot Jail  Configurar SSH Chroot Jail Configurar SSH Chroot Jail

Guarde el archivo y salga, y reinicie los servicios SSHD:

# systemctl restart sshd O # service sshd restart

Paso 5: Probar SSH con Chroot Jail

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

# ssh [email protected]. bash-4.1 $ ls-bash-4.1 $ date-bash-4.1 $ uname  Prueba SSH User Chroot Jail  Prueba SSH User Chroot Jail Prueba SSH User Chro ot Jail

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

El usuario solo puede ejecutar bash y sus comandos integrados como (pwd, history, echo, etc.) como se ve a continuación:

# ssh [email protected]. bash-4.1 $ pwd-bash-4.1 $ echo “Tecmint-Sitio de Linux de más rápido crecimiento”-bash-4.1 $ history  Comandos integrados de SSH Comandos incorporados SSH Comandos incorporados SSH

Paso 6. Cree el directorio de inicio del usuario SSH y agregue 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 SSH así (haga esto para todos los usuarios futuros):

# mkdir-p/home/test/home/tecmint # chown-R tecmint: tecmint/home/test/home/tecmint # ch mod-R 0700/home/test/home/tecmint  Crear directorio de inicio de usuario SSH  Crear directorio de inicio de usuario SSH Crear inicio de usuario SSH Directorio

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

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

13.. Luego, verifique las bibliotecas compartidas para los comandos anteriores y muévalos al directorio de bibliotecas de jail chrooted:

# 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 bibliotecas compartidas  Copiar bibliotecas compartidas Copiar bibliotecas compartidas

Paso 7. Probar SFTP con Chroot Jail

14.. Realice una prueba final con sftp; compruebe si los comandos que acaba de instalar funcionan.

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

#Enable sftp to chrooted jail ForceCommand internal-sftp

Guardar el archivo y salir. Luego reinicie los servicios SSHD:

# systemctl restart sshd O # service sshd restart

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

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

Intenta usar SFTP de la siguiente manera:

# sftp [correo electrónico protegido]  Probando sFTP SSH User  Prueba del usuario SSH sFTP Prueba del usuario SSH sFTP

Lectura sugerida: Restringir a los usuarios de SFTP a los directorios de inicio usando chroot Jail

Leave a comment

Your email address will not be published. Required fields are marked *