Cárcel de FreeBSD

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 28 de junio de 2015; las comprobaciones requieren 10 ediciones .

FreeBSD Jail ( eng.  jail - "prisión") es un mecanismo de virtualización en el sistema FreeBSD que le permite crear varios FreeBSD que se ejecutan de forma independiente en el mismo núcleo del sistema operativo, pero configurados de forma completamente independiente con un conjunto independiente de aplicaciones instaladas dentro de un sistema operativo FreeBSD. sistema.

FreeBSD Jail se basa en la llamada al sistema chroot(2) , en la que para el proceso actual y todos sus descendientes, el directorio raíz se transfiere a una ubicación específica en el sistema de archivos . Esta ubicación se convierte en el directorio raíz del proceso. Por lo tanto, un proceso de espacio aislado solo puede acceder al árbol de directorios subyacente.

Sin embargo, FreeBSD Jail también tiene soporte a nivel de kernel , lo que le permite restringir el acceso a la red, la memoria compartida, las variables del kernel sysctl y limitar la visibilidad de los procesos fuera de la cárcel.

Un proceso Jailed solo puede acceder a ciertas direcciones IP del sistema operativo y usar un nombre de host específico . Tal proceso se denomina "proceso aislado" o "proceso encarcelado".

Por lo tanto, se crea una "jaula" segura, dentro de la cual se puede ejecutar incluso software potencialmente peligroso, que no puede dañar el sistema principal ni otras "jaulas" de ninguna manera. Antes de la versión 9.0-RELEASE, FreeBSD Jail no tenía controles sobre el uso de recursos (al igual que, por ejemplo, OpenVZ en Linux ). Desde la versión 9.0-RELEASE, se han introducido mecanismos similares a través de la utilidad rctl(8) y el marco RACCT .

A nivel sysctl del sistema se configuran los privilegios de los procesos Jailed:

identificador de sistema Funcionalidad controlada
seguridad.jail.chflags_allowed Capacidad para cambiar las banderas de archivos del sistema
seguridad.jail.allow_raw_sockets Capacidad para crear sockets de bajo nivel
seguridad.jail.sysvipc_allowed Habilidad para usar System V IPC
security.jail.set_hostname_permitido La capacidad de configurar su propio nombre de host dentro de los procesos Jailed (por lo general, el nombre de host se establece al llamar a la cárcel)
seguridad.jail.enforce_statfs Capacidad para ver todos los sistemas de archivos montados dentro de los procesos Jailed
seguridad.jail.socket_unixiproute_only Restricción en la capacidad de crear sockets UNIX/IPv4/route
security.jail.list Lista de JAIL en ejecución

Uso

El uso más común de FreeBSD Jail es crear máquinas virtuales aisladas y seguras. En este caso, jail(8) ejecuta el script de inicialización /etc/rc , que inicia el lanzamiento de un sistema virtual aislado separado. Incluso en el caso de que se produzca el pirateo más destructivo de un sistema virtual y se deshabilite su funcionalidad, el resto de los sistemas virtuales en ejecución no se verán afectados.

En la práctica de los proveedores de hospedaje , el mecanismo de cárcel se puede usar para crear sistemas administrados en servidores dedicados . En esta opción se le da acceso al cliente únicamente a la cárcel, y al personal técnico de la empresa proveedora al sistema maestro.

Características del uso de máquinas virtuales

FreeBSD Jail, cuando se usa como una máquina virtual para ejecutar software arbitrario, requerirá una emulación completa del entorno del sistema, que incluye:

Cada máquina virtual en el sistema host (antes de FreeBSD 7.2) requerirá necesariamente una única dirección IP para ejecutarse. También es posible usar la misma dirección IP para varias máquinas, pero los servicios en estas máquinas virtuales no deben usar los mismos puertos TCP/UDP .

A partir de FreeBSD 8.0, se pueden asignar varias direcciones IP a cada máquina virtual.

Para obtener más información sobre la instalación y el uso de FreeBSD Jail, consulte las páginas man de jail(8) o la documentación oficial. [una]

Defectos en la implementación de Jail (en FreeBSD 7.2 y versiones anteriores)

add path 'bpf*' unhide

Notas

  1. Manual de FreeBSD Archivado el 15 de agosto de 2014 en Wayback Machine .  

Véase también

Enlaces