O VeraCrypt pode usar pontos de montagem persistentes no Linux?

12

O VeraCrypt pode usar pontos de montagem persistentes no Linux?


Windows + VeraCrypt + caminhos absolutos de volume criptografado

No Windows, posso montar partições / discos criptografados veracrypt por meio de script em lote que emprega o nome do dispositivo exibido por mountvol.exe. Esse atributo é altamente útil, pois a reinicialização pode levar à alteração do caminho relativo ( \Device\Harddisk1\Partition3-> reinicialização -> \Device\Harddisk3\Partition3).

Meu script em lote para volumes veracrypt no Windows (formulário reduzido):

@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


Somente caminhos relativos do volume criptografado Linux + VeraCrypt +?

Não tenho conhecimento sobre a existência de comando paralelo ao Windows /v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\disponível para a linha de comando do Linux. Tentei a --mount=/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxflag (em vão) , já que o mountvol.exe nome do volume é (provavelmente) baseado no número UUID ( blkidembora imperceptível ). A documentação oficial do veracrypt / truecrypt permite que o usuário do Linux opere apenas com caminhos relativos (variáveis) ( /dev/sda3-> reboot -> /dev/sdc3). Devido à inconstância, os caminhos precisam ser verificados sempre que o sistema operacional é carregado.

Meu script bash para montar volumes veracrypt no Linux (formato reduzido):

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


Solução?

Alguém sabe se o local do volume VeraCrypt pode ser descrito em termos absolutos no Linux?

Se não for possível, forneça sugestões para alcançar o mesmo objetivo? (por exemplo: udev? fstab?)

Errata

mountvol.exereconhece GUID, não UUIDcomo foi escrito acima.

Christianus
fonte

Respostas:

7

Elaborei abaixo a resposta postada por David Foerster e a tornei mais descritiva e clara para outros usuários do Linux interessados ​​no assunto apresentado.

Caminhos absolutos de volume criptografado Linux + VeraCrypt +

De acordo com minha pesquisa, parece que a atribuição do caminho absoluto ao volume VeraCrypt é impossível (pelo menos atualmente) ( vide : entrada por caminho e por caminho no wiki.archlinux.org sob Nomeação de dispositivo de bloco persistente ( 1 )).

Linux + VeraCrypt + nomeação de dispositivo de bloco semi-persistente

No entanto, podemos usar a nomeação de dispositivo de bloco semi-persistente.

1. caminho

/dev/disk/by-path/depende do caminho físico mais curto ( 2 ) e muda conforme a porta do controlador é comutada ( 3 ).

Para obter o /dev/disk/by-path/descritor, digite:

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

Você pode usar a nomenclatura obtida para montar o volume VeraCrypt:

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

/dev/disk/by-path/[by-path] pode substituir o caminho relativo no 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/é criado de acordo com o número de série do dispositivo ( 4 ). O wiki.archlinux.org afirma que /dev/disk/by-id/não pode sobreviver a alterações de hardware, ou seja, cenário em que o dispositivo está conectado à porta do controlador sujeita a diferentes subsistemas ( 5 ). O access.redhat.com , por outro lado, afirma que /dev/disk/by-id/pode ser mantido mesmo se o dispositivo for acessado por diferentes sistemas ( 6 ). Assim, symlinkparece ser bastante estável no caso de /dev/disk/by-id/ser aplicado.

Para obter a /dev/disk/by-id/nomeação de dispositivos, digite:

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

Agora, quando você tiver um correto, ele poderá ser usado para montar o volume VeraCrypt:

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

Analogamente ao observado no parágrafo um, /dev/disk/by-id/pode ser usado no 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"

Talvez seja útil para alguém.

Termo aditivo

/dev/disk/by-id/ não é estável o suficiente para esquecer a correção do script de montagem após a reinicialização.

Christianus
fonte
3

Infelizmente, os UUIDs e os rótulos do sistema de arquivos dentro dos contêineres criptografados estão inacessíveis devido à criptografia e os contêineres TrueCrypt / VeraCrypt não carregam UUIDs ou rótulos por conta própria (ou pelo menos nenhum que o udev conheça em oposição aos contêineres LUKS).

Há outro identificador suficientemente estável para volumes de armazenamento no Linux: IDs de disco . Você pode encontrá-los em:

/dev/disk/by-id/

Até agora, nunca notei mudanças drásticas nos links simbólicos, pois os nomes são gerados por

  • udev, cuja configuração básica de armazenamento não muda com frequência,
  • com base no nome do fabricante, nome do modelo e número de série relatado pelo firmware da unidade, que também não muda com frequência.
David Foerster
fonte
Funciona. No entanto, eu tenho que testar a solução fornecida contra a estabilidade. Enquanto isso, desenvolvi sua resposta no formulário que você pode ver abaixo. Pode acontecer que o assunto também seja útil para outra pessoa.
Christianus
/dev/disk/by-id/método é muito instável para o meu gosto. Após uma reinicialização, dois links simbólicos foram alterados. Seria bom se o veracrypt usasse, como dm-crypt, diferentes UUIDs externos e internos.
Christianus
Ímpar. Eu nunca tive mudança alguma coisa lá dentro que estava relacionada com unidades físicas e começou com ata-*, scsi-*ou até mesmo usb-*, exceto para 1) os *-part*sufixos depois de mudar a tabela de partição ou 2) após um lançamento atualizar incluindo grandes mudanças para udev. Nesse meio tempo, desconectei e troquei unidades e os nomes do kernel ( sd*) tendem a mudar a cada poucas inicializações.
David Foerster
No meu caso, ata-*foi substituído por usb-*dois HDs externos fabricados pela WD: WDC WD15NMVW-11AV3S3 e WD Elements 107C (1042).
Christianus
Há pelo menos um dos prefixos persistentes para qualquer uma das unidades?
David Foerster
0

Antes de conectar sua unidade, faça um 'instantâneo'

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

Novamente, depois de conectar sua unidade. E veja o diff:

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

Você deve ver (ou seja, em uma unidade Samsung externa de duas 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 a partição2 disso para /mnt/m(meu exemplo: com opções truecrypt)

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

Agora você pode usar com segurança o respectivo script de montagem para esta unidade, independentemente da porta USB ou da ordem em que as outras unidades foram conectadas.


E para um script de desmontagem adequado e confiável:

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


estabilidade?

Estou usando isso em primeira mão em várias estações de acoplamento, em vários locais de trabalho com várias unidades externas de marcas diferentes por meses. Sem problemas.

Frank Nocke
fonte