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