LinuxParty
Hay varias razones para restringir una sesión de usuario SSH a un directorio en particular, especialmente en servidores web, pero la razón más obvia es la seguridad del sistema. Para bloquear a los usuarios de 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 del usuario del resto del sistema Linux; cambia el directorio raíz aparente para el proceso de usuario en ejecución actual y su proceso secundario con un nuevo directorio raíz llamado cárcel chroot.
En este tutorial, le mostraremos cómo restringir el acceso de un 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: Crear SSH Chroot Jail
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 la página del manual sshd_config, la opción "ChrootDirectory"
especifica el nombre de la ruta del directorio al que se realizará 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.
Para una sesión interactiva, esto requiere al menos un shell, comúnmente "sh"
y nodos básicos "/dev"
como dispositivos null, zero, stdin, stdout, stderr y tty:
# ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
Listado de archivos requeridos
3. Ahora, cree los archivos "/dev"
de la siguiente manera usando el comando mknod. En el siguiente comando, la opción "-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 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 archivos requeridos y directorios /dev
4. Luego, configure el permiso apropiado en el chroot jail. Tenga en cuenta que chroot jail y sus subdirectorios y subarchivos deben ser propiedad del usuario root y ningún usuario o grupo normal debe poder escribir:
# chown root:root /home/test # chmod 0755 /home/test # ls -ld /home/test
Establecer permisos en el directorio
Paso 2: Configure el shell interactivo 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/test/bin/
Copiar archivos al directorio bin
6. Ahora, identifique «bash required shared» "libs"
, como se muestra a continuación, y cópielos 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 compartidos
Paso 3: crear y configurar un usuario SSH
7. Ahora, cree el usuario SSH con el comando useradd y configure una contraseña segura para el usuario:
# useradd linuxparty # passwd linuxparty
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
Nota : Cada vez que agregue más usuarios de 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 "sshd_config"
archivo.
# vi /etc/ssh/sshd_config
y agregue/modifique las siguientes líneas en el archivo.
...
#define nombre de usuario para aplicar chroot jail a Match User linuxparty #especificar chroot jail (cárcel chroot) ChrootDirectory /home/test
Configurar la cárcel SSH Chroot
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 chroot jail está funcionando como se esperaba:
# ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
-bash-4.1$ ls
-bash-4.1$ date
-bash-4.1$ uname
Probando la Cárcel Chroot del Usuario SSH
En la captura de pantalla anterior, podemos ver que el usuario de SSH está bloqueado en la cárcel chroot 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 Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
-bash-4.1$ pwd
-bash-4.1$ echo "linuxparty - El sitio Linux de más rápido crecimiento"
-bash-4.1$ history
Comandos integrados de SSH
Paso 6. Cree el directorio de inicio del usuario de SSH y agregue 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 SSH así (haga esto para todos los usuarios futuros):
# mkdir -p /home/test/home/linuxparty # chown -R linuxparty:linuxparty /home/test/home/linuxparty # chmod -R 0700 /home/test/home/linuxparty
Crear directorio de inicio de usuario SSH
12. A continuación, instale algunos comandos de usuario como ls, date, mkdir en el "bin"
directorio:
# cp -v /bin/ls /home/test/bin/ # cp -v /bin/fecha /home/test/bin/ # cp -v /bin/mkdir /home/test/bin/
Agregar comandos al usuario de SSH
13. A continuación, compruebe las bibliotecas compartidas para los comandos anteriores y muévalos al directorio de bibliotecas 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 bibliotecas compartidas
Paso 7. Prueba de SFTP con Chroot Jail
14. Haz una prueba final usando sftp; comprueba si los comandos que acabas de instalar están funcionando.
Agregue la siguiente línea en el archivo "/etc/ssh/sshd_config"
:
#Enable sftp to chrooted jail
ForceCommand internal-sftp
Guarda el archivo y cierra. Luego reinicie los servicios SSHD:
# systemctl restart sshd O # service sshd restart
15. Ahora, prueba usando SSH, obtendrás el siguiente error:
# ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Probar SSH Chroot Jail
Intente usar SFTP de la siguiente manera:
# sftp Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Prueba de usuario sFTP SSH
¡Eso es todo por ahora!. En este artículo, le mostramos cómo restringir un usuario SSH en un directorio determinado (cárcel chroot) en Linux. Utilice la sección de comentarios a continuación para ofrecernos sus opiniones sobre esta guía.
-
Seguridad
- Drones, vigilancia y reconocimiento facial: una startup llamada 'Sauron' presenta un sistema de seguridad para el hogar de estilo militar
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- ¿Olvidó su contraseña? Cinco razones por las que necesita un administrador de contraseñas
- Cómo limitar las conexiones SSH (puerto TCP 22) con ufw en Ubuntu Linux
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS