Cómo usar Chroot en Debian Top 10

Cómo usar Chroot en Debian Top 10
En un entorno de prueba, a menudo necesitamos sandbox ciertas aplicaciones para evitar que dañen o hisear el resto del sistema. Existen diferentes herramientas disponibles para sandboxing un programa y evitar que afecte el resto del sistema, como Virtualbox, VMware, XEN, KVM, etc. Sin embargo, solo para una sola o unas pocas aplicaciones, el sandboxing un sistema operativo completo no parece práctico.

Para el sistema operativo Linux, hay una herramienta disponible, conocida como chroot, que proporciona una forma más fácil y más rápida de sandboxing una aplicación. Con chroot, puede instalar y probar cualquier aplicación sin afectar el resto del sistema.

Este artículo explicará cómo usar chroot en Debian 10 Buster, junto con algunos ejemplos. Para explicación, crearemos un entorno de chroot para la fiesta y algunos de los comandos, como los comandos "LS", "IP" y "PWD".

Que es chroot?

La herramienta Chroot es un comando en Linux que cambia el directorio raíz de una aplicación a otro directorio. Los procesos que se ejecutan en este nuevo directorio raíz no pueden acceder a los archivos fuera de él. Por lo tanto, aísla las operaciones de aplicaciones del resto del sistema.

¿Cómo funciona Chroot??

Chroot funciona copiando la aplicación y todos sus ejecutables y dependencias dentro del directorio raíz alternativo. Luego ejecuta la aplicación desde este directorio raíz alternativo, lo que hace que la aplicación la considere como el directorio raíz original. El directorio raíz es el directorio más importante en la jerarquía, y ninguna aplicación puede alcanzar más alto que este directorio, por lo que así es como Chroot aísla la aplicación del resto del sistema.

Casos de uso

  • Configuración de un entorno de prueba
  • Ejecución de programas de 32 bits en un sistema de 64 bits
  • Ejecución de versiones de programas anteriores en la última versión del sistema operativo
  • Recuperación de contraseña

Sintaxis

La siguiente es la sintaxis básica para el comando chroot:

$ chroot dominio

Siga los pasos a continuación para usar el comando chroot en Debian para configurar un entorno de chroot.

Crear un directorio de raíz alternativo

Primero, cree un directorio de raíz alternativo que se utilizará para el entorno chroot.

$ sudo mkdir ~/new_root

El comando anterior creará el New_root directorio bajo el Hogar Directorio, que se utilizará como directorio raíz en el entorno chroot.

Agregar directorios esenciales

Crea los directorios "bin", "lib" y "lib64" bajo el ~/new_root directorio:

$ sudo mkdir -p ~/new_root/bin, lib, lib64

Copiar binarios del programa

Todo lo necesario para ejecutar una aplicación en el entorno chroot debe estar en el directorio de raíz alternativa. En este artículo, crearemos un entorno de chroot para la fiesta y algunos comandos, incluidos los comandos "LS", "IP" y "PWD". Por lo tanto, copiaremos los binarios del /papelera directorio a la alternativa ~/new_root/bin directorio. Para localizar los binarios de los comandos, use el comando que:

$ que Bash LS IP PWD

A continuación, copie los binarios de los comandos al ~/new_root/bin directorio.

$ sudo cp -v/bin/bash, ls, ip, pwd ~/new_root/bin

Copiar dependencias del programa

También tendremos que averiguar qué dependencias necesita nuestro programa. Primero, necesitaremos encontrar cuáles son esas dependencias, y luego las copiaremos al ~/new_root/Lib Directory.

Copiar dependencias para bash

Primero, descubra las dependencias para el programa BASH:

$ ldd /bin /bash

Luego, copie estas dependencias al ~/new_root/lib directorio.

$ cp -v/lib/x86_64-linux-gnu/libtinfo.entonces.6, libdl.entonces.2, libc.entonces.6 ~/new_root/lib

Para los archivos /lib64, cópielos al ~/new_root/lib64 directorio.

$ cp -v /lib64 /ld-linux-x86-64.entonces.2 ~/new_root/lib64

Copiar dependencias para el comando ls

Primero, descubra las dependencias para el comando LS:

$ ldd /bin /ls

Luego, copie estas dependencias al ~/new_root/lib directorio.

$ sudo cp -v/lib/x86_64-linux-gnu/libselinux.entonces.1, libc.entonces.6, libpcre.entonces.3,
libdl.entonces.2, LibpThread.entonces.0 /lib64 /ld-linux-x86-64.entonces.2 ~/new_root/lib

Para los archivos /lib64, cópielos al ~/new_root/lib64 directorio.

$ sudo cp -v /lib64 /ld-linux-x86-64.entonces.2 ~/new_root/lib64

Copiar dependencias para el comando IP

Primero, descubra las dependencias para el comando IP:

$ ldd /bin /ip

Luego, copie estas dependencias al ~/new_root/lib directorio.

$ cp -v /lib /x86_64 -linux
gnu/libselinux.entonces.1, Libelf.entonces.1, libmnl.entonces.0, libcap.entonces.2, libdl.entonces.2, libc.entonces.6,
libpcre.entonces.3, libz.entonces.1, LibpThread.entonces.0 ~/new_root/lib

Para los archivos /lib64, cópielos al ~/new_root/lib64 directorio.

$ sudo cp -v /lib64 /ld-linux-x86-64.entonces.2 ~/new_root/lib64

Copiar dependencias para el comando pwd

Primero, descubra las dependencias para el comando pwd:

$ ldd /bin /pwd

Luego, copie estas dependencias al ~/new_root/lib directorio.

$ sudo cp -v/lib/x86_64-linux-gnu/libc.entonces.6 ~/new_root/lib

Para los archivos /lib64, cópielos al ~/new_root/lib64 directorio.

$ sudo cp -v /lib64 /ld-linux-x86-64.entonces.2 ~/new_root/lib64

Para ver todos los directorios en el directorio raíz alternativo, use el siguiente comando:

$ ls -r

Cambiar a un directorio de raíz alternativo

Ahora, finalmente estamos preparados para cambiar a nuestro nuevo entorno de chroot. Para cambiar el directorio raíz, ejecute el siguiente comando en el shell con privilegios raíz:

$ sudo chroot ~/new_root/bin/bash

Dónde ~/new_root es nuestro directorio de raíz alternativa y /bin/bash es la aplicación que hemos utilizado para configurar el entorno chroot.

Después de ejecutar el comando anterior, verá que la solicitud de bash ha cambiado a bash-x.Y Que en nuestro caso es Bash-5.0 (donde 5.0 es el número de versión bash).

Nota: Puede encontrar el siguiente error después de ejecutar el comando chroot, como lo hice:

Si se produce este error, verifique que haya agregado todas las bibliotecas y ejecutables relacionados con el programa requerido al nuevo directorio raíz.

Después de ingresar al entorno chroot, solo podrá acceder al archivo dentro de él. Intente ejecutar los comandos que ha configurado para su entorno chroot, incluidos algunos comandos incorporados. Puede encontrar los comandos incorporados ejecutando el ayuda comando en el shell.

Puedes ver que hemos probado los comandos "LS", "PW" y "IP", y todos tuvieron éxito. Si ejecutamos algún comando que no sea estos tres comandos y los comandos incorporados, el comando fallará, ya que no lo hemos configurado para el entorno chroot. Como puede ver en la siguiente captura de pantalla, hemos intentado ejecutar los comandos "touch", "ping" y "claros", y todos ellos fallaron.

Salir chroot

Para salir del entorno chroot, use el salida dominio.

Conclusión

En este artículo, has aprendido qué es Chroot y cómo funciona en Linux. Este artículo le mostró paso a paso cómo usar Chroot en Debian 10 Buster para crear un entorno de chroot para Bash y otros comandos. Ahora, debe sentirse cómodo usando el comando chroot para cambiar el directorio raíz de un proceso y sus subprocesos y aislarlos del resto del sistema.