Références
L'installation avec boot chiffré diffère d'une installation standard par trois points :
le partitionnement : l'installation avec boot chiffré décrite ici fait appel à
une partition chiffrée occupant tout le disque
contenant les 4 volumes logiques : boot, root, swap et home. boot et root doivent nécessairement être des volumes séparés, le swap est optionnel, root et home pourraient être regroupés.
l'activation du chiffrement au niveau de grub, effectuée, en console, au cours de l'installation de grub
le déverrouillage automatique de la partition chiffrée par le noyau, effectué, après l'installation du système de base
La description détaillée de ces trois points est décrite ci-après.
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
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.
Lorsque l'étape de partitionnement débute, ouvrir une console avec Alt + F2 (ou Alt + F3) :
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.
Sélectionner "Revenir en arrière", puis Détecter les disques, afin de faire prendre en compte les modifications par l'installateur
Dans le cas d'un disque "vierge" sans MBR, l'écran suivant s'affiche :
Le chiffrage de la partition s'effectue en deux grandes étapes :
La création de la partition chiffrée - à l'issue de cette étape, la partition est indiquée comme " ...... K chiffré inactive" dans la fenêtre "Voici la table de partition ...."
La configuration de la partition qui consiste à créer le container luks chiffré - à l'issue de cette étape, la partition est indiquée comme ".... K chiffré (sdxy_crypt) " dans la fenêtre "Voici la table de partition ...."
Sélectionner l'espace libre du disque
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
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".
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
L'étape suivante consiste à créer les différents volumes logiques boot, root, swap et home
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
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
Lorsque tous les volumes logiques ont été créés, sélectionner Terminer.
Les volumes chiffrés apparaissent désormais sur la table de partition :
Il reste à formater chaque volume logique.
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
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 :
Après le partitionnement, poursuivre l'installation normalement, jusqu'à l'installation 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
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
Une fois l'installation de grub effectuée, achever normalement l'installation.
Au premier démarrage, le mot de passe sera demandé deux fois :
une fois par grub
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.
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
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
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> :
fournir dans <keyfile> l'adresse du fichier de passe de phrase dans initramfs
ajouter l'option keyscript pour fournir le script à exécuter pour utiliser le fichier de phrase de passe
# cat /etc/crypttab
# <target name> <source device> <key file> <options>
sda2_crypt UUID=6905bf4a-d80b-41eb-8e70-16b05d5f8c34 /passphrase luks,discard,keyscript=/bin/cat
# 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).
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