it-swarm.com.de

Kann VeraCrypt dauerhafte Einhängepunkte unter Linux verwenden?

Kann VeraCrypt dauerhafte Einhängepunkte unter Linux verwenden?


Absolute Pfade für Windows + VeraCrypt + -verschlüsselte Volumes

Unter Windows kann ich verschlüsselte Partitionen/Festplatten über ein Batch-Skript bereitstellen, das ein Gerät verwendet Name wird durch mountvol.exe angezeigt. Ein solches Attribut ist sehr nützlich, da ein Neustart den relativen Pfad ändern kann (\Device\Harddisk1\Partition3 -> Neustart -> \Device\Harddisk3\Partition3).

Mein Batch-Skript für Veracrypt-Volumes unter Windows (verkürzte Form):

@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


Nur Linux + VeraCrypt + verschlüsselte Volume-relative Pfade?

Ich habe keine Kenntnis über die Existenz von parallelen Befehlen zu Windows '/v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\, die für die Linux-Befehlszeile verfügbar sind. Ich habe (vergeblich) versucht, --mount=/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx zu kennzeichnen, da mountvol.exe Datenträgername basiert (wahrscheinlich) auf der UUID-Nummer (jedoch nicht wahrnehmbar für blkid). Die offizielle Veracrypt/TrueCrypt-Dokumentation ermöglicht Linux-Benutzern, nur mit relativen (variablen) Pfaden zu arbeiten (/dev/sda3 -> Neustart -> /dev/sdc3). Wegen Unstimmigkeiten müssen die Pfade nach jedem Laden des Betriebssystems überprüft werden.

Mein Bash-Skript zum Mounten von Veracrypt-Volumes unter Linux (Kurzform):

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


Lösung?

Weiß jemand, ob VeraCrypt Volume Location unter Linux absolut beschrieben werden kann?

Wenn dies nicht möglich ist, machen Sie bitte Vorschläge, um dasselbe Ziel zu erreichen. (zB: udev? fstab?)

Erratum

mountvol.exe erkennt GUID, nicht UUID wie oben geschrieben.

11
Christianus

Ich habe die folgende Antwort von David Foerster ausgearbeitet und sie für andere Linux-Benutzer, die sich für das vorgestellte Thema interessieren, anschaulicher und klarer gemacht.

Absolute Pfade für Linux + VeraCrypt + verschlüsselte Volumes

Nach meiner Recherche scheint es unmöglich zu sein, einen absoluten Pfad zum VeraCrypt-Volume zuzuweisen (zumindest derzeit) ( vide : by-id und by-path Eintrag auf wiki.archlinux.org unter Persistent block device naming ( 1 )).

Linux + VeraCrypt + Semipersistentes Block Device Naming

Wir können jedoch die semi-persistente Block-Device-Benennung verwenden.

1. Nebenweg

/dev/disk/by-path/ hängt vom kürzesten physischen Pfad ab ( 2 ) und ändert sich, wenn der Port des Controllers umgeschaltet wird ().

Um den Deskriptor /dev/disk/by-path/ zu erhalten, geben Sie Folgendes ein:

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

Sie können die erhaltene Benennung verwenden, um das VeraCrypt-Volume zu mounten:

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

/dev/disk/by-path/[by-path] kann den relativen Pfad im Bash-Skript ersetzen:

#! /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/ wird gemäß der Seriennummer des Geräts erstellt ( 4 ). wiki.archlinux.org gibt an, dass /dev/disk/by-id/ Hardwareänderungen nicht überstehen kann, d. h. Szenario, in dem das Gerät an den Port des Controllers angeschlossen ist, der einem anderen Subsystem unterliegt ( 5 ). access.redhat.com behauptet andererseits, dass /dev/disk/by-id/ beibehalten werden kann, auch wenn auf das Gerät von verschiedenen Systemen zugegriffen wird ( 6 ). Daher scheint symlink im Falle der Anwendung von /dev/disk/by-id/ ziemlich stabil zu sein.

Geben Sie Folgendes ein, um den Gerätenamen /dev/disk/by-id/ zu erhalten:

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

Wenn Sie nun das richtige haben, können Sie damit das VeraCrypt-Volume mounten:

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

Analog zu dem, was in Absatz 1 erwähnt wurde, kann /dev/disk/by-id/ im Bash-Skript verwendet werden:

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

Vielleicht ist es für jemanden hilfreich.

Nachtrag

/dev/disk/by-id/ ist nicht stabil genug, um das Korrigieren des Bereitstellungsskripts nach dem Neustart zu vergessen.

7
Christianus

Leider ist der Zugriff auf die UUIDs und Labels des Dateisystems in verschlüsselten Containern aufgrund der Verschlüsselung nicht möglich, und TrueCrypt/VeraCrypt-Container enthalten keine UUIDs oder Labels für sich (oder zumindest keine, die udev kennt, im Gegensatz zu denen von LUKS-Containern).

Es gibt eine andere ausreichend stabile Kennung für Speichervolumes in Linux: Platten-IDs. Du findest sie in:

/dev/disk/by-id/

Bisher habe ich keine dramatischen Änderungen an den symbolischen Links dort bemerkt, da die Namen von generiert werden

  • udev, dessen grundlegende Speicherkonfiguration sich nicht oft ändert,
  • basierend auf dem Herstellernamen, der Modellbezeichnung und der Seriennummer, die von der Laufwerksfirmware gemeldet werden, was sich auch nicht oft ändert.
3
David Foerster

Machen Sie vor dem Anschließen Ihres Laufwerks einen „Schnappschuss“.

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

Wieder nach dem Anschließen Ihres Laufwerks. Und schau dir den Unterschied an:

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

Sie sollten sehen (d. H. Auf einem externen Samsung-Laufwerk mit zwei Partitionen)

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

Sagen Sie zum Mounten partition2 davon zu /mnt/m (mein Beispiel: mit truecrypt-Schaltern)

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

Sie können das entsprechende Mount-Skript für dieses Laufwerk jetzt zuverlässig verwenden, unabhängig davon, an welchen USB-Anschluss oder in welcher Reihenfolge es an andere Laufwerke angeschlossen wurde.


nd für ein korrektes, zuverlässiges Unmount-Skript:

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


Stabilität?

Ich benutze diese aus erster Hand für verschiedene Docking-Stationen, an verschiedenen Arbeitsplätzen mit mehreren externen Laufwerken verschiedener Marken für Monate. Keine Probleme.

0
Frank Nocke