LUKS y dispositivo de bucle

LUKS y dispositivo de bucle

Leí muchos tutoriales sobre LUKS/dm-crypt/cryptsetup, en particular sobre cómo crear un contenedor de archivos cifrados.

El primer paso es crear el archivo con dd.

Luego, algunos tutoriales asignan el archivo /dev/loop0y formatean el dispositivo de bucle, otros tutoriales formatean directamente el archivo sin asignarlo en un dispositivo de bucle.

Mi pregunta: ¿Es necesario el paso del dispositivo de bucle? ¿Cuál es la diferencia?

Respuesta1

Puede utilizar ddo fallocate(o headalgunas otras herramientas) para crear un archivo que actúe como contenedor. Luego, como dijo Vincent Yu, cryptsetuppuede encargarse de la configuración/desmontaje del bucle por usted.

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

En la sudo losetupsalida de depuración, tenga en cuenta el AUTOCLEAR = 1de la filecontainerentrada. Túpodríaen lugar de volverse loco con loopdev=$(sudo losetup -f); mount -o loop <etc>, pero dejarlo cryptsetupmanejar esFORMAmejor.

La clave es que desea asegurarse de que PRIMERO lo use cryptsetup luksOpen containerfile mappednamepara montarlo /dev/mapper/mappednamede forma predeterminada (puede darle una ruta completa comenzando con /y creo que se montará allí, y LUEGO formatee el /dev/mapper/mappednameobjetivo y asegúrese de NO tocar el filecontainerdirectamente; de ​​lo contrario, omitirá el motor de cifrado y simplemente creará un archivo de bucle invertido sin cifrar.

Respuesta2

Si no administra el dispositivo de bucle usted mismo, cryptsetupconfigurará automáticamente un dispositivo de bucle y lo cerrará cuando ya no sea necesario. Entonces no hay diferencia entre los dos; cryptsetupsiempre funciona en el dispositivo de bucle. Ver man cryptsetup:

NOTAS SOBRE EL USO DEL DISPOSITIVO BUCLE BUCLE

Cryptsetup generalmente se usa directamente en un dispositivo de bloque (partición de disco o volumen LVM). Sin embargo, si el argumento del dispositivo es un archivo, cryptsetup intenta asignar un dispositivo de bucle invertido y asignarlo a este archivo. Este modo requiere el kernel de Linux 2.6.25 o más reciente que admita el indicador de borrado automático del bucle (el dispositivo del bucle se borra automáticamente en el último cierre). Por supuesto, siempre puedes asignar un archivo a un dispositivo de bucle manualmente. Consulte las preguntas frecuentes sobre cryptsetup para ver un ejemplo.

Cuando la asignación de dispositivos está activa, puede ver el archivo de respaldo del bucle en la salida del comando de estado. Véase también losetup(8).

información relacionada