Como identificar LVM-over-LUKS ou LUKS-over-LVM

14

Eu instalei recentemente o Fedora 20. Não me lembro das opções exatas que eu escolhi para criptografar o disco / LVM durante a instalação. Instalou bem e eu posso entrar etc. Aqui está a situação que tenho:

Inicializei o LiveCD e tentei o seguinte: (Instalei o Fedora20 na partição / dev / sda3 ').

  1. Se eu executar cryptsetup open /dev/sda3 fedo, recebo um erro dizendo que não é um dispositivo LUKS.
  2. II executar cryptsetup luksDump /dev/sda3Eu recebo um erro dizendo que não é um dispositivo LUKS
  3. Se eu executar cryptsetup open --type plain /dev/sda3 fedo, ele solicitará a senha e abrirá o dispositivo corretamente.

Portanto, obviamente, essa é uma partição criptografada em texto sem formatação (sem cabeçalho LUKS).

Agora, quando tento correr mount /dev/mapper/fedo /mnt/fedora, está escrito unknown crypto_LUKS filesystem.

Eu tenho LVM em cima dela, então, eu posso correr pvdisplay, vgdisplay, lvdisplaye mostra informações. Eu tenho um VG chamado fedorae dois LVs, viz 00 para partição swap e 01 para / partição.

Agora, se eu fizer um cryptsetup luksDump /dev/fedora/01, posso ver os cabeçalhos LUKS, etc. E posso montar executando mount /dev/fedora/00 /mnt/fedora, sem solicitação de senha.

Então, eu tenho uma partição criptografada por LUKS sobre LVM sobre (texto sem formatação)?

Aqui está a minha saída de lsblk:

# lsblk
NOME MAJ: TAMANHO MÍN. RM RO TIPO DE MONTAGEM
sda 8: 0 0 37.3G 0 disco
| -sda3 8: 3 0 17.4G 0 partes
  | -fedora-00 253: 0 0 2.5G 0 lvm
  | | -luks-XXXXX 253: 3 0 2,5G 0 cripta [SWAP]
  | -fedora-01 253: 1 0 15G 0 lvm
    | -luks-XXXXX 253: 2 0 15G 0 cripta /

Então, a questão é: como descobrir se eu tenho LVM-over-LUKS ou LUKS-over-LVM ou alguma outra combinação dos mesmos ( LUKS sobre LVM sobre LUKS etc.)? Para deixar minha pergunta clara, eu sei que tenho LVM e LUKS, quero descobrir a ordem deles.

NotSuperMan
fonte

Respostas:

14

cryptsetup luksDump /dev/fedora/01mostra que o volume lógico do LVM é um volume criptografado LUKS. A saída de pvsou pvdisplaymostraria a partição /dev/sda3como um volume físico. Assim, você tem LUKS sobre LVM. Em um nível inferior, você possui a partição LVM sobre PC.

A saída de lsblkconfirma isso: sdaé um disco, sda3é uma partição (que contém um volume físico LVM) fedora-00e fedora-01são volumes lógicos, e cada volume lógico contém um volume criptografado LUKS.

Gilles 'SO- parar de ser mau'
fonte
Resposta perfeita e confirma meus testes. Não posso votar na sua resposta, já que sou novato aqui e não tenho reputação suficientemente alta :-(
NotSuperMan
8

É muito estranho ter um LUKS dentro de uma cripta simples. Por que criptografar duas vezes?

Depois que seus sistemas de arquivos estiverem montados, lsblkmostrará o que é o quê.

NAME                         MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                            8:0    0  59.6G  0 disk  
└─sda1                         8:1    0  59.6G  0 part  
  └─md0                        9:0    0  59.6G  0 raid1 
    └─luksSSD1               253:9    0  59.6G  0 crypt 
      ├─SSD-home             253:0    0    36G  0 lvm   /home
      └─SSD-root             253:10   0    16G  0 lvm   /

Este é o LVM (/ home e / com o tipo lvm) no LUKS (tipo crypt, luksSSD1) no RAID1 (md0, tipo raid1) em uma partição regular (sda1) no disco sda.

frostschutz
fonte
Sim, é estranho. Eu adicionei a saída de 'lsblk' à minha pergunta.
NotSuperMan
@ NotSuperMan: bem, isso parece bom. disco, partição, lvm e cada LV é criptografado. É uma configuração comum. Sua descrição soou diferente de alguma forma. Eu acho que seu erro foi usar cryptsetup --plain no sda3; sda3 é um dispositivo LVM, não criptografado.
Frostschutz
Obrigado pela ajuda. Mas, sem o cryptsetup --type plain, eu não conseguia nem montar a partição. Então, não estava claro para mim. Pode ser em vez de montar a partição primeiro, devo montar o LV usando o LUKS-UUID diretamente? (Eu darei uma chance) Quando corri fdisk -l /dev/sda, diz que /dev/sda3Id é 8e e Type é Linux LVM.
NotSuperMan
ESTÁ BEM. Em vez de tentar 'abrir criptografia' da partição primeiro, eu apenas usei o cryptsetup open /dev/disk/by-uuid/UUID-of-LV SomeNamecomando para abrir o LV diretamente e ele solicitou a senha etc., e, posteriormente, consegui montar o dispositivo mapeado corretamente. Isso me explica muito. Eu acho que a chave é a ordem dos tipos 'crypt e' lvm 'na saída do lsblkcomando. Então, acho que minha configuração é um LUKS sobre LVM . E, a partir da saída que você mostrou, concluo que a sua é uma configuração do LVM-over-LUKS . Portanto, concluo que não devo 'abrir criptografar' uma partição 'Linux LVM'.
NotSuperMan
Seus comentários me ajudaram a esclarecer meus entendimentos. Infelizmente, eu sou incapaz de votar em sua resposta como eu sou um novato aqui e não tem suficientemente alta "reputação" :-( e assim o Stackexchange não me deixa votar em sua resposta.
NotSuperMan
3

Você pode ver como você gosta:

$ sudo blkid | grep crypto_LUKS
/dev/mapper/fedora-home: UUID="XXXXXXXXXXXXXXXXX" TYPE="crypto_LUKS" 

Esse é um volume lógico do LVM com LUKS criptografado. Quando eu monto esse volume, ele é montado assim no Fedora 20:

$ mount | grep home
/dev/mapper/luks-XXXXX on /home type ext4 (rw,relatime,seclabel,data=ordered)

Se você fez uma instalação padrão, terá a mesma coisa.

Descriptografar manualmente

Eu acredito que você pode fazer o seguinte se quiser fazer as coisas manualmente. Primeiro para ver se algo é LUKS ou não:

$ sudo cryptsetup isLuks /dev/mapper/fedora-home
$ echo $?
0

$ sudo cryptsetup isLuks /dev/mapper/fedora-root 
$ echo $?
1

NOTA: Um zero indica que é LUKS, um 1 significa que não é.

Então, para decifrá-lo:

$ sudo cryptsetup luksOpen /dev/mapper/fedora-home crypthome

NOTA: Você precisa digitar a senha para descriptografar a partição. Sinta-se livre para alterar o nome do mapeamento crypthomepara o que quiser. A partição mapeada está agora disponível, /dev/mapper/crypthomemas não está montada. A última etapa é criar um ponto de montagem e montar a partição mapeada:

Montagem manual

$ sudo -Es
$ mkdir /mnt/crypthome && mount /dev/mapper/crypthome /mnt/crypthome

Quais partições criptografadas eu tenho?

Você pode fazer o check-in no arquivo /etc/crypttabpara ver também o LUKS que você configurou.

$ more /etc/crypttab  
luks-XXXXXXXX UUID=XXXXXXXX none 

Despejando o dispositivo

Você também pode usar luksDumpassim:

$ sudo cryptsetup luksDump /dev/mapper/fedora-home
LUKS header information for /dev/mapper/fedora-home

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha1
Payload offset: 4096
MK bits:        512
MK digest:      XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 
MK salt:        XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 
                XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 
MK iterations:  50625
UUID:           XXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX

Key Slot 0: ENABLED
    Iterations:             202852
    Salt:                   XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 
                            XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX 
    Key material offset:    8
    AF stripes:             4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Se não for um dispositivo LUKS, será relatado da seguinte forma:

$ sudo cryptsetup luksDump /dev/mapper/fedora-root 
Device /dev/mapper/fedora-root is not a valid LUKS device.

Referências

slm
fonte
1

Eu acho que a chave para descobrir se ele é um LVM-over-LUKS, ou o contrário, é da ordem de cripta e LVM tipos na produção de lsblkcomando. Com base nesse raciocínio, concluo que minha configuração é um LUKS sobre LVM . Para a lsblksaída para um tipo de configuração LVM-over-LUKS, veja a saída mostrada por @frostschultz abaixo.

No meu caso, como / dev / sda3 é uma partição do sistema "Linux LVM" (partição Id 8e), acho que, em vez de tentar cryptsetup open --type plain /dev/sda3 SomeNameprimeiro, eu deveria ter mapeado o LVM diretamente, executando o comando cryptsetup open /dev/disk/by-uuid/UUID-of-LV SomeNamecommand para abrir o LV diretamente. Eu tentei isso e funciona como eu esperava.

Obrigado a todas as pessoas que contribuíram para me ajudar a entender isso.

NotSuperMan
fonte