===== Instalação e Configuração do Bastille =====
=== O que é o Bastille ? ===
Bastille é um sistema de código aberto para automatizar a implantação e o gerenciamento de aplicativos em contêineres no FreeBSD.
Link da página oficial: https://bastillebsd.org
----
=== 1 - Formas de instalação: ===
-- Via PKG
# pkg install bastille
-- Via Ports
# cd /usr/ports/sysutils/bastille
# make install clean
=== 2 - Instalação via ports: ===
# cd /usr/ports/sysutils/bastille
# make install clean
=== 3 - Ativar o serviço e clonar a interface de loopback: ===
# sysrc cloned_interfaces+=lo1
# sysrc ifconfig_lo1_name="bastille0"
# service netif cloneup
# sysrc pf_enable="YES"
# /usr/local/etc/rc.d/bastille enable
=== 4 - Configurar o pf para fazer o nateamento: ===
# ee /etc/pf.conf
ext_if="vtnet0" # Lembrar de alterar essa linha com o nome da sua interface
set block-policy return
scrub in on $ext_if all fragment reassemble
set skip on lo
table persist
nat on $ext_if from 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 22 flags S/SA modulate state
-- Salve e fecha o arquivo. Até esta data 20/03/2023 se você seguir todos os passos acima em ordem tudo estará funcionando.
=== 5 - Vamos ativar o pf: ===
# service pf restart
OBS: Após ativar o PF, será necessário relogar no sistema, caso esteja em uma conexão SSH.
=== 6 - Vamos editar o arquivo de configuração do bastile (/usr/local/etc/bastille/bastille.conf): ===
# ee /usr/local/etc/bastille/bastille.conf
-- Vamos editar as seguintes linhas:
## default timezone
bastille_tzdata="America/Belem" ## Vamos adicionar nossa região
-- É recomendado usar o sistema de arquivos ZFS, porém não é obrigatório, caso esteja usando, configure as linhas abaixo:
## ZFS options
bastille_zfs_enable="" ## default: "" Modifique para YES
bastille_zfs_zpool="" ## default: "" Adicione o diretório "zroot"
bastille_zfs_prefix="bastille" ## default: "${bastille_zfs_zpool}/bastille"
bastille_zfs_options="-o compress=lz4 -o atime=off" ## default: "-o compress=lz4 -o atime=off"
=== 7 - Vamos atualizar a base do bastille: ===
# bastille bootstrap 13.1-RELEASE update
=== 8 - Configuração recomendada. Edite o arquivo "/etc/sysctl.conf" e acrescente as linhas no final do arquivo: ===
net.link.bridge.pfil_bridge=0
net.link.bridge.pfil_onlyip=0
net.link.bridge.pfil_member=0
=== 10 - Configuração recomendada. Edite o arquivo "/etc/devfs.rules" e acrescente as linhas no arquivo: ===
[bastille_vnet=13]
add include $devfsrules_hide_all
add include $devfsrules_unhide_basic
add include $devfsrules_unhide_login
add include $devfsrules_jail
add include $devfsrules_jail_vnet
add path 'bpf*' unhide
=== 11 - Após terminar a atualização, vamos testar nosso novo recurso, vamos criar uma vm de teste e ver se tudo funciona: ===
# bastille create alcatraz 13.1-RELEASE 10.0.0.64 vtnet0
-- Tudo deve funcionar corretamente:
=== 12 - Para exportar uma jail, que é a forma que usamos para fazer os backups das jails, podemos usar o comando abaixo: ===
# bastille export --tgz mome_da_sua_jail
-- A cópia deve ir para /usr/local/bastille/backups:
=== 13 - Para restaurar o backup, copie o arquivo gerado o outro servidor no diretório backups, igual acima, e use o comando import: ===
# bastille import nome_do_jail
=== 14 - Para clonar uma jail, primeiro teremos que dar um stop na jail, e depois usar o parâmetro clone: ===
# bastille stop site1
# bastille clone jail_alvo nome_para_o_clone IP_do_Clone
OBS: Com isso você será capaz de criar todo seu ambiente. É possível fazer muito mais coisas, deixei o link acima do site oficial do Bastille.
=== 15 - Para criar uma jail com recurso de VNET: ===
# bastille create -V srv01 13.2-RELEASE 10.0.0.2/24 re0
=== 16 - Para criar um contêiner baseado em VNET e anexá-lo a uma ponte externa já existente, use a opção -B, um IP/máscara de rede e uma ponte externa: ===
# bastille create -B azkaban 13.2-RELEASE 192.168.1.50/24 vtnet0bridge
--- A opção "vtnet0bridge" é uma bridge já existente criada por alguma jail criada com a opção -V
-----------------
~~DISCUSSION|Deixe sua contribuição~~