===== Installer Slackware sur une partition LVM chiffrée =====
Installer [[http://slackware.com/|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 [[http://fr.wikipedia.org/wiki/LVM|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 -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 :
* -c : efface le répertoire ''/boot/initrd-tree'' s'il existe
* -l fr : donne le clavier français au boot (c'est mieux)
* -k 2.6.33.4 : version du noyau que nous voulons utiliser (voir dans /lib/modules)
* -m ext4 : le système de fichier "ext4" étant compilé en module, il faut le préciser
* -f ext4 : car notre partition ''/dev/slack/root'' est formaté en "ext4"
* -r /dev/slack/root : notre partition ''root''
* -C /dev/sdx2 : la partition chiffrée
* -L : indique que nous utilisons des partitions LVM.
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.