O OpenBSD suporta criptografia de disco completo somente desde OpenBSD 5.3 . Versões anteriores exigem uma partição de inicialização de texto não criptografado. Eu não sei quando o instalador foi modificado para suportar a instalação direta para uma partição criptografada (com o bootloader ainda não criptografado, é claro, porque algo tem que descriptografar o próximo bit).
Há pouco uso na criptografia da partição do sistema de qualquer maneira¹. Então eu sugiro instalar o sistema normalmente, então criar uma imagem de sistema de arquivos criptografada e colocar seus dados sensíveis ( /home
, partes de /var
, talvez alguns arquivos em /etc
) lá.
Se você quiser criptografar a partição do sistema de qualquer maneira (porque você tem algum caso de uso especial, como algum software confidencial), e você não instalou um sistema criptografado originalmente, veja como você pode fazer isso.
Inicialize em sua instalação do OpenBSD e crie um arquivo que contenha a imagem do sistema de arquivos criptografado. Certifique-se de escolher um tamanho razoável, pois será difícil mudar mais tarde (você pode criar uma imagem adicional, mas terá que inserir a senha separadamente para cada imagem). A página do manual vnconfig
tem exemplos (embora estejam em falta alguns passos). Em poucas palavras:
dd if=/dev/urandom of=/ENCRYPTED.img bs=1m count=4096
vnconfig -k svnd0 /ENCRYPTED.img # type your passphrase
{ echo a a; echo w; echo q; } | disklabel -E /svnd0 # create a single slice
newfs /dev/svnd0a
mount /dev/svnd0a /mnt
mv /home/* /mnt
umount /mnt
umount /dev/svnd0c
Adicione entradas correspondentes a /etc/fstab
:
/ENCRYPTED.img /dev/svnd0c vnd rw,noauto,-k
/dev/svnd0a /home ffs rw,noauto
Adicione comandos para montar o volume criptografado e o sistema de arquivos no momento da inicialização para /etc/rc.local
:
echo "Mounting encrypted volumes:"
mount /dev/svnd0c
fsck -p /dev/svnd0a
mount /home
Verifique se tudo está funcionando corretamente executando esses comandos ( mount /dev/svnd0c && mount /home
).
Observe que rc.local
é executado no final do processo de inicialização, portanto, não é possível colocar arquivos usados pelos serviços padrão, como ssh ou sendmail, no volume criptografado. Se você quiser fazer isso, coloque esses comandos em /etc/rc
, logo após mount -a
. Em seguida, mova as partes do seu sistema de arquivos que você considera sensíveis e mova-as para o volume /home
.
mkdir /home/etc /home/var
mv /etc/ssh /home/etc
ln -s ../home/etc/ssh /home/etc
mv /var/mail /var/spool /home/var
ln -s ../home/var/mail ../home/var/spool /var
Você deve criptografar seu swap também, mas o OpenBSD faz isso automaticamente hoje em dia.
A maneira mais recente de obter um sistema de arquivos criptografado é através do driver de software raid softraid
. Veja o softraid
e bioctl
páginas do manual ou O OpenBSD encripta o Open NASD de Vries para mais informações. Versões recentes do OpenBSD suportam a inicialização a partir de um volume padrão e instalando em um volume muito simples, passando para um shell durante a instalação para criar o volume.
Até onde eu sei, a criptografia de volume do OpenBSD está protegida por confidencialidade (com Blowfish), não para integridade . Proteger a integridade do sistema operacional é importante, mas não há necessidade de confidencialidade. Existem maneiras de proteger a integridade do sistema operacional, mas elas estão além do escopo dessa resposta.