GNU/Linux >> Tutoriales Linux >  >> Linux

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

Introducción

El término cárcel chroot se remonta a 1992 y se usa con frecuencia en la actualidad. Pero, ¿qué significa este término y para qué se utiliza esta operación?

En este tutorial, cubriremos los conceptos básicos del uso de chroot jails y le mostraremos cómo puede configurar uno.

Requisitos previos

  • Un sistema que ejecuta un sistema operativo Linux o Unix
  • Una cuenta de usuario con privilegios de nivel sudo
  • Acceso a la terminal/línea de comando

¿Qué es la cárcel chroot?

Un chroot (abreviatura de cambiar raíz ) es una operación de Unix que cambia el directorio raíz aparente al especificado por el usuario.

Cualquier proceso que ejecute después de una operación chroot solo tiene acceso al directorio raíz recién definido y sus subdirectorios. Esta operación se conoce coloquialmente como cárcel chroot. ya que estos procesos no pueden leer ni escribir fuera del nuevo directorio raíz.

¿Para qué se usa chroot jail?

cárcel de chroot se utiliza para crear un espacio aislado limitado para que se ejecute un proceso. Esto significa que un proceso no puede cambiar de forma malintencionada los datos fuera del árbol de directorio prescrito.

Otro uso de las cárceles chroot es como sustituto de las máquinas virtuales. Este método se llama virtualización a nivel de kernel. y requiere menos recursos que las máquinas virtuales. Esta operación permite a los usuarios crear varias instancias aisladas en el mismo sistema.

Cómo usar chroot jail

Este ejemplo lo lleva a través de la creación y configuración de chroot jail para que pueda ejecutar bash y ls comandos.

Sigue estos pasos:

1. Cree un nuevo directorio llamado chroot_jail :

mkdir chroot_jail

Si intentamos chroot en el nuevo directorio, obtenemos el siguiente resultado:

Debe habilitar el bash comando antes de poder chroot en el nuevo directorio. Esto requiere copiar el archivo de comandos y todas las bibliotecas asociadas en el nuevo directorio raíz.

2. Cree un nuevo árbol de subdirectorios dentro de chroot_jail :

mkdir -p chroot_jail/bin chroot_jail/lib64/x86_64-linux-gnu chroot_jail/lib/x86_64-linux-gnu

Estos subdirectorios almacenarán todos los elementos necesarios del bash y ls comandos.

3. Usando el cp comando con el which comando vamos a copiar bash y ls comandos sin especificar la ruta desde la que está copiando.

Para ello, utilice:

cp $(which ls) chroot_jail/bin/
cp $(which bash) chroot_jail/bin/

4. Para bash y ls para trabajar en la nueva carpeta raíz, agregue todas las bibliotecas asociadas a chroot_jail/libraries . Usa el ldd comando para averiguar qué bibliotecas están asociadas con qué comando:

ldd $(which bash)
ldd $(which ls)

5. Copie las bibliotecas apropiadas en chroot_jail subdirectorios lib y lib64 .

Para el bash comando:

cp /lib/x86_64-linux-gnu/libtinfo.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/

Para el ls comando:

cp /lib/x86_64-linux-gnu/libselinux.so.1 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libpcre2-8.so.0 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/
cp /lib/x86_64-linux-gnu/libpthread.so.0 chroot_jail/lib/x86_64-linux-gnu/

6. Usa el chroot comando para cambiar la raíz a chroot_jail directorio:

sudo chroot chroot_jail

Usa el ls Comando para enumerar todos los archivos y directorios en el nuevo árbol de directorio raíz:

ls -R

7. Una vez que haya terminado de usar la nueva carpeta raíz, salga del shell:

exit

Linux
  1. ¿Qué es un comando Chown en Linux y cómo usarlo?

  2. ¿Qué es un comando cURL y cómo usarlo?

  3. Qué es y cómo usar la carpeta public_ftp

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

  5. ¿Qué es un archivo dtb de u-Boot y cómo lo uso (BeagleBoard xM)?

Qué es EFS (Elastic File System) en AWS y cómo usarlo

Qué es Terraform y cómo instalarlo y usarlo en AWS EC2

¿Qué son los contenedores multicuenta de Firefox? ¿Por qué y cómo usarlo?

¿Qué es EasyApache y cómo lo uso?

¿Qué es Docker Compose y cómo se usa?

¿Qué es PPA en Ubuntu Linux y cómo lo uso?