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/loop0
y 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 dd
o fallocate
(o head
algunas otras herramientas) para crear un archivo que actúe como contenedor. Luego, como dijo Vincent Yu, cryptsetup
puede 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 losetup
salida de depuración, tenga en cuenta el AUTOCLEAR = 1
de la filecontainer
entrada. Túpodríaen lugar de volverse loco con loopdev=$(sudo losetup -f); mount -o loop <etc>
, pero dejarlo cryptsetup
manejar esFORMAmejor.
La clave es que desea asegurarse de que PRIMERO lo use cryptsetup luksOpen containerfile mappedname
para montarlo /dev/mapper/mappedname
de forma predeterminada (puede darle una ruta completa comenzando con /
y creo que se montará allí, y LUEGO formatee el /dev/mapper/mappedname
objetivo y asegúrese de NO tocar el filecontainer
directamente; 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, cryptsetup
configurará automáticamente un dispositivo de bucle y lo cerrará cuando ya no sea necesario. Entonces no hay diferencia entre los dos; cryptsetup
siempre 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).