1. Préparer le système

1.1. Configuration de la disposition de la partition

Votre disque dur (hda) devrait contenir au moins trois partitions :

hda1

cette petite partition (~ 4 Mo) non-chiffrée demandera un mot de passe afin de monter le système de fichiers racine chiffré.

hda2

cette partition chiffrée contiendra votre système de fichiers racine ; assurez-vous qu'elle soit suffisamment grande.

hda3

cette partition contient le vrai système GNU/Linux.

Lorsque vous en serez arrivé là, ni hda1 ni hda2 ne seront plus utilisés. hda3 est l'endroit où votre distribution Linux sera réellement installée ; /usr et /boot doivent tous les deux se trouver sur cette partition.

1.2. Installer Linux-2.4.23

Deux projets principaux travaillent sur l'ajout de capacités de chiffrement fort au noyau : CryptoAPI et loop-AES. Ce guide pratique se base sur loop-AES, car il offre une mise en œuvre de Rijndael en langage assembleur, rapide et très optimisée, et donc des performances maximales aux possesseurs de processeurs IA-32 (x86).

Tout d'abord, téléchargez et décompressez le paquet loop-AES :

wget http://loop-aes.sourceforge.net/loop-AES/loop-AES-v2.0d.tar.bz2
tar -xvjf loop-AES-v2.0d.tar.bz2

Vous devez aussi télécharger et appliquer un correctif aux sources du noyau :

wget http://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.23.tar.bz2
tar -xvjf linux-2.4.23.tar.bz2
cd linux-2.4.23
patch -Np1 -i ../loop-AES-v2.0d/kernel-2.4.23.diff

Configurez la carte du clavier :

dumpkeys | loadkeys -m - > drivers/char/defkeymap.c

Ensuite, configurez votre noyau ; assurez-vous que les options suivantes sont activées :

make menuconfig

    Block devices  --->

        <*> Loopback device support
        [*]   AES encrypted loop device support (NEW)

        <*> RAM disk support
        (4096)   Default RAM disk size (NEW)
        [*]   Initial RAM disk (initrd) support

    File systems  --->

        <*> Ext3 journalling file system support
        <*> Second extended fs support

(note importante : n'activez pas le support du système de fichiers /dev)

Compilez le noyau et installez-le :

make dep bzImage
make modules modules_install
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.23

Si vous utilisez grub comme chargeur de démarrage, mettez à jour le fichier /boot/grub/menu.lst ou /boot/grub/grub.conf :

cat > /boot/grub/menu.lst << EOF
default 0
timeout 10
color green/black light-green/black
title Linux
    root (hd0,2)
    kernel /boot/vmlinuz-2.4.23 ro root=/dev/hda3 vga=4
EOF

Sinon, mettez à jour /etc/lilo.conf et exécutez la commande lilo :

cat > /etc/lilo.conf << EOF
lba32
boot=/dev/hda
prompt
timeout=100
image=/boot/vmlinuz-2.4.23
    label=Linux
    read-only
    root=/dev/hda3
    vga=4
EOF
lilo

Vous devez maintenant redémarrer votre système.

1.3. Installation de util-linux-2.12

Il faut maintenant appliquer un correctif et recompiler le programme losetup afin de lui donner la capacité d'utiliser un chiffrement fort. Ce programme est une composante du paquet util-linux. Téléchargez, décompressez util-linux, puis appliquez-lui le correctif :

wget http://ftp.cwi.nl/aeb/util-linux/util-linux-2.12.tar.gz
tar -xvzf util-linux-2.12.tar.gz
cd util-linux-2.12
patch -Np1 -i ../loop-AES-v2.0d/util-linux-2.12.diff

Afin de pouvoir utiliser des mots de passes de moins de 20 caractères, entrez :

CFLAGS="-O2 -DLOOP_PASSWORD_MIN_LENGTH=8"; export CFLAGS

Si la sécurité est importante pour vous, je vous en prie, n'autorisez pas les mots de passes de moins de 20 caractères. La sécurité a un prix, et l'une des contraintes d'une bonne sécurité est la nécessité d'utiliser des mots de passes longs.

Compilez losetup et installez-le en tant que super-utilisateur (compte root) :

./configure && make lib mount
cp -f mount/losetup /sbin
rm -f /usr/share/man/man8/losetup.8.gz
cp -f mount/losetup.8 /usr/share/man/man8