stringtranslate.com

Cárcel de FreeBSD

El mecanismo de cárcel es una implementación de la virtualización a nivel de sistema operativo de FreeBSD que permite a los administradores de sistemas particionar un sistema informático derivado de FreeBSD en varios minisistemas independientes llamados cárceles , todos compartiendo el mismo núcleo, con muy poca sobrecarga [1] . Se implementa a través de una llamada al sistema, jail(2), [2] así como una utilidad de espacio de usuario, jail(8), [3] más, dependiendo del sistema, una serie de otras utilidades. La funcionalidad fue incorporada a FreeBSD en 1999 por Poul-Henning Kamp después de un período de uso en producción por parte de un proveedor de alojamiento, y fue lanzada por primera vez con FreeBSD 4.0, por lo que es compatible con una serie de descendientes de FreeBSD, incluido DragonFly BSD , hasta el día de hoy.

Historia

La necesidad de las cárceles de FreeBSD surgió del deseo de un pequeño proveedor de alojamiento de entornos compartidos (el propietario de R&D Associates, Inc., Derrick T. Woolworth) de establecer una separación clara y nítida entre sus propios servicios y los de sus clientes, principalmente por motivos de seguridad y facilidad de administración (jail(8)). En lugar de añadir una nueva capa de opciones de configuración de grano fino, la solución adoptada por Poul-Henning Kamp fue compartimentar el sistema (tanto sus archivos como sus recursos) de tal forma que sólo las personas adecuadas tuvieran acceso a los compartimentos adecuados. [4]

Las cárceles se introdujeron por primera vez en la versión 4.0 de FreeBSD, que se lanzó el 14 de marzo de 2000. [ 5] La mayor parte de la funcionalidad original es compatible con DragonFly, y varias de las nuevas características también se han adaptado. ( 14 de marzo de 2000 )

Objetivos

Las cárceles de FreeBSD tienen como objetivo principal tres objetivos:

  1. Virtualización: cada prisión es un entorno virtual que se ejecuta en la máquina host con sus propios archivos, procesos, cuentas de usuario y superusuario . Desde dentro de un proceso en prisión, el entorno es casi indistinguible de un sistema real.
  2. Seguridad: Cada cárcel está sellada de las demás, proporcionando así un nivel adicional de seguridad.
  3. Facilidad de delegación: el alcance limitado de una cárcel permite a los administradores del sistema delegar varias tareas que requieren acceso de superusuario sin entregar el control total sobre el sistema.

A diferencia de la cárcel chroot , que solo restringe los procesos a una vista particular del sistema de archivos , el mecanismo de cárcel de FreeBSD restringe las actividades de un proceso en una cárcel con respecto al resto del sistema. En efecto, los procesos encarcelados están aislados . Están vinculados a direcciones IP específicas , y un proceso encarcelado no puede acceder a sockets de desvío o enrutamiento. Los sockets sin formato también están deshabilitados de forma predeterminada, pero se pueden habilitar configurando la opción security.jail.allow_raw_sockets sysctl . Además, se restringe la interacción entre procesos que no se ejecutan en la misma cárcel.

La utilidad jail(8) y la llamada al sistema jail(2) aparecieron por primera vez en FreeBSD 4.0 . En FreeBSD 5.1 se añadieron nuevas utilidades (por ejemplo, jls(8) para listar jails) y llamadas al sistema (por ejemplo, jail_attach(2) para adjuntar un nuevo proceso a un jail) que facilitan enormemente la gestión de jails. El subsistema jail recibió importantes actualizaciones adicionales con FreeBSD 7.2, incluyendo compatibilidad con múltiples direcciones IPv4 e IPv6 por jail y compatibilidad con la vinculación de jails a CPU específicas.

Virtualización

Con las cárceles es posible crear entornos, cada uno con su propio conjunto de utilidades instaladas y su propia configuración. Las cárceles permiten a los paquetes de software ver el sistema de forma egoísta, como si cada paquete tuviera la máquina para sí mismo. Las cárceles también pueden tener sus propios superusuarios independientes encarcelados. [6]

Sin embargo, la cárcel de FreeBSD no logra una verdadera virtualización; no permite que las máquinas virtuales ejecuten versiones de kernel diferentes a las del sistema base. Todas las cárceles comparten el mismo kernel. No hay soporte para agrupamiento en clústeres ni migración de procesos .

Seguridad

Las cárceles de FreeBSD son una forma efectiva de aumentar la seguridad de un servidor debido a la separación entre el entorno encarcelado y el resto del sistema (las otras cárceles y el sistema base).

Las cárceles de FreeBSD están limitadas de las siguientes maneras: [6]

Véase también

Referencias

  1. ^ David Chisnall (15 de junio de 2007). "DragonFly BSD: ¿UNIX para clústeres?". InformIT . Prentice Hall Professional . Consultado el 6 de marzo de 2019 .
  2. ^ "jail(2) — crea y administra cárceles del sistema". FreeBSD , DragonFly BSD .
    • "jail, jail_get, jail_set, jail_remove, jail_attach - crear y administrar cárceles del sistema". Páginas del manual de FreeBSD.
    • "cárcel - encarcelar al proceso actual y a sus futuros descendientes". Páginas del manual en línea de DragonFly.
  3. ^ "jail(8) — administra las cárceles del sistema". FreeBSD , DragonFly BSD .
    • "jail - administra las cárceles del sistema". Páginas del manual de FreeBSD.
    • "Proceso de encarcelamiento y sus descendientes". Páginas del manual en línea de DragonFly.
  4. ^ Kamp, Poul-Henning; NM Watson, Robert (2000). "Cárceles: confinar la raíz omnipotente" (PDF) . PHKs Bikeshed . Consultado el 15 de junio de 2016 .
  5. ^ "Anuncio de FreeBSD 4.0". Proyecto FreeBSD. 14 de marzo de 2000. Consultado el 3 de octubre de 2019 .
  6. ^ ab "Capítulo 16. Cárceles". Portal de documentación de FreeBSD . Consultado el 13 de diciembre de 2022 .

Lectura adicional

Enlaces externos