Essa é uma revisão anterior do documento!
Instalando e Configurando Bastille
O que são Jails ?
Jails no FreeBSD são uma tecnologia de virtualização baseada em sistemas operacionais que permite isolar processos e serviços em um ambiente completamente separado, com seu próprio sistema de arquivos, rede e recursos de sistema. As Jails fornecem um meio seguro e eficiente de executar aplicativos em um ambiente limitado e controlado, sem interferir no sistema operacional host ou em outras Jails em execução no mesmo servidor. As Jails também oferecem um nível adicional de segurança, permitindo que os administradores de sistema restrinjam o acesso de usuários e aplicativos a recursos específicos do sistema.
O que é o Bastille ?
O Bastille no FreeBSD é um software de segurança que ajuda a proteger o sistema operacional FreeBSD, aplicando as melhores práticas de segurança e configurando o sistema de acordo com as políticas de segurança definidas pelo usuário. Ele oferece um conjunto de scripts interativos que permitem configurar a segurança do sistema e remover serviços e aplicativos desnecessários, restringir o acesso de usuários e grupos a arquivos e diretórios específicos, configurar o firewall e definir as políticas de senhas. O objetivo do Bastille FreeBSD é tornar o sistema mais seguro contra ameaças externas e internas, mas é importante lembrar que ele não substitui a necessidade de manter o sistema atualizado e aplicar outras medidas de segurança.
Link da página oficial: https://bastillebsd.org
Instalação do Bastille
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 <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 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 - 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:
9 - 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:
10 - Para restaurar o backup, copie o arquivo gerado o outro servidor no diretório backups, igual acima, e use o comando import:
# bastille importe nome_do_jail
11 - 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.