Algunos administradores dividen las jaulas en dos tipos: jaulas “completas”, que recrean un sistema FreeBSD real, y jaulas “de servicio”, que son aquellas que están dedicadas a una sola aplicación o servicio, en muchos casos ejecutándose sin privilegios. Se trata de una división exclusivamente conceptual, por lo que el proceso de generación de una jaula no se ve afectado por ella. La página de manual jail(8) explica claramente el procedimiento a seguir para generar una jaula:
# setenv D /aquí/está/la/jaula # mkdir -p $D # cd /usr/src # make world DESTDIR=$D # cd etc/ [1] # make distribution DESTDIR=$D # mount_devfs devfs $D/dev
Una vez instalada la jaula puede arrancarla mediante jail(8). jail(8) usa los cuatro
argumentos que se detallan en la Sección
15.3.1. Puede pasarle otros argumentos además de estos, por ejemplo para ejecutar
procesos enjaulados bajo los permisos de un usuario específico. El argumento comando
depende del tipo de
jaula; si se trata de un virtual
system /etc/rc es una buena elección, puesto que
ejecutará la secuencia de arranque de un sistema FreeBSD real. Si se trata de una jaula
de servicio depende del servicio o
aplicación que se quiera ejecutar mediante la jaula.
Con frecuencia las jaulas se arrancan durante el arranque del servidor que las aloja; el sistema rc de FreeBSD permite hacerlo de un modo muy sencillo.
Puede crear una lista de jaulas que quiera arrancar en el inicio del sistema en el fichero rc.conf(5):
jail_enable="YES" # Ponga NO si quiere desactivar el arranque de jaulas jail_list="www" # Lista de nombres de jaulas separados por espacios
Tendrá que añadir parámetros específicos para cada jaula al fichero rc.conf(5):
jail_www_rootdir="/usr/jail/www" # directorio raiz de la jaula jail_www_hostname="www.example.org" # nombre de máquina de la jaula jail_www_ip="192.168.0.10" # dirección IP de la jaula jail_www_devfs_enable="YES" # montar devfs en la jaula jail_www_devfs_ruleset="www_ruleset" # reglas a aplicar a devfs dentro de la jaula
El arranque de jaulas por omisión que se configure en rc.conf(5) ejecutará
el script /etc/rc de la jaula y asumirá que es un
sistema virtual completo. Si se trata de una jaula de servicio el comando de
arranque por omisión tendrá que cambiarse configurando la opción jail_nombredejaula_exec_start
según convenga.
Nota: Si quiere consultar la lista completa de opciones consulte la página de manual rc.conf(5).
Puede arrancar o parar a mano una jaula mediante el script /etc/rc.d/jail siempre y cuando la jaula aparezca en rc.conf:
# /etc/rc.d/jail start www # /etc/rc.d/jail stop www
De momento no hay una forma limpia de apagar una jaula (jail(8)) debido a que los comandos que se usan normalmente para producir un apagado limpio del sistema no pueden usarse dentro de una jaula. La mejor forma de parar una jaula es ejecutar el siguiente comando desde dentro de la propia jaula o bien mediante jexec(8) desde fuera:
# sh /etc/rc.shutdown
Para más información consulte la página de manual jail(8).
[1] |
Este paso no es necesario en FreeBSD 6.0 y versiones posteriores. |
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista
<[email protected]>.
Envíe sus preguntas sobre la documentación a <[email protected]>.