Table des matières

Installer Slackware sur une partition LVM chiffrée

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.

1. Démarrage du CD/DVD

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.

2. Création des partitions

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.

Il est impératif d'avoir le répertoire /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.

3. Chiffrement de la partition

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.

4. Initialisation de la swap

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

5. Installation de Slackware

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.

N'oubliez surtout pas de bien ajouter /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.

6. Configuration de lilo

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 :

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.