Chiffrer votre système manuellement avec le swap aléatoire

Afin de protéger au mieux vos données personnelles, il peut être nécessaire de chiffrer vos partitions utilisateurs. En effet, si via le système il est impossible d’accéder aux fichiers qui ne vous appartiennent pas, un simple passage sur un live cd permet d’accéder à n’importe quel fichier de votre système. Le chiffrement de partition permet d’éviter ça. Il est aussi possible en live cd de changer votre mot de passe utilisateur et si vous en avez un différent pour le super utilisateur root, c'est également possible. Ce genre de pratique vous protège contre les accès physiques à votre ordinateur.

Ubuntu intègre en standard les outils nécessaires à une gestion simple de votre sécurité.

N.B. Que ce tutoriel peut s'appliquer à d'autres systèmes GNU/Linux.

Le premier point dont il faut tenir compte est la structure de vos partitions, le type de BIOS et quel genre de table des partitions que vous allez choisir. Quelques références sur le sujet se trouvent en bas de la page. Je vais aussi vous faire installer les modules lvm et cryptsetup.

N.B. Que ce tutoriel suppose que vous travaillez avec un disque en GPT et un BIOS de type Unified EFI. Vous aurez quelques recherches à faire de ce côté avant de continuer.

Avec le gestionnaire de disque d'Ubuntu changer votre table des partitions de MBR a une en GPT. Si votre disque dur n'est pas déjà de ce type.

Voici la structure des partitions que je vous conseille de créer avec le logiciel Gparted(GNOME Partition Editor) en tenant compte de ce qui se trouve plus haut :

sda1 : 1Mo de type Unformated avec comme flag bios_grub.

sda2 : 500Mo en ext4 pour accueillir GRUB.

sda3 : De la taille de votre choix qui sera l'espace d’échange swap.

sda4 : Partition pour la racine système / elle aussi en ext4, qui sera de la taille de votre choix.

Si Gparted n'est pas installé faite-le avec cette commande :

sudo apt-get install gparted
N.B. Qu'il vous est impossible de chiffrer la partition de GRUB. Sinon, votre nouveau système ne pourra pas démarrer.
N.B. Que ce tutoriel prend en compte que vous voulez un swap chiffré aléatoirement à chaque redémarrage.

Préparations de votre disque avant installation

Démarrer votre distribution en live.

Ouvrez un terminal et placez-vous en root permanent :

sudo su

Lancez un update de la liste des paquets :

apt-get update

Installez les outils nécessaires :

apt-get install lvm2 cryptsetup

Pour la suite, il vous faudra vous informer sur les types de chiffrement. Moi j'utilise un chiffrement de type aes-xts-plain64 :

cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 /dev/sda4

La commande cryptsetup vous invitera à taper YES en majuscule pour continuer. Ensuite, il vous demandera de choisir un passphrase. Je vous conseille de mettre quelque chose de difficile à trouver et de mettre 64 caractères en tout. Prévoyez aussi le type de clavier que vous utilisez. Sinon, vous pourrez avoir de mauvaise surprise…

Il vous faut maintenant ouvrir la partition chiffrée comme suit :

cryptsetup luksOpen /dev/sda4 crypt

Cryptsetup vous demandera votre passphrase choisi précédemment…

Formatez la partition chiffrée en ext4 :

mkfs.ext4 /dev/mapper/crypt

Installation de la distribution

Maintenant, fermez le terminal et lancer l'installation.

Durant l'installation, choisissez le partitionnement manuel.

Suivez les trois prochaines étapes pour configurer l'installation sur les partitions créées précédemment.

1. Prenez la partition montée sur /dev/mapper/crypt pour / (votre racine système…).

2. Ensuite, sélectionnez la partition pour GRUB qui doit être montée sur /boot.

3. Sélectionnez la partition pour le swap.

Finalement, suivez les instructions de l'installateur et choisissez d'installer le chargeur d’amorçage du disque sur sda.

N.B. A la fin de l'installation, choisissez de continuer a tester la distribution.

Dernières manipulations avant redémarrage

Ouvrez deux terminaux et placez-vous en root permanent comme ceci :

sudo su
N.B. Un des deux sert à travailler avec le chroot(votre nouvelle installation) et l'autre avec le système live.

Maintenant, placez-vous dans le répertoire ou nous allons monter votre nouvelle installation système avec la commande qui suit :

cd /mnt

Créez un répertoire pour monter votre système :

mkdir root

Si votre partition système (montée sous le nom de crypt dans mon cas) et celle du boot(qui par exemple est sur sda2) sont tout les deux de type ext4 tapez ces commandes :

mount -t ext4 /dev/mapper/crypt root
mount -t ext4 /dev/sda2 root/boot

Notez bien qu'il est possible que l'internet ne soit pas fonctionnel quand vous allez changer de root. Pour ne prendre de chance lancer cette commande :

cp /etc/resolv.conf /mnt/root/etc/resolv.conf

Changez de root, pour permettre de travailler sur votre installation :

sudo chroot root

Testez si la connexion fonctionne avec un ping sur Google :

ping www.google.com

Montez ce qui est nécessaire avant de poursuivre :

mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t devpts devpts /dev/pts

Lancez l'update des paquets et installez lvm et cryptsetup :

apt-get update
apt-get install lvm2 cryptsetup

Maintenant, ouvrez Gparted une autre fois. Désactivez le swap. Supprimez-le et recréer une partition de type Unformated. Sinon, à chaque démarrage sur un disque live il pourra être utilisé. Même que certaines données concernant votre système pourraient être récupérées. Ce qui peut causer des problèmes de sécurité… En plus votre swap(chiffré aléatoirement) risque d'avoir des problèmes de montage.

Dans un autre terminal lancez cette commande :

cryptsetup -d /dev/urandom create cryptswap /dev/sdXX

Remplacer les deux XX par la partition en question (ex. sda3)…

Dans le même terminal lancez cette commande :

blkid

Repérez l'UUID de votre partition système.

Dans l'autre terminal. Avec votre nouvelle installation montez dans chroot. Ouvrez nano et éditez le fichier crypttab :

sudo nano /etc/crypttab

Insérez-y l'UUID obtenu avec la commande blkid dans le fichier ouvert comme ceci :

crypt UUID=XXXX none luks
N.B. les XXXX doivent être remplacés par l'UUID.

Rajoutez au tout début du fichier une ligne supplémentaire pour le swap. Par exemple :

cryptoswap /dev/sdXX /dev/urandom cipher=aes-xts-plain64:sha512,hash=ripemd160,size=512,swap

Remplacez les deux XX par la partition correspondante.

Il faut maintenant monter le swap dans fstab :

sudo nano /etc/fstab
/dev/mapper/cryptoswap 	none	swap	sw	0	0

Après ces modification il vous faut updater le système d'initiation comme ceci :

update-initramfs -u

Assurez-vous d'avoir indiqué à votre fichier crypttab de monter la partition système, comme indiqué un peu plus haut.

Si vous n'avez pas obtenu de message d'erreur c'est que la dernière commande s'est bien passée. Vous pouvez finalement redémarrer votre système. ;-)

Une dernier chose en vous laissant. Si vous voulez installer plusieurs systèmes chiffrés, utilisez GRUB2. Il est plus approprié.. Le but est d'avoir une partition /boot différente par système. Le logiciel GRUB Customizer peut vous aider. Rajouter tout simplement des scripts de chargeur en chaîne au GRUB principal.

Si vous devez réinstaller une distribution

S'il vous est nécessaire un jour de tout réinstaller votre ou vos système et que vous ne changer pas les tailles de vos partitions. Vous n’êtes pas obliger d'effacer votre disque dur avec la commande shred. Au cas ou vous serez obliger, voici la commande qui vous sera utile et qui utilise 35 pass :

sudo shred -n 35 /dev/sda

La raison pour laquelle il ne faut pas l'utiliser dans l'autre cas. C'est tout simplement parce que les même espace seront chiffrés sur votre disque dur… Donc, c'est inutile.

Au cas où vous redémarrez votre ordinateur après l'installation

Il peut vous arrivez de ne pas y penser et que vous sélectionnez "Redémarrer maintenant". Pas de panique. Il vous suffit juste de redémarrer votre session live et monter votre système comme cela :

sudo su
apt-get update
apt-get install lvm2 cryptsetup
cryptsetup luksOpen /dev/sda4 crypt

Tapez votre passphrase que vous aviez choisi avant l'installation.

Ensuite, reprenez le tuto à l'étape 1.3

Dual boot avec Windows 7 chiffré via VeraCrypt

Il est recommandé de prendre un disque dur au complet pour Windows 7. Commencez par installer Windows sur le disque sda. Ensuit, installez Linux comme indiqué plus haut MAIS sur sdb. Ensuite prenez le disque de restauration de VeraCrypt pour restaurer le boot de Windows.

Finalement, au démarrage de l'ordinateur, devant l'écran de boot de VeraCrypt, tapez sur la touche Esc pour basculer directement sur GRUB. Vous avez quelques recherche à faire de ce côté. La référence à VeraCrypt se trouve en bas de cette page.

Dual boot avec d'autre système Linuxiens chiffrés

Il faut installer un chargeur en chaine sur la première partition bootable qui contient une installation de GRUB et il faut impérativement créer une partition /boot pour un autre GRUB et ce pour chaque système qui est rajouté sur la machine. La marche à suivre est pour GRUB2.

Il faut éditez en root le fichier 40_custom qui se trouve sur /etc/grub.d/ comme suit :

sudo nano /etc/grub.d/40_custom

N'enlevez rien de ce qui se trouve déjà dedans ce fichier. Rajouter seulement vos modifications à la fin.

Voici un exemple de chargeur en chaine que vous pouvez rajouter au fichier 40_custom :

menuentry "Kali Linux" {
	insmod chain
	insmod ext2
	set root=(hd0,gpt7)
	chainloader +1
}

Explication :

La première ligne ajoute le nom de la distribution choisi au menu de GRUB.

La deuxième ligne indique insmod chain et elle signifie qu'il s’agit d'un chargeur en chaine.

La troisième ligne indique insmod ext2 initie la partition en ext2.

La ligne set root=(hd0,gpt7) indique la partition ou se trouve l'autre GRUB installé(hd0 signifie qu'il s’agit du disque principale sda (0 = a, 1 = b, 2 = c, & etc). La numérotation par nombre commence avec le chiffre 0. gpt7 indique que la partition est de type GUID Partition Table mais attention lors de l'identification des numéros de partition. Car, elles débutent à *1*. Ça ne se note pas comme pour les numéros de disque dur…)

La dernière ligne chainload redirige vers l'autre partition.

N.B. Qu'il existe beaucoup de variantes dans ce procéder. Je vous conseil de faire une recherche sur le Web pour obtenir plus d'informations sur le sujet.

Quand vous avez fini d'éditer le fichier 40_custom lancer une mise à jour de GRUB comme suit :

sudo update-grub

Finalement, redémarrer votre ordinateur pour constater les changements.

N.B. Que si vous n'avez pas changer la valeur du paramètre GRUB_TIMEOUT=0 pour une valeur plus élevé vous ne verrez pas le menu de boot à moins de tenir la touche Shift durant le démarrage. Pour changer ce paramètre il faut éditer le fichier /etc/default/grub et relancer une autre fois la mise à jour de GRUB.

update-initramfs disabled on read-only media

Il peut vous arriver d'obtenir ce message d'erreur lors de l'exécution de la command update-initramfs -u.

Il faut tout simplement lancer directement l'update du module de cette manière ;

sudo /usr/sbin/update-initramfs.orig.initramfs-tools -u

Cela peut vous arriver lors de l'installation de Debian ou de Kali Linux.

Je n'ai pas noté cette erreur sur une autre distribution…

Issues possible

=== '_' === Si vous obtenez ce genre de message d'erreur veillez formatez la partition en ext4 avec la commande qui suivra :

mount: wrong fs type, bad option, bad superblock on /dev/mapper/kali, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so

mkfs.ext4 /dev/mapper/crypt

Kyzis le style est un Easter Eggs, mais pas l'information.

Réponse de Kyzis… :

Si vous obtenez ce genre de message c'est que vous avez sauté une des étapes décrite plus haut…

TrueCrypt n'étant plus d'actualité, utilisez VeraCrypt.

Il vous est aussi possible de monter une partition (ou disque) créé avec TrueCrypt à l'aide de VeraCrypt.

Voir les liens plus bas pour la page officiel de téléchargement de VeraCrypt.

* Fr : Reference sur cryptsetup : cryptsetup

* Fr : Reference sur GRUB 2 : grub-pc

* Fr : Reference sur GRUB Customizer : grub-customizer

* Fr : Reference sur les BIOS : Basic_Input_Output_System

* Fr : Reference sur les table de partition en GPT : GUID_Partition_Table

* Fr : Comment réinstaller GRUB ? : comment_reinstaller_grub

* Ang : HOWTO: Purge and Reinstall Grub 2 from the Live CD : http://ubuntuforums.org/showthread.php?t=1581099

* Ang : Truecrypt : http://www.truecrypt.org/downloads

* Ang : VeraCrypt : https://www.veracrypt.fr/en/Home.html

* Ang : GNU GRUB Manual 2.02 https://www.gnu.org/software/grub/manual/grub/grub.html

* Ang : Gparted (GNOME Partition Editor) https://gparted.org/


Kyzis 2013-2019

  • chiffrement_manuel.txt
  • Dernière modification: Le 21/02/2020, 10:33
  • (modification externe)