Comment puis-je définir une étiquette sur un conteneur dm-crypt + LUKS?

12

Je viens de recevoir un nouveau lecteur flash USB et y ai installé 2 partitions cryptées. J'ai utilisé dm-crypt (mode LUKS) via cryptsetup. Avec une partition supplémentaire non chiffrée, le lecteur a la structure suivante:

  • /dev/sdb1, chiffré, cachant un système de fichiers ext4 intitulé "Partition 1".
  • /dev/sdb2, chiffré, cachant un autre système de fichiers ext4, intitulé "Partition 2".
  • /dev/sdb3, système de fichiers ext4 clair et visible intitulé "Partition 3".

Étant donné que les étiquettes sont attachées aux systèmes de fichiers ext4, les deux premiers restent complètement invisibles tant que les partitions n'ont pas été déchiffrées. Cela signifie que, dans l'intervalle, les conteneurs LUKS n'ont pas d'étiquettes. Ceci est particulièrement gênant lors de l'utilisation de GNOME (montage automatique), auquel cas les partitions apparaissent comme " x GB Encrypted " et " y GB Encrypted " jusqu'à ce que je décide de les déverrouiller.

Ce n'est pas vraiment un problème de blocage, mais c'est assez ennuyeux, car j'aime vraiment mes étiquettes et j'aimerais les voir apparaître même lorsque mes partitions sont toujours cryptées.

Par conséquent, existe-t-il un moyen d'attacher des étiquettes aux conteneurs dm-crypt + LUKS, tout comme nous attachons des étiquettes aux systèmes de fichiers ext4? L'en-tête dm-crypt + LUKS a-t-il de la place pour cela, et si oui, comment puis-je définir une étiquette?

Notez que je ne veux pas exposer mes étiquettes ext4 avant le décryptage, ce serait idiot. Je voudrais ajouter d'autres étiquettes aux conteneurs, qui pourraient apparaître pendant que les étiquettes ext4 sont cachées.

John WH Smith
la source
Le lecteur USB a-t-il été partitionné avec MBR ou GPT? Je pense que vous pouvez étiqueter les partitions GPT, ce qui peut vous aider.
garethTheRed
1
J'ai menti (enfin partiellement) - J'ai créé une partition GPT sur une clé USB et utilisé gdiskpour donner une étiquette à cette partition. Lorsque j'ai ensuite créé un système de fichiers sur cette partition, GNOME ne l'a reconnu que comme un "volume de 501 Mo". Ainsi, bien que vous puissiez l'étiqueter, GNOME ne reconnaît pas les étiquettes de partition; uniquement les étiquettes des systèmes de fichiers.
garethTheRed
1
@garethTheRed Vous avez vérifié en même temps que moi! J'ai reformaté mon disque en utilisant GPT (j'avais utilisé fdiskle mode MBR par défaut) et les noms de partition n'apparaissent pas dans GNOME. Cependant, la question n'était pas vraiment spécifique à GNOME, et bien que l'astuce des noms GPT agisse à un niveau inférieur, cela pourrait toujours être une solution valide au problème que j'ai décrit. J'attendrai un peu plus pour voir si quelqu'un a une solution agissant au niveau LUKS, mais je pense que les noms de partition GPT pourraient être le contenu d'une réponse valide.
John WH Smith
1
Les volumes LUKS n'ont pas de nom. Ils n'en reçoivent qu'un lorsque le périphérique est mappé, ce qui ne peut se produire que lorsque vous avez fourni la clé. Vos seules solutions sont de trouver un moyen d'indiquer à Gnome un nom qui n'est pas «physiquement» attaché au volume, ou de donner un nom à un volume englobant (par exemple la partition). PS Cette question est très bien ici, et serait hors sujet sur la sécurité de l'information car il ne s'agit pas de sécurité, il s'agit d'utiliser un outil d'utilisateur final qui arrive à faire quelque chose de lié à la sécurité.
Gilles 'SO- arrête d'être méchant'
Si vous définissez une étiquette de partition, vous obtiendrez un lien symbolique correctement nommé dans /dev/disk/by-partlabel. Je sais que cela n'aide pas les outils qui ne regardent pas là-bas, mais cela donne un chemin stable que vous pouvez utiliser dans les scripts et autres.
asciiphil

Réponses:

2

Je pense que la solution est d'écrire des règles udev comme celle-ci.

KERNEL=="sd*", ENV{ID_FS_UUID}=="your-sdb1-uuid", ENV{ID_FS_LABEL}="Partition_1", ENV{ID_FS_LABEL_ENC}="Partition_1"
KERNEL=="sd*", ENV{ID_FS_UUID}=="your-sdb2-uuid", ENV{ID_FS_LABEL}="Partition_2", ENV{ID_FS_LABEL_ENC}="Partition_2"
MB4E
la source
1
Fonctionne comme un charme! Même si j'aurais préféré une solution qui implique de stocker les informations sur le support amovible, je crains que je devrai m'en tenir à une configuration spécifique au système après tout. De plus, la question était devenue assez spécifique une fois que GNOME s'était impliqué: je suis très content que quelqu'un ait trouvé une solution qui ne dépende pas de son comportement.
John WH Smith du
6

pour une solution permanente pour changer l'étiquette du contenant , utilisez:

sudo cryptsetup config /dev/sdb1 --label YOURLABEL
Kristóf Szalay
la source
2
Il pourrait être utile de préciser que cela ne fonctionne que pour les en-têtes LUKS2, mais certainement la meilleure solution
Torin
2

Cette méthode semble avoir fonctionné pour moi: http://www.cyberciti.biz/faq/linux-partition-howto-set-labels/

Donc, si vous utilisez un système de fichiers EXT (j'utilise ext4 ici):

  1. Déverrouillez la partition LUKS.
  2. Définissez le nom du système de fichiers déverrouillé (pas la partition LUKS).

    e2label <path> <name>
    

    Le pathgeneraly est en /dev/mapper/<something>cas d' utilisation cryptsetup. Mais dans mon cas, parce que j'utilise des udisks, c'était /dev/dm-x, où xest un nombre.

Je pense que cette méthode stocke les informations sur le support amovible, comme vous le vouliez, mais je n'ai toujours pas testé.

Quelqu'un
la source
2
Merci, mais malheureusement cela ne peut pas fonctionner avec les conteneurs LUKS, qui cachent toutes les informations sur leurs systèmes de fichiers internes (y compris leurs étiquettes). L'idée ici était de nommer le conteneur LUKS, pas ce qui est caché à l'intérieur, pour que le nom apparaisse même lorsque le conteneur est toujours crypté: p (voir mon 2ème paragraphe)
John WH Smith
Ops, désolé ... Je pensais que vous vouliez étiqueter le système de fichiers interne, pas la partition LUKS. Peut-être parce que c'est ce que je voulais faire en arrivant à cette question. = P
quelqu'un du
0

J'ai trouvé que la combinaison des réponses de @ kristóf-szalay et @someone était ce que je voulais, et j'ai ajouté quelques notes.

Plus précisément:

sudo cryptsetup config /dev/sdb1 --label YOURLABEL

ITO la question d'origine, cela permettra à l'icône de votre DM de s'afficher avec YOURLABEL

Si vous deviez ouvrir la crypte en double-cliquant, elle sera montée comme

/media/user/uuid
eg:
/media/fred/e54e89a-.....

Ce qui pourrait encore causer de la confusion, par exemple si vous êtes dans l'interface CLI.

En faisant:

e2label <path> <name>

Ce nom fera que le chemin monté prendra la valeur de < nom >:

/ media / fred / nom

eugenevd
la source