===== 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~~