jails

  • En el artículo anterior expliqué cómo crear y configurar jails en FreeBSD. Ahora, contando con nuestros primeros jails en funcionamiento, llega el momento de instalar y configurar un servicio para que corra dentro de un jail: en este caso, Samba.

    Este artículo explica cómo instalar y configurar Samba dentro de un jail en un sistema FreeBSD 10.

  • Este artículo presenta la configuración y uso de jails, la tecnología de virtualización a nivel sistema operativo (comúnmente conocida como contenedores, containers) provista por FreeBSD.

    Esta tecnología permite particionar a un sistema FreeBSD en varios mini-sistemas independientes (instancias de espacios de usuario aisladas unas de otras) llamados "jails". En el mundo Linux existen tecnologías similares como LXC y Docker.

    Los jails se implementan sobre el concepto de chroot, creando un entorno seguro y aislado del resto del sistema. Así, los procesos creados en este entorno, no pueden acceder a archivos o recursos fuera del mismo. De esta forma, si se compromete un servicio corriendo en un entorno chroot, el atacante no tiene acceso al resto del sistema.

    En un entorno chroot tradicional, los procesos sólo están limitados a la parte del sistema de archivos que pueden acceder. Los jails expanden este modelo virtualizando el acceso al sistema de archivos, al conjunto de usuarios, y al subsistema de red.

    Cada jail está caracterizado por cuatro elementos: un subárbol de directorio (directorio raíz donde se hace chroot), una vez dentro del jail, un proceso no puede salir de este subárbol; un nombre de host (que será utilizado para identificar al jail); una dirección IP (asignada al jail y correspondiente con el nombre de host; y un comando (ruta, relativa al subárbol, a un ejecutable a lanzar dentro del jail).

    Los jails cuentan con su propio conjunto de usuarios y usuario root (limitado al entorno del jail, no puede realizar operaciones fuera del mismo).

    Típicamente existen jails "completos" (que contienen un sistema FreeBSD completo) y de servicio (dedicados a un único servicio o aplicación).

    Este artículo explica cómo crear y utilizar jails en FreeBSD 10, pero va un paso más allá con el objetivo de optimizar el uso de disco y simplificar la administración de los mismos, a partir de la configuración que se encuentra en el artículo Updating Multiple Jails incluido en el Handbook.

  • En el artículo Jails en FreeBSD presenté un esquema de jails a partir del cual sería posible actualizar el sistema base de todos los Jails en una única operación. Este se basaba en separar el filesystem de los jails en dos partes: una compartida de sólo lectura (sistema base) y otra privada de lectura/escritura (configuraciones, paquetes y directorios de trabajo). En este artículo voy a detallar el proceso de upgrade de un host con múltiples jails.