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

Tutoriel prenant en compte certains facteurs

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 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 lvm et cryptsetup.

N.B. ce tutoriel suppose que vous travaillez avec un disque en GPT et un BIOS de type Unified EFI. Vous aurez quelque recherche à 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 en tenant compte de ce qui se trouve plus haut :

sda1 : 1Mo 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 le root "/" elle aussi en ext4, pour votre système, qui sera de la taille de votre choix.

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. ce tutoriel prend en compte que vous voulez un swap chiffré aléatoirement à chaque redémarrage.

Démarrer votre distribution en live.

Ouvrez un terminal et placez-vous en root permanent :

sudo su

Lancez un update de la liste de 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

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. Vous pourrez avoir de mauvaise surprise…

Il vous faut maintenant ouvrir la partition chiffrée.

cryptsetup luksOpen /dev/sda4 crypt

Formatez la partition chiffrée en ext4.

mkfs.ext4 /dev/mapper/crypt

Maintenant, fermez le terminal et lancer l'installation. Durant l'installation choisissez le partitionnement manuel. Prenez la partition monter sur /dev/mapper/crypt pour /. Sélectionner la partition pour GRUB qui doit être monter sur /boot. Sélectionner le swap. Suivez les instructions de l'installateur. Choisissez d'installer le chargeur d’amorçage du disque sur sda.

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

Ouvrez deux terminaux et placez-vous en root permanent.

Un des deux sert à travailler avec le chroot et l'autre avec le système live.

Maintenant, il vous faut monter votre nouvelle installation dans /mnt pour mettre en place le système de démarrage.

cd /mnt

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

mkdir root

Si votre partition système (monter 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. Si c'est la cas, tapez cette commande :

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

Changer de root :

sudo chroot root

Testez la connexion avec un ping sur Google :

ping www.google.com

Monter 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 ceci au besoin.

apt-get update
apt-get install lvm2 cryptsetup

Maintenant, ouvrez Gparted une autre fois. Désactiver le swap. Supprimez-le et recréer une partition de type "Unformated". Sinon, il sera utilisé par un système live. Ce qui peut causer des problèmes de sécurité… En plus votre swap risque d'avoir des problèmes de montage.

Lancez cette commande sans le chroot :

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

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

Encore sans le chroot lancez cette commande :

blkid

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

Avec votre nouvelle installation monter dans chroot. Ouvrez nano et éditer 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 remplacer 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 tout se passe bien avec la dernière commande. 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 faut 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

Si 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 pourquoi il ne faut pas l'utiliser dans l'autre cas. C'est tout simplement parce que les même espace seront chiffrer sur votre disque dur… Donc, c'est inutile.

Au cas ou vous redémarrer votre odinateur 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 systeme 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, reprennez le tuto ou vous été rendu un peu plus haut…

Dual boot avec Windows 7 chiffré

Il est recommandé de prendre un disque dur au complet pour Windows 7. Après avoir installé Windows sur sda. Installez linux comme indiqué plus haut sur sdb. Ensuite prennez le disque de restauration pour rajouter GRUB. Finalement au démarrage de l'ordnateur. Devant Truecrypt en tappant Esc vous allez vous retrouvez sur GRUB. Vous avez quelques recherche à faire de ce côté. La référence à Truecrypt 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 à 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/. Vous pouvez le faire comme cela :

sudo nano /etc/grub.d/40_custom

N'enlevez rien de ce qui se trouve déjà dedans ce fichier.

Voici un exemple de chargeur en chaine :

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

Il suffit de rajouter ce qui précède à la fin du fichier 40_custom et de le sauveguarder.

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

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

La troisième ligne "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 sagit du disque principale sda (0 = a, 1 = b, 2 = c, et etc). Le notage 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, pour eux elles débutent à 1. Ça ne se note pas comme pour les numéros de disque dur.

La dernière ligne chainload 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 optenir plus d'informations sur le sujet.

Le chainload est seulement suppporté sur les PC BIOS et les platforms EFI.

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

sudo update-grub

Ensuite, 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 à moin de tenir la touche Shift durant le démarrage. Pour changer ce paramètre il faut éditer le fihcier /etc/default/grub et relancer une autre fois la mise à jour de Grub.

Rapport d'erreur lors du chiffrement manuel

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.

Issus 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.

Autre information

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.

Liens

* Reference sur cryptsetup : cryptsetup

* Reference sur GRUB 2 : grub-pc

* Reference sur GRUB Customizer : grub-customizer

* Reference sur les BIOS : Basic_Input_Output_System

* Reference sur les table de partition en GPT : GUID_Partition_Table

* 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://veracrypt.codeplex.com/wikipage?title=Downloads

* Ang : Grub Manuel 2.00 http://​www.gnu.org/​software/​grub/​manual/​grub.html


Kyzis no© 2013-2016

  • chiffrement_manuel.txt
  • Dernière modification: Le 28/04/2018, 11:20
  • (modification externe)