He oído/leído mucho sobre la cárcel chroot en Linux, pero nunca la he usado (uso Fedora todos los días), entonces, ¿qué es una "cárcel" chroot? ¿Cuándo y por qué podría usarlo/no usarlo? ¿Hay algo más que deba saber? ¿Cómo haría para crear uno?
Respuesta aceptada:
Un chroot jail es una forma de aislar un proceso y sus hijos del resto del sistema. Solo debe usarse para procesos que no se ejecutan como root, ya que los usuarios root pueden salir de la cárcel muy fácilmente.
La idea es que cree un árbol de directorios donde copie o vincule todos los archivos del sistema necesarios para que se ejecute un proceso. Luego usa el chroot()
llamada al sistema para cambiar el directorio raíz para que esté en la base de este nuevo árbol e iniciar el proceso que se ejecuta en ese entorno chroot. Dado que en realidad no puede hacer referencia a rutas fuera de la raíz modificada, no puede realizar operaciones (lectura/escritura, etc.) maliciosamente en esas ubicaciones.
En Linux, usar un montaje de enlace es una excelente manera de poblar el árbol chroot. Usando eso, puede extraer carpetas como /lib
y /usr/lib
mientras no ingresa /usr
, por ejemplo. Simplemente vincule los árboles de directorios que desee a los directorios que cree en el directorio de la cárcel.