LUKS - mise en place par lignes de commande

Un souci pour utiliser une fonction de Libre Office, de Gimp , d'Inkscape ,etc, etc
Posez vos questions ou demandes ici
Avatar du membre
Glenic
Messages : 171
Enregistré le : 14 déc. 2020 19:48
Localisation : Indre (36)

LUKS - mise en place par lignes de commande

Message non lu par Glenic »

[post modifié le 4 avril pour tenir compte à la fois de l'expérience réussie du 20 mars (voir ci-dessous) mais aussi hélas, d'un nouveau ratage aujourd'hui 4 avril - JLG]
Bonjour,

L’intérêt d'une partition chiffrée sur son ordinateur n'est plus à démontrer, notamment pour la protection des données personnelles.
Le système de chiffrement est : cryptsetup / LUKS (= Linux Unified Key Setup)
Mais comment mettre en place une telle partition sur un ordinateur où une distribution Linux est déjà installée ?

Pas de commande graphique disponible.
Il faut se lancer en lignes de commande !

Voici le début d'un tuto suivi avec succès en 2020, révisé en mars 2021 avec l'aide de Maxoxo, pour créer une partition LUKS sur un vieil ordinateur ThinkPad fonctionnant sous Lubuntu 16.04. Cette partition est immatriculée /dev/sda3
Pour l'instant, ça s'arrête au milieu car ça coince à ce moment-là. Je compte sur vous pour m'aider !

L’ordinateur s’appelle ThinkPad-X41
L’utilisateur est jlg

En général, je ne transcris pas ci-dessous les résultats des lignes de commande pour ne pas alourdir le post

jlg@ThinkPad-X41:~$ sudo su -
[sudo] Mot de passe de jlg :

message pour les débutants : ATTENTION
une fois que vous aurez tapé votre mot de passe et que vous aurez activé enter l’affichage va devenir

root@ThinkPad-X41:~#

vous allez travailler avec les droits de l’administrateur (= root, à la racine du système d'exploitation), symbolisés par le caractère # à l'invite de la ligne de commande.

Il ne faut pas se tromper et comprendre les manœuvres que vous exécutez.
Une fausse manœuvre peut provoquer l’effacement de toutes vos données ou le blocage de votre ordinateur.

root@ThinkPad-X41:~# blkid

la commande blkid permet de visualiser les partitions présentes sur l’ordinateur et leurs principaux paramètres. C'est une base pour le travail qui va venir.

NB : on aura déjà créé au préalable (par exemple avec GParted actionnée en session "live" par une clef USB de boot) une partition /dev/sda3 destinée à être chiffrée. Il y a 3 partitions montées avec un système de fichiers ext4 sur le disque dur
/dev/sda1 -> l'ensemble des programmes du système
/dev/sda2 -> l'ensemble des données
/dev/sda3 -> la future partition LUKS

root@ThinkPad-X41:~# type cryptsetup
cryptsetup est /sbin/cryptsetup

Avec la commande type cryptsetup on a vérifié que le paquet cryptsetup était bien présent sur l’ordinateur. Si ce n’est pas le cas, il faut installer le paquet (voir le gestionnaire de paquet Synaptic ou la logithèque).

root@ThinkPad-X41:~# cryptsetup -v luksFormat /dev/sda3

WARNING!
========
Cette action écrasera définitivement les données sur /dev/sda3.

Are you sure? (Type uppercase yes): YES
Saisissez la phrase secrète pour /dev/sda7 :
Vérifiez la phrase secrète :
Opération réussie.

Avec cette commande, on transforme la partition /dev/sda3 en partition chiffrée

root@ThinkPad-X41:~# blkid

Cette nouvelle action de la commande blkid permet de vérifier le changement de statut de /dev/sda3
De simple partition "ext4", elle devient "crypto_LUKS"

root@ThinkPad-X41:~# cryptsetup open /dev/sda3 LUKS
Saisissez la phrase secrète pour /dev/sda3 :

Avec cette commande, on déverrouille la partition LUKS pour qu'elle soit accessible à la suite de l'opération

root@ThinkPad-X41:~# lsblk

Cette commande liste les partitions avec leur taille, leur type, et leur point de montage.
Si tout se passe bien, /dev/sda3 -> LUKS n'a pas encore de point de montage, contrairement à /dev/sda1 et /dev/sda2
Il s'agit maintenant de déterminer ce point de montage.
La partition LUKS ne doit pas se monter automatiquement à chaque démarrage de l'ordinateur sinon vous devrez saisir la phrase de passe chaque fois que vous allumerez votre ordinateur.
Au contraire, ce n'est que quand vous en avez besoin que vous monterez la partition. Le système vous demandera alors la phrase de passe. Une fois que vous aurez saisi cette phrase, le montage de la partition et son déverrouillage seront simultanés.

root@ThinkPad-X41:~# mount

Cette commande renvoie environ 2 pages de données. Elle liste les paramètres des points de montage des différentes partitions présentes sur l'ordinateur. Elle permet aux initiés de déceler des erreurs en cas de panne ultérieure dans le processus.

root@ThinkPad-X41:~# ls /dev/mapper/# control LUKS
Cette commande renvoie un message d'erreur. Considérant qu'il s'agit d'une erreur dans le script du 20 mars, je n'insiste pas et je passe à la commande suivante :

root@ThinkPad-X41:~# ls /dev/mapper/
control LUKS

La commande ls liste les répertoires contenus dans l'élément considéré, ici /dev/mapper

root@ThinkPad-X41:~# mkdir /media/LUKS
Il s'agit de créer un répertoire /media/LUKS

On formate ensuite ce répertoire avec un système de fichiers ext4
root@ThinkPad-X41:~# mkfs.ext4 -L LUKS /dev/mapper/LUKS

et on monte la partition LUKS
root@ThinkPad-X41:~# mount /dev/mapper/LUKS /dev/media/LUKS

[edit du 4 avril : c'est à partir de là que la mise en place de la partition chiffrée coince. Le restant de ce post est donc effacé ce jour et sera restitué sous la forme qui conduit à la solution
JLG
actuellement en service : Acer 7630 + LinuxMint 19.3
à venir HP Probook + Fedora 39
Avatar du membre
maxoxo
Messages : 245
Enregistré le : 12 févr. 2021 22:37

Re: LUKS - montage en lignes de commande

Message non lu par maxoxo »

Bonsoir Glenic,

Je crois que tu te compliques la vie :D Je ne suis pas sûr de bien comprendre ce que tu cherches à faire.

Ta partition chiffrée avec LUKS est en fait un contenant dans lequel se situe une partition munie dans ton cas du système de fichiers ext4. En réalité, ce n'est pas dans le contenant LUKS que tu écris des données mais dans la partition munie d'un système de fichiers qui est contenue à l'intérieur.

Pour que le système soit capable d'utiliser la partition de données ext4 il faut donc que le contenant chiffré soit d'abord déchiffré ! /dev/sda7 n'est donc pas l'adresse de la partition de données mais celle du contenant chiffré.
C'est comme si tu avais une malle fermée par un cadenas, pour accéder à son contenu il faut d'abord ouvrir le cadenas.

En ligne de commande, pour toi ça va donc donner ce qui suit :
(les commandes commençant par # sont à effectuer en root, mais ça fonctionne aussi avec sudo depuis l'utilisateur normal, les commandes à taper en tant que simple utilisateur sont indiquées en commençant par $)

Code : Tout sélectionner

# cryptsetup open /dev/sda7 secure
Ici tu peux remplacer "secure" par ce que tu veux, c'est un nom que tu détermines librement. Là il va te demander de taper la passphrase pour déverrouiller contenant chiffré LUKS. À partir de là, ta partition de données va être connue du système à l'adresse /dev/mapper/secure

Tu peux donc ensuite la monter où tu veux pour pouvoir lire et écrire des données dessus. Là c'est classique. Par exemple pour la monter sur le point de montage /mnt ça donnera :

Code : Tout sélectionner

# mount -o rw,uid=1000 /dev/mapper/secure /mnt
À partir de là, la partition sera accessible à /mnt et tu pourras faire tout ce que tu veux dedans. Il se peut que le système de fichiers ne soit pas reconnu automatiquement, le cas échéant, il faut utiliser la même commande en précisant

Code : Tout sélectionner

# mount -o rw,uid=1000 -t ext4 /dev/mapper/secure /mnt
Attention, si tu veux la monter sur /mnt/partitionchiffree il faudra donc d'abord créer le dossier /mnt/partitionchiffree avec la commande :

Code : Tout sélectionner

# mkdir /mnt/partitionchiffree
Tu peux bien sûr remplacer "partitionchiffree" par ce que tu veux.

Le paramètre -o après mount sert à lui indiquer des options, ici on lui dit :
  • rw indique droits de lecture et d'écriture (tu peux indiquer ro si tu veux de la lecture seule)
  • uid=1000 sert à indiquer qui sera le propriétaire des fichiers et dossiers créés. Cela correspond à l'id de ton compte utilisateur sur le système
Il faut bien vérifier que 1000 correspond au compte utilisateur désiré, si tu as plusieurs utilisateurs sur le système ça pourrait être un autre ID. Pour le vérifier, il faut taper la commande suivante (en étant pas root):

Code : Tout sélectionner

$ id
Maintenant tu sais monter une partition chiffrée depuis la ligne de commandes :D
Avatar du membre
maxoxo
Messages : 245
Enregistré le : 12 févr. 2021 22:37

Re: LUKS - montage en lignes de commande

Message non lu par maxoxo »

Comme je te le disais sur un autre post. Tant que tu ne changeras pas les droits avec les commandes chown et chmod : tu ne régleras pas le souci de permissions et donc tu ne pourras pas écrire (l'option rw de mount est indépendante et permet de dire au système que physiquement l'écriture et la lecture sont autorisées, chown et chmod interviennent au niveau logique pour régler le propriétaire et définir les permissions).

Si la passphase n'a pas été demandée c'est que le conteneur est déjà déverrouillé. Ou alors que l'installation LUKS de départ n'est pas bonne. As-tu un fichier /etc/crypttab ? Si oui, peux-tu coller ici son contenu ?

Peux-tu aussi m'indiquer le résultat de la commande ?

Code : Tout sélectionner

# blkid
Je t'ai peut-être induit en erreur parce que là en relisant je me rends compte que la capture Gparted que tu as montré révèle un schéma de partitions différents du résultat de fdisk que tu as mis au-dessus. Est-ce bien sur la même machine ? J'ai dû mal interprété les données de départ, mais les commandes sont bonnes, nous ne devons pas être loin.

J'aime bien les défis ! :D
Avatar du membre
Glenic
Messages : 171
Enregistré le : 14 déc. 2020 19:48
Localisation : Indre (36)

Re: LUKS - montage en lignes de commande

Message non lu par Glenic »

SUCCÈS COMPLET ! grâce à l'aide de Maxoxo.
Je le remercie d'avoir pris du temps pour me guider dans le dédale des lignes de commande.

Le résultat est là.
Quand on ouvre l'explorateur après l'allumage de l'ordinateur, on y trouve une ligne "5,5 Go chiffrés". Quand on clique sur cette ligne, on obtient la boite de dialogue qui permet de déverrouiller la partition.
2021-03-20-explorateur avec partition chiffrée.png
2021-03-20-explorateur avec partition chiffrée.png (86.04 Kio) Vu 5645 fois
Une fois le mot de passe introduit, la partition est déverrouillée.
Elle devient LUKS (une simple étiquette) dans l'explorateur.
2021-03-20-partition déverrouillée.png
2021-03-20-partition déverrouillée.png (54.89 Kio) Vu 5645 fois
Elle est montrée vide ici, puisque elle vient d'être créée.
Mais elle est parfaitement fonctionnelle !
Au démontage, ou bien à la déconnexion, le chiffrement revient automatiquement.

Dans les jours qui viennent, je vais retravailler le 1er post de ce sujet pour le transformer en véritable tuto
JLG
actuellement en service : Acer 7630 + LinuxMint 19.3
à venir HP Probook + Fedora 39
Répondre