Ah, particionamento personalizado. Isso é divertido, especialmente quando você está tentando criptografar volume cruzado. Eu vou assumir que você não quer ir excessivamente louco (sim, isso é minha estrutura de partição) e use o LVM dentro do LUKS aqui. Eu também vou supor que você já instalou as coisas, pois torna este processo um pouco mais fácil.
Parte I: Configurando sua Partição LUKS
Você terá que começar criando uma nova partição EXT4 no seu disco rígido. Faça com que ele ocupe o espaço que você quiser.
Em seguida, você precisará executar cryptsetup
para configurar a criptografia. O comando que você quer será:
cryptsetup luksFormat /dev/sdXY
Substitua /dev/sdXY
pelo que estiver apontando para sua nova partição EXT4. Você será solicitado a escolher uma senha. Escolha um strong e anote-o . Você não terá que se lembrar disso no momento em que terminar (você verá por que, conforme nos aprofundarmos nesse post).
Em seguida, precisamos criar outra partição ext4
dentro do seu contêiner LUKS, que eventualmente manterá /home
. Esses comandos vão conseguir isso:
cryptsetup open --type luks /dev/sdXY home_drive
mkfs -t ext4 /dev/mapper/home_drive
cryptsetup close home_drive
Em seguida, execute blkid
e anote o UUID do seu novo contêiner LUKS (em /dev/sdXY
). Você precisará disso em um segundo.
Parte II: Ativar a descriptografia automática
Agora, precisamos configurar algo chamado decrypt_derived
, que permite "encadear" operações de descriptografia.
Ao fazer isso, permitiremos que uma senha funcione em ambas as unidades. Na verdade, sua primeira unidade descriptografada será a senha da segunda unidade. Sua senha (escolhida acima) ainda funcionará em caso de emergência (pense em recuperação de dados ou similar).
Execute os comandos abaixo / edições de arquivos. Certifique-se de renomear ubuntu_crypt
para qualquer que seja sua chamada atual (veja /etc/crypttab
para encontrar isto). Substitua também /dev/sdXY
pela sua nova partição LUKS.
/lib/cryptsetup/scripts/decrypt_derived ubuntu_crypt > /tmp/home_keyfile
cryptsetup luksAddKey /dev/sdXY /tmp/home_keyfile
shred -u /tmp/home_keyfile
Em seguida, você desejará adicionar a seguinte linha a /etc/crypttab
:
home_drive UUID=<your_drive_uuid> ubuntu_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
Se você estiver usando um SSD para sua unidade inicial, substitua luks,keyscript=...
por luks,discard,keyscript=...
.
Parte III: Adicionar a /etc/fstab
Agora que seu sistema está configurado e pode montar automaticamente a unidade, precisamos tornar /etc/fstab
ciente disso.
Felizmente, esta é apenas uma única linha que precisa ser adicionada abaixo da entrada /
em /etc/fstab
. Esta linha será parecida com:
/dev/mapper/home_drive /mnt ext4 errors=remount-ro 0 1
Parte IV: Testando-o
Em seguida, você vai querer montar sua nova partição inicial (pronta para usar!). Seus comandos serão algo como:
cryptsetup open --type luks /dev/sdXY home_drive
mount /dev/mapper/home_drive /mnt
Copie sua pasta de início atual para a nova unidade e verifique se tudo está funcionando corretamente.
Finalmente, você só precisa executar o comando abaixo para tornar seu sistema ciente de sua cripta:
update-initramfs -u -k all
Reinicialize seu sistema e verifique se você só precisará inserir sua senha uma vez. Se você precisar fazer isso mais de uma vez, algo deu errado. Verifique novamente todos os seus passos.
Quando estiver on-line novamente, confirme se /mnt
tem todos os dados da sua casa presentes nele.
Parte V: Mover-se para o real
Agora, reabra a /etc/fstab
novamente e edite sua nova linha, substituindo /mnt
por /home
. Deve ficar assim:
/dev/mapper/home_drive /home ext4 errors=remount-ro 0 1
Salve o arquivo.
Execute update-initramfs -u -k all
mais uma vez e reinicie o sistema.
Quando voltar, execute lsblk
e verifique se o seu homedir está montado na nova unidade.
Quando estiver satisfeito, você precisará se livrar dos seus dados antigos. O problema é que uma montagem substituirá a pasta atual por ela mesma, portanto, não há como acessar esses dados (e você não pode excluir seu homedir durante a execução). Então, você precisará fazer um bindmount:
mount --bind / /mnt
Execute touch /mnt/home/test
e execute imediatamente cat /home/test
e certifique-se de que o arquivo não foi encontrado. Se o arquivo for encontrado, algo está errado com sua configuração de montagem.
Quando tiver certeza de que /home/test
não existe, mas /mnt/home/test
, você pode excluir sua antiga casa com rm -rf /mnt/home/*
.
Seu sistema agora estará no seu SSD e seu homedir estará em sua própria unidade criptografada!