Monte o disco rígido criptografado LUKS na inicialização

24

Eu tenho o Xubuntu 14.04 em um dispositivo SSD (o HOME foi criptografado corretamente durante a instalação). Além disso, tenho um HDD com uma partição criptografada com dados extras que eu gostaria de montar em / mnt / hdd . Para fazer isso, eu segui os próximos passos:

(Anteriormente, eu havia criptografado o disco com LUKS após esta postagem http://www.marclewis.com/2011/04/02/luks-encrypted-disks-under-ubuntu-1010/ )

Verifique o UUID

sudo blkid 
/dev/sda1: UUID="b3024cc1-93d1-439f-80ce-1b1ceeafda1e" TYPE="crypto_LUKS"

Crie um arquivo de chave com a senha correta e salve-a em minha HOME (que também é criptografada).

sudo dd if=/dev/urandom of=/home/[USERNAME]/.keyfiles/key_luks bs=1024 count=4
sudo chmod 0400 .keyfiles/key_luks

Adicione a chave

sudo cryptsetup luksAddKey /dev/sda1 /home/zeugor/.keyfiles/key_luks

Nova entrada no / etc / crypttab

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e /home/[USERNAME]/.keyfiles/key_luks luks

Atualize o ramdisk inicial

sudo update-initramfs -u -k all

Em seguida, para testá-lo, usei o comando follow para iniciar os discos de criptografia:

sudo cryptdisks_start hddencrypted 
 * Starting crypto disk...                                                       
 * hddencrypted (starting)..
 * hddencrypted (started)... 

Para verificar o hddencrypted foi mapeado:

ls /dev/mapper/
control  hddencrypted

Crie um ponto de montagem

mkdir /mnt/hdd

Nova entrada no / etc / fstab

/dev/mapper/hddencrypted /mnt/hdd ext4 defaults 0 2

Valide o fstab sem reiniciar:

sudo mount -a

Monte a partição criptografada na inicialização

Agora eu montei-o no / mnt / hdd como propus. Mas gostaria de fazer isso automaticamente após a reinicialização. Mas antes que eu possa fazer login, recebo este erro:

the disk drive for /mnt/hdd is not ready yet or not permit

Tudo isso me faz pensar que / etc / crypttab não pode acessar o arquivo de chaves localizado em minha HOME (outra partição criptografada). Não sei a ordem que o sistema segue para descriptografar e montar as unidades. Minha CASA deve estar descriptografada antes do meu HDD para dar acesso à leitura do arquivo-chave.

Gostaria muito de saber por que isso acontece.

ATUALIZAÇÃO: Se eu localizar o arquivo de chave em / boot (não criptografado), em vez de em / home / [USERNAME] (criptografado) o / dev / sda1 e atualizar a entrada em / etc / crypttab é perfeitamente montado no momento da inicialização.

Zeugor
fonte
Como é /home/$USERcriptografado? Uma criptografia de disco completa como LUKS ou baseada em ecryptfs?
precisa

Respostas:

9

Um arquivo-chave no diretório / boot pode ser lido por qualquer outro sistema operacional inicializado em sua máquina capaz de montar o sistema de arquivos no qual / boot está localizado. Portanto, a criptografia não é realmente eficaz. Este argumento se aplica a todos os principais locais de arquivos em sistemas de arquivos não criptografados.

Para evitar arquivos-chave em sistemas de arquivos não criptografados, uma senha pode ser usada para descriptografia. Crie uma senha forte para o dispositivo. Em seguida, altere a linha em / etc / crypttab para

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e none luks

e mantenha a entrada no / etc / fstab sem modificações. O Ubuntu 14.04 / 16.04 / 18.04 solicita a senha na inicialização.

Dominik Grether
fonte
combinar a resposta de @ solt87 e esta resposta completaria esta resposta.
6

Funciona se você substituir "padrões" no fstab por

rw,suid,dev,exec,auto,user,async,relatime

(De acordo com a página do manual mount , é o mesmo que "padrões", exceto "usuário".)

solt87
fonte
1

Verifique se a partição hddencrypted está listada após a partição inicial, em ambos /etc/fstabe /etc/crypttab. Como a página de crypttab (5)manual afirma:

A ordem dos registros no crypttab é importante porque os scripts init repetidamente repetem o processo do crypttab.

Além disso, você pode tentar adicionar a noearlyopção à última partição em /etc/crypttab:

hddencrypted UUID=<...> /home/[USERNAME]/.keyfiles/key_luks luks,noearly

Em uma situação normal, você pode indicar que a partição inicial deve ser montada primeiro, adicionando-a ao CRYPTDISKS_MOUNTin /etc/default/cryptdisks, mas, como ela própria é criptografada, sinto que não seria uma boa ideia.

Aryeh Leib Taurog
fonte
1
Isso não vai funcionar como ubuntu tenta decifrar todas as partições e , em seguida, montá-los. Portanto, o arquivo de chave não estará disponível.
Christian Wolf