web-dev-qa-db-fra.com

VeraCrypt peut-il utiliser des points de montage persistants sous Linux?

VeraCrypt peut-il utiliser des points de montage persistants sous Linux?


Windows + VeraCrypt + chemins absolus de volumes chiffrés

Sous Windows, je peux monter des partitions/disques cryptés veracrypt via un script de traitement par lots utilisant le nom de périphérique affiché par mountvol.exe. Un tel attribut est très utile car le redémarrage peut entraîner une modification du chemin relatif (\Device\Harddisk1\Partition3 -> reboot -> \Device\Harddisk3\Partition3).

Mon script batch pour les volumes veracrypt sous Windows (forme abrégée):

@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 + les chemins relatifs relatifs aux volumes chiffrés uniquement?

Je n'ai aucune connaissance de l'existence d'une commande parallèle à /v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\ de Windows disponible pour la ligne de commande Linux. J'ai essayé (en vain) --mount=/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx flag, puisque mountvol.exe nom du volume est (probablement) basé sur le numéro UUID (imperceptible pour blkid, bien que). La documentation officielle veracrypt/truecrypt permet à l'utilisateur Linux de n'utiliser que des chemins relatifs (variables) (/dev/sda3 -> reboot -> /dev/sdc3). En raison de l'inconstance, les chemins doivent être vérifiés chaque fois que le système d'exploitation est chargé.

Mon script bash pour le montage de volumes veracrypt sur Linux (forme abrégée):

#! /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"
[...]


Solution?

Quelqu'un sait-il si l'emplacement du volume VeraCrypt peut être décrit en termes absolus sous Linux?

Si ce n'est pas possible, veuillez fournir des suggestions pour atteindre le même objectif? (par exemple: udevname__? fstabname__?)

Erratum

mountvol.exe reconnaît GUIDname__, et non UUIDcomme il a été écrit ci-dessus.

11
Christianus

J'ai élaboré ci-dessous la réponse publiée par David Foerster et le rend plus descriptif et clair pour les autres utilisateurs de Linux intéressés par le sujet présenté.

Linux + VeraCrypt + chemins absolus de volumes chiffrés

Selon mes recherches, il semblerait que l’attribution d’un chemin absolu au volume VeraCrypt soit impossible (du moins à l’heure actuelle) ( vide : by-id et by-path entrée sur wiki.archlinux.org sous Dénomination des périphériques en bloc persistants ( 1 )).

Linux + VeraCrypt + dénomination des périphériques en bloc semi-persistants

Cependant, nous pouvons utiliser la dénomination des périphériques en bloc semi-persistants.

1. chemin

/dev/disk/by-path/ dépend du chemin physique le plus court ( 2 ) et change lorsque le port du contrôleur est commuté ().

Pour obtenir le descripteur /dev/disk/by-path/, tapez:

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

Vous pouvez utiliser la dénomination obtenue pour monter le volume VeraCrypt:

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

/dev/disk/by-path/[by-path] peut remplacer le chemin relatif dans le 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. par-id

/dev/disk/by-id/ est créé en fonction du numéro de série de l'appareil ( 4 ). wiki.archlinux.org indique que /dev/disk/by-id/ ne peut pas survivre aux modifications matérielles, c'est-à-dire au scénario où le périphérique est branché au port du contrôleur soumis à un sous-système différent ( 5 ). access.redhat.com , d'autre part, affirme que /dev/disk/by-id/ peut être conservé même si le système est utilisé par différents systèmes ( 6 ). Ainsi, symlink semble être assez stable dans le cas où /dev/disk/by-id/ est appliqué.

Pour obtenir le nom du périphérique /dev/disk/by-id/, tapez:

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

Maintenant, lorsque vous en avez un, vous pouvez l’utiliser pour monter le volume VeraCrypt:

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

De manière analogue à ce qui a été noté au premier paragraphe, /dev/disk/by-id/ peut être utilisé dans le 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"

Peut-être que ce sera utile pour quelqu'un.

Addenda

/dev/disk/by-id/ n'est pas assez stable pour oublier de corriger le script de montage après le redémarrage.

7
Christianus

Malheureusement, les identifiants UUID et les étiquettes du système de fichiers contenus dans les conteneurs chiffrés sont inaccessibles en raison du cryptage. Les conteneurs TrueCrypt/VeraCrypt ne possèdent pas d'identificateurs UUID ni d'étiquettes (ou du moins aucun qu'Udev ne connaît par opposition à ceux des conteneurs LUKS).

Il existe un autre identifiant suffisamment stable pour les volumes de stockage sous Linux: ID de disque. Vous pouvez les trouver dans:

/dev/disk/by-id/

Jusqu’à présent, je n’ai jamais remarqué de changements dramatiques dans les liens symboliques, car les noms sont générés par

  • udev, dont la configuration de stockage de base ne change pas souvent,
  • basé sur le nom du fabricant, le nom du modèle et le numéro de série indiqués par le micrologiciel du lecteur, qui ne change pas non plus très souvent.
3
David Foerster

Avant de connecter votre lecteur, prenez un "instantané"

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

Encore une fois, après avoir connecté votre lecteur. Et regardez le diff:

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

Vous devriez voir (c'est-à-dire sur un lecteur Samsung externe à deux parties)

> [...] 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

Pour monter, disons la partition2 de cela à /mnt/m (mon exemple: avec des commutateurs TrueCrypt)

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

Vous pouvez maintenant utiliser de manière fiable le script de montage correspondant pour ce lecteur, quel que soit le port USB utilisé ou l'ordre dans lequel il a été connecté.


Et pour un script de démontage correct et fiable:

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


stabilité?

J'utilise cette première main sur diverses stations d'accueil, dans divers lieux de travail avec plusieurs lecteurs externes de marques différentes pendant des mois. Pas de problème.

0
Frank Nocke