Ce tutoriel décrit une méthode pour améliorer la sécurité de vos données personnelles ou professionnelles, non pas lorsque votre ordinateur est allumé, mais lorsque celui-ci est éteint, dans le cas d'une perte ou d'un vol d'un ordinateur portable, par exemple.
Il faut tenter de rendre le disque dur illisible pour toute personne non-autorisée.
Une phrase de chiffrement "passphrase" sera la seule clef pour y accéder. Il ne faut donc ni la perdre, ni la divulguer.
Cela va chiffrer l'intégralité des données, mises à part celles contenues dans le /boot, en une seule fois, il ne faudra donc qu'une seule fois "montrer patte blanche". Sans la passphrase, Il ne sera pas possible d'accéder aux données utilisateur (/home), aux différents fichiers temporaires (/tmp , swap), ainsi que d'intervenir sur le système.
Un système puissant sera un plus : le chiffrement logiciel consomme des ressources à chaque accès au disque.
L'effacement total des données est très longue (mais optionnelle).
Choisir le mode de partitionnement manuel :
2 Go pour un /boot en ext2.
Séparer le /boot va simplifier le démarrage de l'ordinateur, aucune partie de Grub-PC n'étant chiffrée.
Il faut penser à activer le flag "boot" sur cette partition, si grub est placé sur /dev/sda1 et non pas sur /dev/sda, pour le multiboot par exemple.
Le maximum de partitions primaire étant à 4, il est possible de ne pas utiliser de partition étendue, mais une seconde partition primaire. Néanmoins utiliser directement une partition logique dans partition étendue permet de s'assurer de ne pas tomber sur ce maximum de 4, si l'on souhaite ne pas chiffrer de cette manière tout le disque. Par exemple dans le cas d'un multiboot ou d'un espace non chiffré sur le disque.
Si vous souhaitez par la suite ajouter des partitions qui n'utiliseront pas ce système de cryptographie, il faut au préalable créer la partition à chiffrer.
après le 1er reboot vous pourrez rajouter une passphrase qui se mettra dans le premier emplacement (key slot) disponible à l'aide de la commande:
cryptsetup luksAddKey /dev/sda5
cryptsetup luksDump /dev/sda5
Dans cet exemple on supprime la clef présente dans le 2ème slot.
cryptsetup luksKillSlot /dev/sda5 2
Si l'entête (header) du conteneur LUKS est endommagé, il ne sera plus possible d’accéder aux données.
Il est donc important de sauvegarder l'entête dans un endroit sur.
Le fichier contenant la sauvegarde de l’entête est nommé ici machine-header
cryptsetup luksHeaderBackup --header-backup-file machine-header /dev/sda5
cryptsetup luksHeaderRestore --header-backup-file machine-header /dev/sda5
Pour ne pas avoir à taper une passe-phrase pour chaque disque, on va se débrouiller pour que le 2e disque se déchiffre tout seul. Bien sur uniquement si on a réussi à déchiffrer le 1er.
On va chiffrer à l'aide d'une passe-phrase (la même que pour le disque 1) et formater en ext4 le 2e disque.
cryptsetup luksFormat /dev/sdb1 cryptsetup luksOpen /dev/sdb1 RAB mkfs.ext4 /dev/mapper/RAB cryptsetup luksClose RAB
Création de /root/keyfile
rempli aléatoirement, et mise en place de droits plus restrictif.
dd if=/dev/urandom of=/root/keyfile bs=1024 count=4 chmod 400 /root/keyfile
Je le met dans le dernier slot.
cryptsetup luksAddKey /dev/sdb1 /root/keyfile --key-slot 7
Ajout dans crypttab
#… sdb1_crypt UUID=eba3e3fa-bbbb-3333-cccc-7f4f601fbc4c /root/keyfile luks
Ajout dans fstab
#… UUID="13907d57-1111-2222-91f6-40e4b026fba2" /disque2 ext4 defaults 0 2
Et voilà
lors du boot sera demandée une passe-phrase pour déchiffrer le 1er disque.
Le 2nd pourra alors accéder à son fichier clef keyfile
et se déchiffrer automatiquement.
Il vous faudra bien évidement booter sur un système prenant en charge dm-crypt et LVM.
Après avoir démarré, il faut entrer les commandes :
cryptsetup luksOpen /dev/sdaX un_nom_pour_la_partition
Pour monter la partition chiffrée ;
vgscan vgchange -ay /dev/VG/...
(il n'y aura certainement que votre partition dans ce dossier, activée grâce à vgscan) OU
lvchange -ay /dev/mapper/sdaX_crypt
lvs
Pour activer le lvm ;
mkdir <point_de_montage> mount /dev/VG/... /<pt_de_montage>
Et vous devriez pouvoir y accéder !
Cette méthode permet de s'assurer un bon niveau de sécurité, même si rien n'est infaillible.
Le chiffrement du seul /home avec ecryptfs comme proposé dans une installation desktop standard ne permet pas d'assurer le même niveau de sécurité même si cela peut constituer une bonne alternative. De la même manière, chiffrer uniquement son /home avec un conteneur LUKS, est possible. Les performances (I/O système) ne seront pas trop dégradées, tout en ayant ses données sécurisées. Mais il faut garder en tête que pourrait transiter dans un espace temporaire ou en swap vos données en clair.
Contributeurs principaux : Ool