GNU/Linux >> Tutoriales Linux >  >> Cent OS

Comprender la cárcel chroot

Como su nombre lo indica, una operación chroot cambia el directorio raíz aparente para un proceso en ejecución y sus hijos. Le permite ejecutar un programa (proceso) con un directorio raíz que no sea /. El programa no puede ver ni acceder a archivos fuera del árbol de directorio designado.

Por ejemplo, puede ejecutar un programa y especificar su directorio raíz como /home/user/jail. En este caso, el directorio raíz del programa es en realidad /home/user/jail. El programa no reconocería ni podría acceder a ningún archivo por encima de este directorio en la jerarquía.

Este directorio raíz artificial se llama cárcel chroot . Su propósito es limitar el acceso al directorio de un atacante potencial. El chroot jail bloquea un proceso dado y cualquier ID de usuario que esté usando para que el usuario vea solo el directorio en el que se está ejecutando el proceso. Para el proceso,
parece que se está ejecutando en el directorio raíz.

Un chroot jail no está destinado a:
– Defenderse de la manipulación intencional por parte de usuarios privilegiados (raíz).
– Ser utilizado para bloquear el acceso de bajo nivel a los dispositivos del sistema por parte de usuarios privilegiados. Un usuario chroot todavía puede crear nodos de dispositivos y montar los sistemas de archivos en ellos.

Para que un proceso chroot se inicie con éxito, el directorio chroot debe llenarse con todos los archivos de programa, archivos de configuración, nodos de dispositivos y bibliotecas compartidas necesarios en sus ubicaciones previstas.

Uso de la utilidad chroot

1. Para usar un chroot jail, use el siguiente comando (new_root debe ser un directorio existente):

# chroot new_root [command]

2. El directorio new_root se convierte en el directorio raíz artificial. chroot cambia a new_root y ejecuta el comando opcional. Sin especificar un comando como argumento, chroot cambia a new_root y ejecuta el valor de la variable de entorno SHELL o /bin/sh si SHELL no está configurado.

3. Por ejemplo, suponiendo que SHELL está configurado en /bin/bash y el directorio /home/user/jail existe, al ejecutar el comando chroot se obtiene lo siguiente:

# chroot /home/user/jail
chroot: failed to run command ‘/bin/bash’: No such file or directory

4. El directorio /home/user/jail toma el nombre de /. chroot no puede encontrar /bin/bash dentro de este chroot jail y devuelve el mensaje de error. Para implementar un chroot jail, cree la nueva estructura de directorio raíz y copie todos los archivos necesarios en este nuevo directorio raíz antes de ejecutar el comando chroot.

Configuración de la cárcel chroot

1. Para implementar un chroot jail y ejecutar /bin/bash, cree el directorio bin en el directorio raíz artificial (/home/oracle/jail en este ejemplo) y copie /bin/bash en este directorio:

$ mkdir /home/oracle/jail/bin
$ cp /bin/bash /home/oracle/jail/bin

2. El comando /bin/bash está vinculado dinámicamente a las bibliotecas compartidas. Estas bibliotecas también deben copiarse en el chroot jail. Use el comando ldd para determinar qué bibliotecas requiere el comando /bin/bash:

# ldd /bin/bash
	linux-vdso.so.1 =>  (0x00007fff11bff000)
	libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003728800000)
	libdl.so.2 => /lib64/libdl.so.2 (0x0000003d56400000)
	libc.so.6 => /lib64/libc.so.6 (0x0000003d56800000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003d56000000)

3. Copie cada uno de estos archivos en un directorio lib64 en el directorio raíz artificial. Cree el directorio lib64 y copie las bibliotecas compartidas en este directorio:

$ mkdir /home/oracle/jail/lib64
$ cp /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/oracle/jail/lib64

4. Ahora que todos los archivos requeridos están en sus ubicaciones esperadas, ejecutar el comando chroot (como root) da como resultado lo siguiente:

# chroot /home/oracle/jail

5. El comando tuvo éxito esta vez y se ejecutó el programa /bin/bash. Al ingresar pwd para imprimir el directorio actual, se muestra /, aunque el directorio real es /home/oracle/jail:

# pwd
/

El comando pwd se ejecuta porque es un comando integrado de shell. La ejecución de cualquier otro comando falla porque bash no puede encontrar el comando. El proceso asume que está en el directorio raíz y no tiene visibilidad ni conocimiento de ningún archivo por encima de este directorio en la jerarquía. Por ejemplo, falla la ejecución del comando ls:

# ls
bash: ls: command not found

6. Use el comando exit para salir de la cárcel chroot.

# exit
exit
#
CentOS/RHEL:cómo configurar chroot jail SFTP
CentOS/RHEL:cómo configurar chroot jail para vsftp para todos los usuarios
CentOS/RHEL:cómo configurar chroot jail para vsftp solo para usuarios específicos
CentOS / RHEL:Cómo configurar SFTP para Chroot Jail solo para un grupo específico


Cent OS
  1. Vincular montar un usuario SFTP después de usar chroot

  2. Comprender la cárcel chroot

  3. Comprender el directorio /etc/sysconfig

  4. Comprender el directorio /etc/skel en Linux

  5. Cómo ejecutar servicios DNS y FTP en una cárcel chroot

¿Qué es chroot jail y cómo usarlo?

Cómo instalar Go en CentOS 7

Comando Du en Linux

Comando mv en Linux

CentOS / RHEL:cómo configurar chroot jail para vsftp para todos los usuarios

CentOS / RHEL:Cómo configurar chroot jail SFTP