Instalando BastilleBSD en FreeBSD

Tested on FreeBSD 13

Instalando BastilleBSD en FreeBSD

Este documento está basado en el método de instalación realizado por @RoboNuggie.

BastilleBSD es la solucion de contenedores para FreeBSD, usando las tradicionales jails. Veamos como se instala.

Primeramente, actualizamos nuestros paquetes:

# pkg update && pkg upgrade

Instalamos Bastille desde los packages:

pkg install bastille

Lo habilitamos:

sysrc bastille_enable="YES"

Y podemos también iniciar nuestras jaulas desde el inicio del sistema:

sysrc bastille_list="nombre-del-jail"

A continuación hacemos algunos retoques al archivo de configuración:

ee /usr/local/etc/bastille/bastille.conf

Y editamos estos valores:

## default timezone
bastille_tzdata="Etc/UTC"  << Tu zona horaria.

## ZFS options
bastille_zfs_enable="YES" << Ponemos en YES
bastille_zfs_zpool="zroot" << Ponemos el nombre del pool
bastille_zfs_prefix="bastille"
bastille_zfs_options="-o compress=lz4 -o atime=off"

A continuación clonamos la interfaz de red y le damos un nombre:

sysrc cloned_interfaces+=lo1

sysrc ifconfig_lo1_name="bastille0"

Levantamos la interfaz:

service netif cloneup

Y configuramos PF:

ee /etc/pf.conf

ext_if="re0"

set block-policy return
scrub in on $ext_if all fragment reassemble
set skip on lo

table <jails> persist
nat on $ext_if from <jails> to any -> ($ext_if:0)
rdr-anchor "rdr/*"

block in all
pass out quick keep state
antispoof for $ext_if inet
pass in inet proto tcp from any to any port ssh flags S/SA keep state

habilitamos PF:

sysrc pf_enable="YES"

service pf start

Y estamos listos para comenzar a jugar con Bastille.