Créer une partition virtuelle cryptée avec TrueCrypt
Source :
http://doc.ubuntu-fr.org/truecrypt
TrueCrypt est multiplateforme ça peut donc être intéressant de l'utiliser pour pouvoir récupérer simplement ses données sous windows par exemple.
J'ai pour ma part utilisé la version GTK de
TrueCrypt et je crée un lanceur sous XFCE pour monter simplement et manuellement ma partition :
truecrypt /path/to/mon_fichier_truecrypt /path/to/mountpoint
Autre méthode (plus "manuelle")
Sources :
J'ai réalisé ce tuto sur Ubuntu 9.10 Karmic Koala
Créer la partition
Il faudra éxécuter les commandes suivantes en root :
sudo su
Initialiser quelques variables nécessaires pour la suite :
USER=test
ENCRYPTEDDATADIR=encrypted-datas
Insertion des modules
modprobe cryptoloop
modprobe sha256
Ajouter ces 2 modules au fichier /etc/modules pour que tout fonctionne lors du prochain reboot
Création du fichier où seront stockées les données
dd if=/dev/zero of=.${ENCRYPTEDDATADIR} bs=1M count=10
chown $USER. .${ENCRYPTEDDATADIR}
Formatage du fichier
losetup -e serpent /dev/loop0 .${ENCRYPTEDDATADIR} # serpent pour l'algorithme correspondant, vous avez aussi twofish, blowfish, aes, ...
mkfs -t ext3 /dev/loop0
Monter la partition
mkdir ${ENCRYPTEDDATADIR}
chown $USER. ${ENCRYPTEDDATADIR}
mount /dev/loop0 ${ENCRYPTEDDATADIR}
cd ${ENCRYPTEDDATADIR}
Démonter la partition
umount ${ENCRYPTEDDATADIR}
losetup -d /dev/loop0
Accéder aux données
losetup -e serpent /dev/loop0 .${ENCRYPTEDDATADIR}
mount /dev/loop0 ${ENCRYPTEDDATADIR} # ne pas se tromper de mot de passe, ni d'algorithme.
Rendre la solution plus ergonomique
Créer un script pour le montage / démontage de la partition
#!/bin/bash
ENCRYPTEDDATADIR=$2
LOGFILE=.${ENCRYPTEDDATADIR}-mount.log
if [ -z $1 ] || [ -z ${ENCRYPTEDDATADIR} ]
then
echo "Usage : $0 username encrypted-data-directory-name [forceumount]"
echo "This script will mount .encrypted-data-directory-name encrypted file in encrypted-data-directory-name (in your home directory)"
exit 1
fi
FORCEUMOUNT=0
if [ ! -z $3 ] && [ $3 == 'forceumount' ]
then
FORCEUMOUNT=1
fi
if [ ! -f /home/$1/.${ENCRYPTEDDATADIR} ]
then
echo "/home/$1/.${ENCRYPTEDDATADIR} encrypted file should exist"
exit 1
fi
if [ ! -d /home/$1/${ENCRYPTEDDATADIR} ]
then
echo "/home/$1/${ENCRYPTEDDATADIR} directory should exist"
exit 1
fi
if [ -f /home/$1/${LOGFILE} ] || [ $FORCEUMOUNT -eq 1 ]
then
echo "***************************************************"
echo "Demontage de la partition ${ENCRYPTEDDATADIR}"
echo "***************************************************"
sudo umount /home/$1/${ENCRYPTEDDATADIR}/
sudo losetup -d /dev/loop0
rm -f ${LOGFILE}
else
echo "***************************************************"
echo "Montage de la partition .${ENCRYPTEDDATADIR} dans ${ENCRYPTEDDATADIR}"
echo "***************************************************"
[ -f /home/$1/${ENCRYPTEDDATADIR} ] && exit
echo "Mot de passe d'acces a vos donnees"
sudo losetup -e serpent /dev/loop0 /home/$1/.${ENCRYPTEDDATADIR} || exit
sudo mount /dev/loop0 /home/$1/${ENCRYPTEDDATADIR}/ || exit
> ${LOGFILE}
fi
Créer un lanceur pour ce script avec les paramètres adéquats. Si nécessaire ajouter les droits aux utilisateurs devant éxécuter ce script dans le fichier /etc/sudoers comme indiqué dans ce tuto cité dans mes sources :
http://ntic.lapetina.org/linux/