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.
Tabla de Contenidos
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 sh
y básico /dev
Nodos como dispositivos null, zero, stdin, stdout, stderr y tty:
# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
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
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
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/
6. Ahora, identifique el bash requerido para compartir libs
como 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/
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/
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
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
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
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
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/
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/
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]
Intente usar SFTP así:
# sftp [email protected]
¡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.
Agradecemos su apoyo interminable.