LUKS e dispositivo de loop

LUKS e dispositivo de loop

Eu li muitos tutoriais sobre LUKS/dm-crypt/cryptsetup, em particular sobre como criar um contêiner de arquivo criptografado.

O primeiro passo é criar o arquivo com extensão dd.

Em seguida, alguns tutoriais mapeiam o arquivo /dev/loop0e formatam o dispositivo de loop, outros tutoriais formatam diretamente o arquivo sem mapeá-lo em um dispositivo de loop.

Minha dúvida: É necessária a etapa do dispositivo loop? Qual é a diferença?

Responder1

Você pode usar ddou fallocate(ou headalgumas outras ferramentas) para criar um arquivo para atuar como seu contêiner. Então, como Vincent Yu afirmou, cryptsetupposso cuidar da configuração/desmontagem do loop para você.

fallocate -l 100M mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup -y luksFormat mypath/filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo cryptsetup luksOpen mypath/filecontainer filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script
sudo mkfs -t ext4 /dev/mapper/filecontainer
sync
sudo cryptsetup luksClose filecontainer
sudo losetup # Debug for demonstration, not necessary in a real script

Na sudo losetupsaída de depuração, observe o AUTOCLEAR = 1para a filecontainerentrada. Vocêpoderiaem vez disso, enlouqueça loopdev=$(sudo losetup -f); mount -o loop <etc>, mas deixar cryptsetuplidar com isso éCAMINHOAgradável.

A chave é que você deseja ter certeza de usar PRIMEIRO cryptsetup luksOpen containerfile mappednamepara montá-lo /dev/mapper/mappednamepor padrão (você pode fornecer um caminho completo começando com /e ele será montado lá, eu acredito, e ENTÃO formate o /dev/mapper/mappednamedestino e certifique-se de NÃO tocar no filecontainerdiretamente, caso contrário você estará ignorando o mecanismo de criptografia e apenas criando um arquivo de loopback não criptografado.

Responder2

Se você não gerenciar o dispositivo de loop sozinho, cryptsetupconfigurará automaticamente um dispositivo de loop e o fechará quando não for mais necessário. Portanto não há diferença entre os dois; cryptsetupsempre funciona no dispositivo de loop. Ver man cryptsetup:

NOTAS SOBRE O USO DO DISPOSITIVO LOOPBACK

O Cryptsetup geralmente é usado diretamente em um dispositivo de bloco (partição de disco ou volume LVM). Entretanto, se o argumento do dispositivo for um arquivo, o cryptsetup tenta alocar um dispositivo de loopback e mapeá-lo neste arquivo. Este modo requer o kernel Linux 2.6.25 ou mais recente que suporta o sinalizador autoclear de loop (o dispositivo de loop é limpo automaticamente no último fechamento). Claro, você sempre pode mapear um arquivo para um dispositivo de loop manualmente. Veja o FAQ do cryptsetup para ver um exemplo.

Quando o mapeamento do dispositivo está ativo, você pode ver o arquivo de backup de loop na saída do comando de status. Veja também lossup(8).

informação relacionada