Installer Slackware sur une partition chiffrée permet de protéger son/ses disque(s) dur car il est obligatoire de taper un mot de passe avant même que le système ne démarre. Normalement il faut un mot de passe par partition, mais si l'on veut saisir un seul mot de passe malgré l'usage de plusieurs partitions système, il faut utiliser des partitions LVM.
Le but est donc de créer une partition chiffrée dans laquelle nous allons créer plusieurs partitions LVM.
Je pars du principe que vous savez télécharger la bonne image iso (ou la créer), savez la graver et lancez l'installation. J'imagine également qu'on a juste un disque dur vierge (donc faites attention à vos données ou sauvegarder) en sata appelé /dev/sdx.
Pour cette exemple je me suis servi de la version slackware64-13.1
.
A l'invite du prompt boot
, taper juste Entrée. Il vous sera demandé de taper “1” pour choisir la langue du clavier, je choisis personnellement azerty/fr
, puis taper à nouveau “1” pour valider.
Nous voilà au prompt “slackware login”, taper Entrée pour avoir le shell.
Nous aurons besoin de 2 partitions dans un premier temps : la première sera /boot
, et la deuxième sera la partition chiffrée dans laquelle nous ferons nos partitions LVM.
Lancer fdisk
pour partitionner le disque dur.
fdisk /dev/sdx
Taper “n” pour créer la première partition, puis “1” (son numéro), laisser le champ “First cylinder” vide, et enfin saisissez sa taille soit “+100M” seront bien suffisants pour /boot
.
Maintenant recommencez la procédure pour faire la deuxième partition d'une taille minimum de 4Go (voir 8Go).
Pour enregistrer la configuration des partitions, taper “w” puis Entrée. Nous avons /dev/sdx1
qui sera la partition /boot et /dev/sdx2
que nous allons chiffrer.
/boot
non chiffré car la première chose que fait Linux est de démarrer l'image de boot, d'où l'intérêt de faire minimum 2 partitions.
Nous allons maintenant chiffrer /dev/sdx2
1. Tout d'abord il faut écrire des données aléatoires sur la partition pour complexifier une éventuelle attaque. Cette étape est assez longue mais facultative.
Il y a la méthode classique assez longue :
dd if=/dev/urandom of=/dev/sdx2
ou une méthode alternative plus courte et qui donne le même résultat (il me semble) :
cryptsetup -d /dev/urandom -h plain -s 256 create crypt_sdx2 /dev/sdx2 cat /dev/zero > /dev/mapper/crypt_sdx2 cryptsetup luksClose crypt_sdx2
2. Nous pouvons maintenant chiffrer la partition avec un chiffrement de 256 bits :
cryptsetup -s 256 -y luksFormat /dev/sdx2
Je vous conseille de choisir un vrai bon mot de passe.
3. Déchiffrons cette nouvelle partition avec le mot de passe :
cryptsetup luksOpen /dev/sdx2 crypt_sdx2
Ceci va créer un fichier de type block /dev/mapper/crypt_sdx2
qui correspondra à la partition sdx2 déchiffrée.
4. Créons maintenant nos partitions LVM :
pvcreate /dev/mapper/crypt_sdx2
Ceci initialise la partition.
vgcreate slack /dev/mapper/crypt_sdx2
On créé un disque LVM appelé “slack” utilisant /dev/mapper/crypt_sdx2
.
Il ne reste plus qu'à créer les partitions LVM, nous allons en faire 2 (une pour installer le système, et une swap) :
lvcreate -L 1024M -n swap slack lvcreate -l <taille restante> -n root slack
Pour connaître cette taille restante, taper “vgdisplay” et regarder la ligne Free PE Size
.
Nos partitions sont enfin prêtes.
Comme la partition swap n'a pas l'ID 82 (swap), l'installeur ne va pas la détecter en tant que telle. Nous allons donc l'initialiser nous-même :
mkswap /dev/slack/swap
Nous pouvons enfin lancer l'installation :
setup
1. Aller sur “ADDSWAP” et il vous proposera automatiquement la bonne partition.
2. Ensuite il vous demande de choisir la partition /
, choisissez donc /dev/slack/root
3. Et enfin ajoutez bien /dev/sdx1
pour le répertoire /boot
.
/dev/sdx1
vers /boot
qui est la seule partition non chiffrée, sinon vous ne pourrez pas démarrer votre système.
Pour la suite de l'installation, j'estime que vous êtes assez grand… on se rejoint à la fin de celle-ci. Lorsqu'il vous demandera d'installer lilo
, installez le normalement comme d'habitude, nous reviendrons dessus après.
L'installation terminée, ne relancez pas le PC, il nous faut configurer lilo correctement.
Nous allons créer une image initrd
qui va permettre au système de savoir que l'on veut démarrer sur une partition LVM chiffrée :
chroot /mnt mkinitrd -c -l fr -k 2.6.33.4 -m ext4 -f ext4 -r /dev/slack/root -C /dev/sdx2 -L
un fichier /boot/initrd.gz a été créé.
Expliquons un peu ces options :
/boot/initrd-tree
s'il existe/dev/slack/root
est formaté en “ext4”root
Ensuite éditez /etc/lilo.conf
vi /etc/lilo.conf
et modifiez les lignes suivantes :
image = /boot/vmlinuz root = /dev/slack/root label = Linux read-only
comme ceci
image = /boot/vmlinuz image = /boot/initrd.gz root = /dev/slack/root label = Linux read-only
Et lancez lilo
:
lilo
L'installation est maintenant terminée, nous pouvons quitter chroot
avec un simple exit
et relancer la machine.