esto es la suraguwiki el contenido, como puedes ver, deja mucho que desear para comentarios sobre los cosos aquí, puedes mandar un correo a diego arroba suragu punto net

Si eres un putísimo crack y quieres contribuir a esta wiki, pídeme una cuenta en el mismo correo de arriba

¡Esta es una revisión vieja del documento!


Jails de FreeBSD

Antes de que Linux supiese lo que es un contenedor o un Docker, FreeBSD ya tenía su manera de aislar procesos y mas recientemente, recursos de la máquina sin tener que virtualizar propiamente dicho (aunque sigue siendo por definición una máquina virtual)

Encontrarás respuestas mas esclarecedoras en el handbook

Creación de una Jail

Lo mas fácil es usar un gestor de jails como bastillebsd pero yo creé jails manualmente antes de usar Bastille, y migrar a bastille no fue precisamente fácil, así que sigo haciendolo de la manera por defecto y no hay demasiado dolor. Se deben crear en /etc/jail.conf, por ejemplo, para crear una jail básica:

/etc/jail.conf
ejemplo {
  # STARTUP/LOGGING
  exec.start = "/bin/sh /etc/rc";
  exec.stop = "/bin/sh /etc/rc.shutdown";
  exec.consolelog = "/var/log/jail_console_${name}.log";
 
  # PERMISSIONS
  allow.raw_sockets;
  exec.clean;
  mount.devfs;
 
  # HOSTNAME/PATH
  host.hostname = "${name}";
  path = "/stranger/jails/${name}";
 
  # NETWORK
  ip4.addr = 192.168.1.166;
  interface = bge4;
}

Esto creara una jail llamada “ejemplo”, que tendrá su root en /stranger/jails/ejemplo. Para instalar ahí un sistema base, podemos usar el comando “bsdinstall”

bsdinstall jail /stranger/jails/ejemplo

Lo que harías si fueses listo, es crear /stranger/jails/template como un FS de ZFS, hacer bsdinstall jail /stranger/jails/template y cuando necesites crear una jail, hacerlo con zfs send stranger/jails/template@snap || zfs recv stranger/jails/nueva_jail

Esto te permite crear un FS para cada jail, para darles cuotas de disco y todo eso, además de que es mas fácil crear una jail así.

Una vez finalice la instalación, puedes iniciar la jail con service jail start ejemplo y verla con el comando jls. Aquí un ejemplo del comando jls en un entorno donde ya se han creado distintas jails y algunas no tan básicas. Debido a que no me fío una mierda, las IPs de las máquinas están censuradas.

~ [icarus] % jls
   JID  IP Address      Hostname                      Path
     1  192.168.1.xxx   mc                            /stranger/jails/mc
     2  192.168.1.xxx   shimmie2                      /stranger/jails/shimmie2
     3  192.168.1.xxx   sakisafe                      /stranger/jails/sakisafe
     4  192.168.1.xxx   dokuwiki                      /stranger/jails/dokuwiki
     5  192.168.1.xxx   forgejo                       /stranger/jails/forgejo
     6                  grafana                       /stranger/jails/grafana
     7                  wireguard                     /stranger/jails/wireguard
     8  192.168.1.xxx   build                         /stranger/jails/build
     9  192.168.1.xxx   ansible                       /stranger/jails/ansible
    10  192.168.1.xxx   archivebox                    /stranger/jails/archivebox
    11  192.168.1.xxx   jellyfin                      /stranger/jails/jellyfin

Jails VNET

TODO: Consulte el handbook de mientras


QR Code
QR Code freebsd:jail (generated for current page)