II. Linux en Entreprise : Comment se préparer face à d’éventuels problèmes de déchiffrage

I. Linux en Entreprise : Disque dure chiffré avec un Dual boot Windows-Ubuntu
II. Linux en Entreprise : Comment se préparer face à d’éventuels problèmes de déchiffrage
III. Linux en Entreprise: Applications Windows et leurs équivalents Linux

II. Linux en Entreprise : Comment se préparer face à d’éventuels problèmes de déchiffrage

Après avoir chiffré votre disque dur, vérifier que vous avez tout ce qu’il faut pour vous préparer à d’éventuels soucis pour accéder à vos données sur le disque.

Garder en tête qu’une fois le disque dur est entièrement chiffré, il est impossible d’y accéder sans l’avoir préalablement déchiffré.

Il va de soi que la première chose à faire serait de sauvegader l’entête de la partition chiffrée. Je vous ai traduit un passage du manuel de cryptsetup.

If  the  header of a LUKS volume gets damaged, all data is 
permanently lost unless you have a header-backup.

Ce qui se traduit par,

Si l'en-tête d'un volume LUKS est endommagé, toutes les données 
[du disque] sont définitivement perdues sauf si vous avez une 
sauvegarde de l'en-tête.

 

I. Sauvegarder et restaurer l’en-tête du volume luks

Commencer par sauvegarde l’entête de LUKS.

$ sudo cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file luks-head_sda2.bak

Vous pouvez ensuite copier le fichier créé à un endroit où vous pouvez y accéder à tout moment, en cas de soucis.

Si vous êtes curieux, vous pouvez afficher les informations de l’entête de LUKS avec l’option luksDump.

$ sudo cryptsetup luksDump /dev/sda2


A comparer avec les informations du fichier de sauvegarde, on devrait avoir les mêmes informations.

$ sudo cryptsetup luksDump luks-head_sda2.bak

Noter que vous avez droit à 8 clés (passphrase) max. A chacune de ces clés sera associée un slot. Le slot zéro contient déjà une clé, celle qu’on a renseigné au moment où l’on a chiffré le disque.

 

Pour restaurer le header, c’est presque la même commande que pour le backup. Il suffit de remplacer « Backup » par « Restore ».

$ sudo cryptsetup luksHeaderRestore /dev/sda2 --header-backup-file luks-head_sda2.bak

 

II. Quelques manipulation sur le header

2.1 Ajout d’une nouvelle clé

J’ai mentionné qu’il vous est possible d’avoir jusqu’à 8 clés au total. Voici comment ajouter une nouvelle clé.

Par exemple, ajoutons une clé au niveau du slot numéro 4.

$ sudo cryptsetup luksAddKey --key-slot 4 /dev/sda2

 

Il vous sera demandé de rentrer la clé initialle (slot 0), si c’est la seule disponible, avant de pouvoir ajouter cette nouvelle clé.

2.2 Modification du mot de passe de la clé

Pour modifier une clé, on utilisera luksChangeKey avec l’option –key-slot (ou -S) suivit du numéro du Slot à modifier.

$ sudo cryptsetup luksChangeKey -S 4 /dev/sda2

2.3 Supprimer une clé

J’ai ajouté un mot de passe pour le slot 1, que je vais supprimer avec la commande,

$ sudo cryptsetup luksKillSlot /dev/sda2 1

 

Voyez bien que, si le slot n’est pas actif (slot 2), on ne peut rien y faire avec, à part l’activer.

Il ne faut surtout pas supprimer toutes les clés, sinon vous ne pourrez plus accéder à votre disque s’il n’y a pas eu sauvegarde du header auparavant.

 

III. Accès en mode sans-échec

Une dernière chose avant de clôturer ce chapitre. Vérifier que vous pouvez vous connecter sans problème en mode sans échec avec tous les mots de passe associés aux slots créés plus haut.

 

Il vous sera toujours demandé de déchiffrer la partition LUKS, même en mode sans échec.

 

J’ai utilisé deux mots de passe différent pour les deux slots, et j’arrive à me connecter sans problème avec les deux.

 

IV. Ré-installation

Si jamais vous avez à réinstaller Ubuntu, ou n’importe quel distribution linux avec une partition chiffrée, il vous suffit de monter la partition luks avec l’option luksOpen, puis de lancer l’installation comme normalement.

$ sudo cryptsetup luksOpen /dev/sda2 hdcrypt

 

Sources

LUKS: Add a Backup Key, Backup, Restore and Delete LUKS Volume Header
How to backup or restore LUKS header

 

Publicités

I. Linux en Entreprise : Disque dure chiffré avec un Dual boot Windows-Ubuntu

I. Linux en Entreprise : Disque dure chiffré avec un Dual boot Windows-Ubuntu
II. Linux en Entreprise : Comment se préparer face à d’éventuels problèmes de déchiffrage
III. Linux en Entreprise: Applications Windows et leurs équivalents Linux

I. Linux en Entreprise : Disque dure chiffré avec un Dual boot Windows-Ubuntu

Celà fait un moment que je me suis posé la question de comment utiliser Linux en entreprise. Il y a eu deux défis auquels j’ai du faire face.

  • Comment respecter les règles de sécurité informatique imposées par l’entreprise? Entre autre, comment protéger les données sensibles stockées sur un ordinateur tournant sour linux lorsque l’ordinateur se retrouve en dehors de l’entreprise?
  • Est-ce que les outils que j’utilise sous Windows vont être compatible avec Linux? Si ce n’est pas le cas, quelles sont les alternatives?

Je dois l’avouer que l’utilisation massive des outils dans cloud (outlook365, etc.) nous simplifie la vie dans un sens où, il n’est plus nécessaire d’avoir Windows pour les utiliser. Je vais en parler dans un prochain article.

 

Dans cette première partie, je vais vous donner les différentes étapes que j’ai suivit afin de pouvoir installer Ubuntu sur une partition chiffrée avec LUKS.

Ce post peut aussi intéresser des particuliers qui souhaitent sécuriser leurs ordinateurs tournant sous Linux.

 

Avant de faire quoi que ce soit comme manipulation sur votre ordinateur, je vous recommande vivement de faire plusieurs essais dans une machine virtuelle afin de vous familiariser avec les différentes étapes.

J’ai donc lancé une machine virtuelle avec les configurations suivantes:

OS : Xubuntu 18.10
RAM : 1Go
HDD : 20Go (disque vierge, non partitionné)

Mon plan est de configurer les différentes partitions comme suit:

/boot : 1Go – ext4
/root : 15Go – ext4
swap : 1Go
/home : le reste du disque – ext4

 

I. Preparation du disque avec GParted

Insérer l’ISO d’Ubuntu dans le lecteur de média de la VM (Virtual Machine en anglais, ou machine virtuelle), puis sélecter l’option Essayer Ubuntu sans l’installer.

GParted est compris dans l’ISO. Il n’y a plus besoin de le télécharger à part entière.

Quand vous sélectionnez votre partition, il vous sera demandé de choisir une table de partition. Sur les systèmes assez récent, GPT est un très bon choix.

 

Au niveau partition, il nous en faut deux. Celle utilisée pour  le boot, ne sera pas chiffré. La deuxième partition, dans laquelle on y mettra root, swap et home par le suite, sera entièrement chiffrée.

A la question, pourquoi ne pas chiffrer la partition boot, la réponse a été donnée ici.

 

II. Préparation de la partition chiffrée avec LUKS

Dans cette deuxième partie, je vais vous donner les étapes pour chiffrer la partition dans laquelle nous allons installer Ubuntu.

Cette partie se déroule en trois étapes:
– Initialiser la partition à chiffrer avec LUKS puis la formater
– Initialiser chaque disque associée à un volume physique
– Créer les différents volumes logiques

Je n’ai qu’un seul disque dur sur mon ordinateur, donc je ne vais pas m’embêter à expliquer comment faire dans le cas où vous avez plus d’un disque. Par contre, je vous renvoie à cet article qui traite le sujet.

 

Ne vous étonner pas si l’initialisation de la partition à chiffrer /dev/sda2, se déroule très vite.

$ sudo fdisk -l
$ sudo cryptsetup luksFormat /dev/sda2

C’est tout à fait normal, puisque l’option luksFormat, contrairement à ce que son nom nous fait croire, ne formate pas du tout le disque. Pour ce faire, nous allons utiliser la commande dd.

Commencer par accéder au conteneur LUKS, qu’on va nommer hdcrypt, et qui sera le chemin d’accès au disque déchiffré.

$ sudo cryptsetup luksOpen /dev/sda2 hdcrypt

Formatter le disque avec la commande dd. En mode parano, vous pouvez lancer la même commande plusieurs fois.

$ sudo dd if=/dev/zero of=/dev/mapper/hdcrypt bs=16M

En fonction de la taille de votre disque, cette commande risque de prendre du temps avant de se terminer. Il n’y a pas d’indication sur l’avancement de l’opération à l’écran.

Ne paniquez pas si vous ne voyez pas de progrès, laisser votre ordinateur le temps de terminer le processus, et n’oubliez surtout pas de brancher votre ordinateur à un secteur.

Le meilleur moment pour lancer cette commande, c’est durant la nuit. Au matin, il faut espérer que l’opération se termine.

 

Notre conteneur est presque prêt. Pour vous donner une idée de ce que l’on va faire par la suite,

La première étape serait d’associer un volume physique (PV, Physical Volume) à notre container.

$ sudo pvcreate /dev/mapper/hdcrypt


Créer ensuite un groupe « vgcrypt », dans lequel on regroupera tous les disques logiques.

$ sudo vgcreate vgcrypt /dev/mapper/hdcrypt

Et enfin, préparer nos disques logiques. Donnez leurs un nom qui vous donnera une indication sur la future utilisation du volume.

$ sudo lvcreate -n lvroot -L 15G vgcrypt
$ sudo lvcreate -n lvswap -L 1g vgcrypt
$ sudo lvcreate -n lvhome -l 100%FREE vgcrypt

Faites attention à la différence entre -l, qui demande à avoir une valeur en pourcentage, et -L qui s’attend à une quantité en Go, d’où le G ou g.

Nos différentes partitions (volumes logiques) sont maintenant créées. Il faut maintenant y associer les systèmes de fichier appropriés pour chaque partition.

Je ne vais pas me prendre la tête à choisir lequel utiliser. Si vous voulez utiliser autre chose que EXT4, libre à vous.

$ sudo mkfs.ext4 -L Root /dev/vgcrypt/lvroot
$ sudo mkfs.ext4 -L Home /dev/vgcrypt/lvhome
$ sudo mkswap -L Swap /dev/vgcrypt/lvswap

Ici, le label (-L <option>) n’est pas obligatoire. C’est une indication supplémentaire pour indiquer à quelle partition je vais associer le volume.

Vérifier les informations de vos partitions avec fdisk.


La partie déchiffrée du disque se situe dans /dev/mapper.

 

III. Installation d’Ubuntu dans une partition chiffrée

Je ne vais pas détailler le processus d’installation. Cependant, il y a quelques points auxquels j’aimerai qu’on discute.

Ubuntu a une option pour chiffrer tout le disque, par contre celà effacera entièrement le disque dur. Ce n’est pas une option pour moi, puisqu’il me faut toujours ma partition Windows. Si comme moi, vous souhaitez garder le double boot, faites attention à ne pas sélectionner cette option.

La dernière option est celle qui nous intéresse, puisqu’elle nous laisse le choix de manipuler les partitions à notre façon.

Pour chaque volume logique, nous allons lui associer les partitions correspondantes.

Par exemple, à la partition /home il lui faut associer au volume /dev/mapper/vgcrypt-lvhome (format de fichier ext4).

Aussi, faites attention quand vous choisissez le boot loader, sinon le système ne pourra pas être installé, ou encore l’OS ne peut pas démarrer par la suite.

Poursuivez l’installation,

Et ne redémarrer pas encore votre système puisqu’il n’est pas tout à fait prêt.

 

IV. GRUB et les partitions chiffrées

Le GRUB ne sait pas lire des partitions chiffrées, en tout cas au moment où j’écris cet article. Il va donc falloir lui donner manuellement toutes les informations nécessaire pour qu’il puisse démarrer le système d’exploitation qu’on vient d’installer.

Si, à un moment ou à un autre, le GRUB n’arrive pas à démarrer le système, suite à une mise-à-jour par exemple, il va falloir refaire toutes les étapes ci-dessous pour débloquer le situation.

Commencer par monter toutes les partitions dont en a besoin en mode chroot, en commençant par celle qui contient la partition root, suivit du boot, puis le reste.

$ sudo mount /dev/mapper/vgcrypt-lvroot /mnt
$ sudo mount /dev/sda1 /mnt/boot
$ sudo mount /dev/mapper/vgcrypt-lvhome /mnt/home
$ sudo mount --bind /dev /mnt/dev

Récupérer ensuite l’UUID du disque /dev/sda2 chiffré avec LUKS. On n’en aura besoin pour la suite.

Monter ensuite les systèmes de fichiers du noyau virtuels proc, sysfs et devpts une fois connecté avec chroot.

$ sudo chroot /mnt
# mount -t proc proc /proc
# mount -t sysfs sys /sys
# mount -t devpts devpts /dev/pts

Créer un fichier crypttab pour y ajouter les informations ci-dessous.

[chroot]# vi /etc/crypttab
# <target name> <source device>		<key file> <options>
hdcrypt         UUID=UUID_de_sda2		none		luks,retry=1,lvm=vgcrypt

 

Déclarer le disque chiffré.

[chroot]# vi /etc/initramfs-tools/conf.d/cryptroot
CRYPTROOT=target=hdcrypt,source=/dev/disk/by-uuid/UUID_de_sda2

 

Regénérer les images de démarrage.

[chroot]# update-initramfs -k all -c

Indiquer au GRUB que la partition racine est chiffrée.

[chroot]# vi /etc/default/grub
 
GRUB_CMDLINE_LINUX="cryptopts=target=hdcrypt,source=/dev/disk/by-uuid/UUID_de_sda2,lvm=vgcrypt"

Mettre à jour les informations du GRUB.

[chroot]# update-grub


Et voilà, on est arrivé au bout. Vous pouvez maintenant redémarrer votre système.

Sources

Pourquoi la partition Boot n’est pas Cryptable ?
How can I install Ubuntu encrypted with LUKS with dual-boot?
Installer un Ubuntu chiffré avec LUKS, LVM et un partitionnement personnalisé
LFCS: How to Manage and Create LVM Using vgcreate, lvcreate and lvextend Commands – Part 11
Setup Flexible Disk Storage with Logical Volume Management (LVM) in Linux – PART 1