Installateur Debian - Chiffrage partitions racine, home et boot par la méthode lvm chiffré

Références

1 - Principe

L'installation avec boot chiffré diffère d'une installation standard par trois points :

La description détaillée de ces trois points est décrite ci-après.

2 - Démarrage de l'installation

Démarrer l'ordinateur sur le CD ou la clé USB contenant l'installateur. Lorsque l'écran de démarrage s'affiche, sélectionner Install

Installation 1

Poursuivre l'installation (choix de la langue, connexion réseau, définition mots de passe, ...), comme pour une installation non chiffrée, jusqu'à l'étape de partitionnement.

3 - Partitionnement

3.1 - Préparation du disque à partitionner

Lorsque l'étape de partitionnement débute, ouvrir une console avec Alt + F2 (ou Alt + F3) :

0-utilisation-console.jpg

Afficher les disques et partitions existantes avec blkid et fdisk :

Dans le cas présent, un disque (/dev/sda) a été détecté. Il utilise une table de partition DOS et de deux partitions /dev/sda1 et /dev/sda2.

Vérifier qu'il s'agit bien du disque que l'on souhaite utiliser pour la nouvelle installation (toutes les données seront perdues).

Pour simplifier l'étape de partitionnement qui va suivre, il peut-être intéressant de supprimer le partitionnement existant (avec fdisk) : options d pour supprimer les partitions l'une après l'autre, puis écrire les modifications avec l'option xw.

Il est également possible de supprimer la table de partitionnement avec dd:

Revenir à la console d'installation avec Alt + F1.

3.2 - Sélection du disque

Sélectionner le disque sur lequel le système va être installé. Dans l'exemple ci-dessus, un seul choix possible : sda

3.3 - Création de la table de partition et de la partition primaire

Créer la table de partition, ce qui a pour effet de créer également une partition primaire occupant tout l'espace libre.

2-cr%C3%A9ation-partition-boot1.jpg


3.5 - Chiffrage de la partition

Le chiffrage de la partition s'effectue en deux grandes étapes :

3.5.1 Création de la partition chiffrée

Sélectionner l'espace libre du disque

2-cr%C3%A9ation-partition-boot1.jpg

Et créer une nouvelle partition

Définir sa taille, par défaut la taille maximale restante est proposée

Sélectionner le type Primaire ou Logique (étendue)

Dans la fenêtre qui s'affiche, sélectionner "Utiliser comme"

Dans le menu déroulant, sélectionner Volume physique pour chiffrement

Désactiver éventuellement l'option d'effacement des données afin de gagner du temps et sélectionner "Fin du paramétrage de cette partition" pour démarrer la création de la partition chiffrée

3.5.3 Configuration de la partition chiffrée

Dans la fenêtre qui s'affiche, la partition chiffrée qui vient d'être créé est marquée "... K chiffré inactive". Sélectionner l'option Configurer les volumes chiffrés.

Accepter l'écriture de la table de partitionnement

Les étapes qui suivent permettent de sélectionner la partition qui va être chiffrée

Sélectionner la partition



Il n'y a pas d'autre partitions à chiffrer, sélectionner Terminer

Si l'effacement des données a été sélectionné, celui-ci s'effectue, mais peut-être interrompu

Entrer deux fois la phrase secrète - Attention, lors de la saisie du mot de passe au démarrage de l'installation (par grub), le clavier sera en mode QWERTY. Si le mot de passe comprend des touches disposées différemment sur le clavier local (AZERTY) et sur le clavier QWERTY, il faudra en tenir compte.

Si la phrase secrète est trop courte, un avertissement est émis

Dans la fenêtre qui s'affiche, la partition primaire est désormais mentionnée "K chiffré (sda1_crypt)" au lieu de "K chiffré inactive".

3.6 - Création du groupe de volume

Sélectionner Configurer le gestionnaire de volumes logiques (LVM)

Confirmer que le schéma de partitionnement convient

Sélectionner Créer un groupe de volumes

Entrer le nom du groupe de volumes à créer : vg dans cet exemple

Sélectionner la partition cryptée (sda1_crypt) pour la création du groupe de volumes

Confirmer la modification à effectuer


Un volume physique et un groupe de volume ont été créés


3.7 - Création des volumes logiques

L'étape suivante consiste à créer les différents volumes logiques boot, root, swap et home

3.7.1 Création du volume logique boot

1 - Sélectionner la ligne Créer un volume logique"

2 - Sélectionner le groupe de volumes : dans le cas présent le choix est unique (vg)

3 - Entrer le nom du volume logique, par exemple boot

4 - Définir sa taille, par exemple 500MB

3.7.2 Création des volumes logiques root, swap et home

Procéder comme ci-dessus pour chaque volume logique restant à crée, par exemple

Volume_logique         Nom_volume      Groupe_volume   Taille
boot boot vg 500MB
/ debian vg 4GB
swap swap vg 1GB
/home home vg 3GB

3.7.3 Fin de la création des volumes logiques

Lorsque tous les volumes logiques ont été créés, sélectionner Terminer.


Les volumes chiffrés apparaissent désormais sur la table de partition :

3.8 - Formatage et points de montage

Il reste à formater chaque volume logique.

3.8.1 Formatage et point de montage du volume logique /boot

Sélectionner la ligne correspondant au volume logique boot

Faire apparaître le menu déroulant de la ligne Utiliser comme : Ne pas utiliser

Et sélectionner le système de fichiers ext4


Entrer les autres caractéristiques : Point de montage : partition racine /, l'étiquette (factultative) et Terminer le paramètrage

3.8.2 Formatages et points de montage des volumes logiques swap et home

Procéder comme ci-dessus pour chaque volume logique restant à formater

Volume_logique Utiliser_comme  Point_montage   Etiquette
boot ext4 /boot boot
root ext4 / root
swap swap
home ext4 /home home

Lorsque tous les volumes logiques sont correctement configurées, sélectionner "Terminer le partitionnement et appliquer les changements".

Confirmer les modifications

Si aucun espace d'échange (swap) n'est prévu, un avertissement est affiché.

Une fois les changements effectués, le nouveau partitionnement est visible en console :

4 - Poursuite de l'installation

Après le partitionnement, poursuivre l'installation normalement, jusqu'à l'installation de grub.

5 - Activation du chiffrement au niveau de grub

Par défaut, grub ne prend pas en compte les volumes chiffrés et il est nécessaire d'activer cette option avec le paramètre GRUB_ENABLE_CRYPTODISK dans /etc/default/grub. Cette activation n'est pas prévue par l'installateur Debian standard et s'effectue en console.

Lancer l'étape d'installation de grub ... qui va échouer

grub2

Ouvrir une console alt +F2 et ajouter le paramètre GRUB_ENABLE_CRYPTODISK à /etc/default/grub. Le système étant monté en /target, la commande devient :

# echo "GRUB_ENABLE_CRYPTODISK=y" >>/target/etc/default/grub

Puis relancer l'installation du programme de démarrage

grub3

Une fois l'installation de grub effectuée, achever normalement l'installation.

6 - Utilisation

6.1 - Premier démarrage

Au premier démarrage, le mot de passe sera demandé deux fois :

Il est possible de supprimer la deuxième demande, en utilisant une phrase de passe stockée dans le système et activée par linux.

6.2 - Déverrouillage automatique

6.2.1 Création d'un fichier de phrase de passe

Créer une phrase de passe et la stocker dans un fichier /etc/keys/passphrase (nom et emplacement arbitraires)

# mkdir /etc/keys
# dd if=/dev/urandom of=/etc/keys/passphrase count=512 bs=1

Restreindre l'accès en lecture à root seul

# chmod o-r-w-x /etc/keys/passphrase

Charger la clé, par exemple dans le slot 7

# cryptsetup luksAddKey /dev/sda1 /etc/keys/passphrase  --key-slot=7

6.2.2 Création d'un script de chargement de la clé dans initramfs

Créer un script qui chargera la clé (le fichier passphrase) à la racine de /initramfs lors de l'appel de update-initramfs

# nano /etc/initramfs-tools/hooks/passphrase.bin
#!/bin/sh
cp /etc/keys/passphrase "${DESTDIR}"

Rendre le script exécutable

    # chmod +x /etc/initramfs-tools/hooks/passphrase.bin

Restreindre l'accès en lecture à initramfs à root seul :

# echo "UMASK=026" >>/etc/initramfs-tools/initramfs.conf

6.2.3 Modification de /etc/crypttab

Par défaut, /etc/crypttab est de la forme :

# cat /etc/crypttab
# <target name> <source device> <key file> <options>
sda2_crypt UUID=6905bf4a-d80b-41eb-8e70-16b05d5f8c34 none luks,discard

Modifier les champs<key file> et <options> :

# cat /etc/crypttab
# <target name> <source device> <key file> <options>
sda2_crypt UUID=6905bf4a-d80b-41eb-8e70-16b05d5f8c34 /passphrase luks,discard,keyscript=/bin/cat

6.2.4 Mettre à jour initramfs

# update-initramfs -u -k all

On peut vérifier que le fichier passphrase a été inclus à la racine de initramfs :

# lsinitramfs /boot/initrd-xxxxxxxx |grep passphrase
passphrase

Redémarrer et vérifier que le mot de passe n'est plus demandé qu'une seule fois (par grub).

7 - Divers

1 - Ne pas utiliser l'option GRUB_SAVE_DEFAULT de grub car elle n'est pas supportée par lvm et génère une erreur!

2 - Lors du démarrage de linux, pour éviter les messages d'avertissement de lvmetad, remplacer 1 par 0 dans use_lvmetad = 1, ligne 928 du fchier /etc/lvm/lvm.conf :

$ nano +928 /etc/lvm/lvm.conf
....
use_lvmetad = 0
....

Redémarrer les services lvmetad pour faire prendre en compte :

# systemctl restart lvm2-lvmetad.service
# systemcl restart lvm2-lvmetad.socket