Cómo configurar las cárcel de Linux Chroot

Cómo configurar las cárcel de Linux Chroot
Especialmente aquellos dedicados a servicios críticos, los sistemas Linux requieren un conocimiento a nivel de experto para trabajar y medidas de seguridad básicas.

Desafortunadamente, incluso después de tomar medidas de seguridad cruciales, las vulnerabilidades de seguridad aún llegan a los sistemas seguros. Una forma de manejar y proteger su sistema es limitar el daño posible una vez que ocurre un ataque.

En este tutorial, discutiremos el proceso de usar la cárcel de chroot para administrar los daños del sistema en caso de ataque. Veremos cómo aislar procesos y subprocesos a un entorno particular con falsos privilegios de raíz. Hacer esto limitará el proceso a un directorio específico y negará el acceso a otras áreas del sistema.

Una breve introducción a la cárcel de Chroot

Una cárcel de chroot es un método de aislamiento de procesos y su subproceso del sistema principal utilizando privilegios raíz falsos.

Como se mencionó, aislar un proceso particular que utilizan privilegios de raíz falsos limita los daños en el caso de un ataque malicioso. Los servicios de chrooted se limitan a los directorios y archivos dentro de sus directorios y no son persistentes al reiniciar el servicio.

¿Por qué usar la cárcel de chroot?

El objetivo principal de la cárcel de chroot es como medida de seguridad. Chroot también es útil al recuperar contraseñas perdidas mediante dispositivos de montaje de Media Live.

Hay varias ventajas y desventajas de establecer la cárcel de chroot. Éstas incluyen:

Ventajas

  • Acceso de límites: en caso de compromiso de seguridad, los únicos directorios dañados son aquellos dentro de la cárcel de chroot.
  • Límites de comando: los usuarios o procesos se limitan a los comandos permitidos en la cárcel.

Desventajas

  • Puede ser un desafío para configurar.
  • Requiere mucho trabajo, si necesita un comando adicional que los permitidos por defecto, debe incluirlo manualmente.

Cómo crear una cárcel de chroot básica

En este proceso, crearemos una cárcel de chroot básica con 3 comandos limitados a esa carpeta. Esto ayudará a ilustrar cómo crear una cárcel y asignar varios comandos.

Comience creando una carpeta principal. Puede pensar en esta carpeta como la carpeta / en el sistema principal. El nombre de la carpeta puede ser cualquier cosa. En nuestro caso, lo llamamos /chrootjail

sudo mkdir /chroil

Usaremos este directorio como la raíz falsa que contiene los comandos que le asignaremos. Con los comandos que usaremos, requeriremos el directorio bin (contiene los ejecutables de comando) y el, etc., directorio (que contiene archivos de configuración para los comandos).

Dentro de la carpeta /chrootjail, cree estas dos carpetas:

sudo mkdir /chrootjail /etc, bin

El siguiente paso es crear directorios para bibliotecas vinculadas dinámicamente para los comandos que queremos incluir en la cárcel. Para este ejemplo, usaremos comandos Bash, LS y GREP.

Use el comando LDD para enumerar las dependencias de estos comandos, como se muestra a continuación:

sudo ldd /bin /bash /bin /ls /bin /grep

Si no está dentro de la carpeta bin, debe pasar la ruta completa para los comandos que desea usar. Por ejemplo, LDD /bin /bash o ldd /bin /grep

De la salida LDD anterior, necesitamos los directorios lib64 y /lib /x86_64-linux-gnu. Dentro del directorio de la cárcel, cree estas carpetas.

sudo mkdir -p /chrootjail lib /x86_64-linux-gnu, lib64

Una vez que tenemos los directorios de biblioteca dinámica creados, podemos enumerarlos usando un árbol, como se muestra a continuación:

A medida que avanzamos, comenzará a obtener una imagen clara de lo que significa una cárcel de chroot.

Estamos creando un entorno similar a un directorio raíz normal de un sistema Linux. La diferencia es que, dentro de este entorno, solo se permiten comandos específicos, y el acceso es limitado.

Ahora que hemos creado el contenedor. etc., lib y lib64, podemos agregar los archivos requeridos dentro de sus respectivos directorios.

Comencemos con los binarios.

sudo cp /bin /bash /chrootjail /bin && sudo cp /bin /ls /chrootjail /bin && sudo cp /bin /grep /chrootjail /bin

Habiendo copiado los binarios para los comandos que necesitamos, requerimos las bibliotecas para cada comando. Puede usar el comando LDD para ver los archivos para copiar.

Comencemos con Bash. Para Bash, requerimos las siguientes bibliotecas:

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

En lugar de copiar todos estos archivos uno por uno, podemos usar un bucle Simple para copiar cada biblioteca en todas las bibliotecas a/chrootjail/lib/x86_64-linux-gnu

Repitemos este proceso para el comando LS y GREP:

Para el comando ls:

Para el comando GREP:

A continuación, dentro del directorio de Lib64, tenemos una biblioteca compartida en todos los binarios. Simplemente podemos copiarlo usando un comando CP simple:

A continuación, editemos el archivo de inicio de sesión de Bash principal (ubicado en /etc /bash.Bashrc en Debian) para que podamos ajustar el indicador de la fiesta a nuestro gusto. Usando un simple comandos de eco y tee como se muestra:

sudo echo 'ps1 = "chrootjail #"' | Sudo Tee/Chrootjail/etc/Bash.bashrc

Una vez que hayamos completado todos los pasos anteriores, podemos iniciar sesión en el entorno de la cárcel utilizando el comando chroot como se muestra.

sudo chroot /chrootjail /bin /bash

Obtendrá privilegios raíz con el indicador similar a los creados en el comando echo y tee anterior.

Una vez que inicie sesión, verá que solo tiene acceso a los comandos que incluyó cuando creó la cárcel. Si necesita más comandos, debe agregarlos manualmente.

NOTA: Como ha incluido el shell bash, tendrá acceso a todos los comandos incorporados de Bash. Que le permite salir de la cárcel con el comando de salida.

Conclusión

Este tutorial cubrió lo que es la cárcel de chroot y cómo podemos usarlo para crear un entorno aislado desde el sistema principal. Puede usar las técnicas discutidas en la lata de guía para crear entornos aislados para servicios críticos.

Para practicar lo que ha aprendido, intente crear una cárcel Apache2.

PISTA: Comience mediante la creación de un directorio raíz, agregue los archivos de configuración (etc/apache2), agregue la raíz del documento (/var/www/html), agregue el binario (/usr/sbin/apache2) y finalmente agregue las bibliotecas requeridas (LDD/ USR/SBIN/APACHE2)