Il faut commencer par installer cryptsetup et par modifier le fichier /etc/fstab en mettant en commentaire les lignes correspondantes à nos partitions sda5 et sda7. Cela permettra de ne plus monter automatiquement ces partitions.

sudo gedit /etc/fstab (faire la modification et enregistrer)

On vérifie que le module qui gère l'algorithme de notre choix est bien présent sur la machine. Si vous le souhaitez, vous pouvez remplacer towfish par un autre de la liste généré par la commande suivante.

sudo modinfo /lib/modules/`uname -r`/kernel/crypto/* | grep ko

Ensuite on formate la partition de données avec l'algorithme de chiffrement que l'on a choisie.

sudo umount /dev/sda7
sudo cryptsetup luksFormat -c twofish -h sha256 /dev/sda7
sudo cryptsetup luksOpen /dev/sda7 c_DATA
sudo mkfs.ext3 /dev/mapper/c_DATA
sudo mount -t ext3 /dev/mapper/c_DATA /mnt/DATA
sudo umount /mnt/DATA
sudo cryptsetup luksClose c_DATA

On crée le script ~/bin/decrypt.sh qui nous permettra d'utiliser une commande pour déchiffrer nos partitions.

touch ~/bin/decrypt.sh

On y met le texte suivant avec gedit par exemple.

#!/bin/sh -e

if [ ! -b /dev/mapper/c_swap ]
then
echo "monte la partition swap chiffree";
sudo cryptsetup -c twofish -d /dev/random -s 128 create c_swap /dev/sda5
sudo mkswap /dev/mapper/c_swap
sudo swapon /dev/mapper/c_swap
fi

if [ -b /dev/mapper/c_DATA ]
then
echo "verrouille la partition DATA";
sudo umount /mnt/DATA
sudo cryptsetup luksClose c_DATA
else
echo "monte la partition DATA chiffree";
sudo cryptsetup luksOpen /dev/sda7 c_DATA
sudo mount -t ext3 /dev/mapper/c_DATA /mnt/DATA
fi

Ensuite on le rend exécutable et on lui donne les droits appropriés.

chmod 755 ~/bin/decrypt.sh
sudo chown root:root ~/bin/decrypt.sh

On finit avec la création de l'alias qui permet de transformer notre script en commande. Il suffit maintenant de taper l'alias dans le terminal pour déchiffrer la partition de données et monter un swap chiffré. En retapant ce même alias on rechiffre en on démonte ces deux partitions.

Ressources complémentaires:

  • http://www.rd.cri74.org/repository/securite/algo_chiffrement.pdf