Criptografar disco inteiro GNU/Linux
Paulo Martins
Minha máquina de uso diário é o meu laptop, apesar de ter um desktop em casa utilizo ele para testes de servidor e outras gambiarras, ou seja, meu laboratório para testes. Como tenho costume de sempre transportar o laptop para cima e para baixo, fazer uso de criptografia de disco é uma boa idéia.
Na maioria das distribuições atuais existe a opção de criptografia na instalação padrão, então você escolher com facilidade a opção de uma instalação já criptografada, mas não é isso o que eu quero. Minha intenção é ter controle sobre o que irei criptografar e o quanto de espaço irei usar em minhas partições principalmente, coisa que a instalação automática não lhe proporcionará.
A ferramenta para essa empreitada é o LUKS com LVM o mesmo que a instalação automática do Ubuntu utiliza neste caso, então pesquisei na documentação do Ubuntu para começar. No fórum da RedHat nesse link e na wiki do ArchLinux você tem um material bem completo para começar a estudar sobre isso também.
1. A primeira coisa é inciar o Ubuntu em modo live para podermos definir qual disco iremos utilizar, faça as formatações das unidades de acordo com sua instalação via terminal:
root@np340X:~# fdisk -l /dev/sda
Disco /dev/sda: 223,58 GiB, 240057409536 bytes, 468862128 setores
Disk model: KINGSTON SA400S3
Unidades: setor de 1 * 512 = 512 bytes
Tamanho de setor (lógico/físico): 512 bytes / 512 bytes
Tamanho E/S (mínimo/ótimo): 512 bytes / 512 bytes
Tipo de rótulo do disco: gpt
Identificador do disco: E2607B28-B351-4D10-A310-CF789C8DBD5C
Dispositivo Início Fim Setores Tamanho Tipo
/dev/sda1 2048 1050623 1048576 512M Sistema EFI
/dev/sda2 1050624 3147775 2097152 1G Linux sistema de arquivos
/dev/sda3 3147776 468862094 465714319 222,1G Linux sistema de arquivo
2. O volume /dev/sda3 será onde irei configurar o LVM e o LUKS:
sudo cryptsetup -y -v luksFormat /dev/sda3
sudo cryptsetup open /dev/sda3 sda3_crypt
sudo mkfs.ext4 /dev/mapper/sda3_crypt
3. Após a criação da partição e formatação do file-system (coisa que você pode fazer na instalação gráfica), vou criar meus volumes LVM. Confira o man de pvcreate vgcreate lvcreate:
sudo pvcreate /dev/mapper/sda3_crypt
sudo vgcreate vgubuntu /dev/mapper/sda3_crypt
sudo lvcreate -n root -L 90G vgubuntu
sudo lvcreate -n home -l 100%FREE vgubuntu
4. Terminado os passos acima já podemos ir para o modo de instalação gráfica e começar a brincadeira. Siga todos os passos padrões de instalação do Ubuntu e quando chegar na etapa de formatação escolha o modo “manual”, lá você irá indicar as partições onde será instalado o sistema.
Observe com atenção quais partições irá utilizar e suas necessidades, por exemplo, a partição efi (/dev/sda1), boot (/dev/sda2) e as partições de root (/dev/mapper/vgubuntu-root) e home (/dev/mapper/vgubuntu-home).
5. Ao completar a instalação continue em modo de teste do Ubuntu e volte ao terminal para montar as partições raiz do sistema:
sudo mount /dev/mapper/vgubuntu-root /mnt
sudo mount /dev/sda2 /mnt/boot
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt
# mount -t proc proc /proc
# mount -t sysfs sys /sys
# mount -t devpts devpts /dev/pts
6. Agora ainda em modo chroot, crie o arquivo /etc/crypttab/ e adicione os volumes LUKS para serem montados na inicialização. Use o blkid para identificar o UUID dos volumes:
sudo blkid </dev/sda3>
No arquivo /etc/crypttab cole os dados abaixo, em UUID cole a saída do blkid:
# <target name> <source device> <key file> <options>
sda3_crypt UUID=UUID_ROOT> none luks,discard
7. Por fim, atualize o initramfs e reinicie o sistema:
update-initramfs -k all -c
Até aqui isso é tudo, você está com seu sistema criptografado logo ao iniciar irá pedir a senha definida durante a instalação para descriptografar seu disco.