Cómo restringir el acceso de los usuarios de SSH a cierto directorio utilizando la cárcel de chrooted
- 4313
- 1144
- Berta Solano
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, ttyListado 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 8Crear /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 /testEstablecer 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 /testConfigurar 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 $ desanimadoPrueba 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 $ HistoriaComandos 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/tecmintCrear 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.
- « 4 comandos útiles para borrar la pantalla del terminal de Linux
- 6 métricas de rendimiento clave para monitorear en servidores Linux - Parte 1 »