¿Puede VeraCrypt usar puntos de montaje persistentes en Linux?

12

¿Puede VeraCrypt usar puntos de montaje persistentes en Linux?


Windows + VeraCrypt + rutas absolutas de volumen cifrado

En Windows, puedo montar particiones / discos cifrados en veracrypt mediante un script por lotes que emplea el nombre del dispositivo que se muestra mountvol.exe. Tal atributo es muy útil ya que el reinicio puede alterar la ruta relativa ( \Device\Harddisk1\Partition3-> reiniciar -> \Device\Harddisk3\Partition3).

Mi script por lotes para volúmenes de veracrypt en Windows (forma abreviada):

@echo
"C:\Program Files\VeraCrypt\VeraCrypt.exe" /v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\ /l z /m label=Encrypted_1 /q
"C:\Program Files\VeraCrypt\VeraCrypt.exe" /v \\?\Volume{yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy}\ /l f /m label=Encrypted_2 /q
[...]
pause


¿Linux + VeraCrypt + solo rutas relativas de volumen cifrado?

No tengo conocimiento sobre la existencia de un comando paralelo para Windows /v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\disponible para la línea de comandos de Linux. Intenté (en vano) el --mount=/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxindicador, ya que el mountvol.exe nombre del volumen (probablemente) se basa en el número de UUID ( blkidaunque no es posible). La documentación oficial de veracrypt / truecrypt permite al usuario de Linux operar solo con rutas relativas (variables) ( /dev/sda3-> reiniciar -> /dev/sdc3). Debido a la inconstancia, las rutas deben verificarse cada vez que se carga el sistema operativo.

Mi script bash para montar volúmenes de veracrypt en Linux (forma abreviada):

#! /bin/bash
#
echo "Encrypted_1" && veracrypt --mount /dev/sdq --slot=12 --verbose && echo "Encrypted_1"
echo "Encrypted_2" && veracrypt --mount /dev/sdz3 --slot=1 --verbose && echo "Encrypted_2"
[...]


¿Solución?

¿Alguien sabe si la ubicación del volumen VeraCrypt se puede describir en términos absolutos en Linux?

Si no es posible, proporcione sugerencias para lograr el mismo objetivo. (por ejemplo: udev? fstab?)

Errata

mountvol.exereconoce GUID, no UUIDcomo se escribió anteriormente.

Cristiano
fuente

Respuestas:

7

He elaborado a continuación la respuesta publicada por David Foerster y la hice más descriptiva y clara para otros usuarios de Linux interesados ​​en el tema presentado.

Linux + VeraCrypt + rutas absolutas de volumen cifrado

Según mi investigación, parece que la asignación de la ruta absoluta al volumen de VeraCrypt es imposible (al menos actualmente) ( vide : by-id y by-path en wiki.archlinux.org bajo Nombre de dispositivo de bloque persistente ( 1 )).

Linux + VeraCrypt + nombre de dispositivo de bloque semipersistente

Sin embargo, podemos usar nombres de dispositivos de bloque semipersistentes.

1. por camino

/dev/disk/by-path/depende de la ruta física más corta ( 2 ) y cambia a medida que se conmuta el puerto del controlador ( 3 ).

Para obtener el /dev/disk/by-path/descriptor, escriba:

ls -l /dev/disk/by-path/

Puede usar el nombre obtenido para montar el volumen VeraCrypt:

veracrypt --mount /dev/disk/by-path/[by-path] --slot=6 --verbose

/dev/disk/by-path/[by-path] puede reemplazar la ruta relativa en el script bash:

#! /bin/bash
#
echo "Encrypted_1" && veracrypt --mount /dev/disk/by-path/[by-path1] --slot=12 --verbose && echo "Encrypted_1"
echo "Encrypted_2" && veracrypt --mount /dev/disk/by-path/[by-path2] --slot=1 --verbose && echo "Encrypted_2"
[...]

2. by-id

/dev/disk/by-id/se crea de acuerdo con el número de serie del dispositivo ( 4 ). wiki.archlinux.org establece que /dev/disk/by-id/no puede sobrevivir a los cambios de hardware, es decir, el escenario donde el dispositivo está conectado al puerto del controlador sujeto a un subsistema diferente ( 5 ). access.redhat.com , por otro lado, afirma que /dev/disk/by-id/se puede mantener incluso si diferentes sistemas acceden al dispositivo ( 6 ). Por lo tanto, symlinkparece ser bastante estable en caso de /dev/disk/by-id/ser aplicado.

Para obtener el /dev/disk/by-id/nombre del dispositivo, escriba:

ls -l /dev/disk/by-id/

Ahora, cuando tenga uno correcto, puede usarse para montar el volumen VeraCrypt:

veracrypt --mount /dev/disk/by-id/[id] --slot=6 --verbose

Análogamente a lo que se señaló en el párrafo uno, /dev/disk/by-id/se puede usar en script bash:

#! /bin/bash
#
echo "Encrypted_1" && veracrypt --mount /dev/disk/by-id/[id1] --slot=12 --verbose && echo "Encrypted_1"
echo "Encrypted_2" && veracrypt --mount /dev/disk/by-id/[id2] --slot=1 --verbose && echo "Encrypted_2"

Tal vez sea útil para alguien.

Apéndice

/dev/disk/by-id/ no es lo suficientemente estable como para olvidarse de corregir el script de montaje después de reiniciar.

Cristiano
fuente
3

Desafortunadamente, los UUID y las etiquetas del sistema de archivos dentro de los contenedores cifrados son inaccesibles debido al cifrado y los contenedores TrueCrypt / VeraCrypt no llevan UUID o etiquetas por sí mismos (o al menos ninguno que udev conozca en comparación con los de los contenedores LUKS).

Hay otro identificador suficientemente estable para los volúmenes de almacenamiento en Linux: ID de disco . Los puedes encontrar en:

/dev/disk/by-id/

Hasta ahora nunca noté ningún cambio dramático en los enlaces simbólicos, ya que los nombres son generados por

  • udev, cuya configuración de almacenamiento básica no cambia a menudo,
  • según el nombre del fabricante, el nombre del modelo y el número de serie que informa el firmware de la unidad, que tampoco cambia con frecuencia.
David Foerster
fuente
Funciona. Sin embargo, tengo que probar la solución provista contra la estabilidad. Mientras tanto, he desarrollado su respuesta en la forma que puede ver a continuación. Puede resultar que el tema también sea útil para otra persona.
Christianus
/dev/disk/by-id/El método es demasiado inestable para mi gusto. Después de un reinicio, dos enlaces simbólicos cambiaron. Sería bueno si se usara veracrypt, como dm-crypt, diferentes UUID externos e internos.
Christianus
Impar. Nunca tuve ningún cambio allí relacionado con unidades físicas y comencé con ata-*, scsi-*o incluso a usb-*excepción de 1) los *-part*sufijos después de cambiar la tabla de particiones o 2) después de una actualización de lanzamiento que incluye cambios importantes a udev. Mientras tanto, he desconectado e intercambiado unidades y los nombres de kernel ( sd*) tienden a cambiar cada pocas botas.
David Foerster
En mi caso ata-*fue reemplazado por usb-*dos discos duros externos hechos por WD: WDC WD15NMVW-11AV3S3 y WD Elements 107C (1042).
Christianus
¿Al menos uno de los prefijos es persistente para cualquiera de las unidades?
David Foerster
0

Antes de conectar su disco, tome una 'instantánea'

$> ll /dev/disk/by-id > ~/before.txt

De nuevo, después de conectar su unidad. Y mira el diff:

$> ll /dev/disk/by-id > ~/after.txt
$> diff ~/before.txt ~/after.txt

Debería ver (es decir, en un disco Samsung externo de dos partes)

> [...] usb-Samsung_M2_Portable_D3F12345678FE094-0:0 -> ../../sdd
> [...] usb-Samsung_M2_Portable_D3F12345678FE094-0:0-part1 -> ../../sdd1
> [...] usb-Samsung_M2_Portable_D3F12345678FE094-0:0-part2 -> ../../sdd2

Para montar, diga la partición2 de eso a /mnt/m(mi ejemplo: con los interruptores truecrypt)

veracrypt -t -tc -pPasswordIfYouLike -k "" --protect-hidden=no /dev/disk/by-id/usb-Samsung_M2_Portable_D3F12345678FE094-0:0-part2 /mnt/m

Ahora puede usar de manera confiable el script de montaje respectivo para esta unidad, sin importar a qué puerto USB o en qué orden se haya conectado a otras unidades respectivas.


Y para un script de desmontaje adecuado y confiable:

veracrypt -t -d /dev/disk/by-id/usb-Samsung_M2_Portable_D3F12345678FE094-0:0-part2


¿estabilidad?

Estoy usando esto de primera mano en varias estaciones de acoplamiento, en varios lugares de trabajo con varias unidades externas de diferentes marcas durante meses. No hay problemas.

Frank Nocke
fuente