No Ubuntu 11.10, é possível descriptografar 2 discos rígidos criptografados com LUKS / LVM digitando apenas uma senha na inicialização?


8

aqui a configuração que tenho: - 2 discos rígidos, - o primeiro é criptografado usando LUKS e LVM. Eu gostaria de adicionar no grupo de volumes criptografado um segundo disco rígido. Eu instalei e criptografei com sucesso. Mas quando eu inicializo, tenho que digitar 2 senhas para descriptografar os dois discos rígidos.

Não existe uma maneira de usar apenas um?



Respostas:


4

Finalmente, encontro um truque para inserir apenas uma senha e ter todos os meus discos físicos criptografados.

Criptografo o primeiro com uma senha, criptografo o segundo usando um arquivo de chave que guardo no primeiro disco rígido (/ root / mykeyfile).

E com a linha correta no arquivo / etc / crypttab, ele faz o truque.

Atualize o / etc / crypttab

sda5_crypt UUID = fb07f1e8-a569-4db9-9fd7-fc1994e093b5 nenhum luks

sdb1_crypt UUID = 4c0687f0-d7af-4f2e-9c57-5ca8e909d492 / root / mykeyfile luks


dd if = / dev / urandom de = / root / mykeyfile bs = 1024 count = 20 Este é um exemplo de como criar uma sequência aleatória para ser usada como um 'arquivo de chave'.
earthmeLon

1
O problema disso é que um comprometimento envolvendo acesso ao seu sistema de arquivos (por exemplo, problema de permissões ou algo menor) resultaria em comprometimento de chave, um problema muito maior. Eu recomendo fortemente contra essa prática. Veja minha resposta para um método melhor (e automático).
sneak

Você poderia explicar como isso deve funcionar? O LVM inicia no modo degradado e se corrige assim que o segundo PV estiver disponível?
aij

0

No ubuntu, é possível usar uma chave derivada da raiz como uma chave adicional em outros sistemas de arquivos. Isso tem o benefício de manter sua chave para as outras unidades fora do próprio sistema de arquivos.

Antes de fazer isso, primeiro, verifique se o / tmp está montado apenas no RAM! Sugiro o modo de usuário único para essa alteração.

mount -t ramfs none /tmp

Em seguida, você pode exportar a chave derivada:

# replace vda5_crypt with the cryptsetup name of your root luks
# have a look in /dev/mapper or 'pvdisplay' to find it...
/lib/cryptsetup/scripts/decrypt_derived vda5_crypt > /tmp/key

E adicione-o ao seu (s) outro (s) dispositivo (s):

# use your own disks here instead of sdb1 sdc1 sdd1 etc
cryptsetup luksAddKey /dev/sdb1 /tmp/key
cryptsetup luksAddKey /dev/sdc1 /tmp/key
cryptsetup luksAddKey /dev/sdd1 /tmp/key
rm /tmp/key

Isso permitirá que os scripts init do ubuntu usem a chave derivada quando a raiz for desbloqueada para desbloquear o restante dos dispositivos de bloco e disponibilizá-los da mesma forma em / dev / mapper. Não tenho certeza se eles exigem entradas / etc / crypttab - experimente-as sem primeiro e, se não aparecerem, coloque-as no crypttab sem uma chave e deverá desbloqueá-las.

(Eu não testei nada disso.)


Eu tentei sem o crypttab no Debian e não funcionou. Mesmo com o crypttab, ele não está funcionando, mas cheguei mais perto. sdb3_crypt UUID = 4a ... sda3_crypt luks, initramfs, keyscript = decrypt_derived. A opção initramfs é necessária para obter o script decrypt_derived incluído no initramfs. Mas ainda está falhando ao carregar na inicialização.
aij

-1

Teoricamente, você pode definir uma variável de ambiente temporária em um script de inicialização personalizado, que é referenciado pelos scripts de inicialização do seu processo de descriptografia. Na verdade, eu fiz isso alguns anos atrás.

Sua outra opção é axear seus scripts init existentes para o seu disco rígido e escrever um personalizado que insira sua senha uma vez e prossiga com os dois processos de descriptografia.

Como alternativa, você poderá estender seu volume LVM para a segunda unidade. Se bem me lembro, a criptografia deve continuar.


1
O LVM é construído sobre o volume criptografado subjacente. Expandir o LVM sem criar outro volume criptografado não criptografaria o armazenamento adicional adicionado ao grupo de volumes.
sneak

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.