Voici quelques réponses à des questions que vous pourriez vous poser :
Truecrypt demande un noyau récent, ce qui est contradictoire avec la politique de stabilité Debian,
d'où la nécessité de mettre à jour le noyau pour Truerypt.
Pour partir du bon pied, mettons tout d'abord à jour la liste des paquets disponibles :
# apt-get update
Puis, recherchons le dernier noyau disponible :
# apt-cache search linux-image
Là, cela se complique un petit peu : il va falloir choisir parmi la liste de paquets proposés et cela est dépendant de votre machine.
C'est le nom du paquet va déterminer votre choix, fonction de votre configuration.
Un nom de noyau est composé de la facon suivante :
linux-image-[version].[revision_majeure]-[revision_mineure]-[architecture]
par exemple :
linux-image-2.6.8-3-686
Après avoir choisi votre paquet, installer-le au moyen de la commande :
# apt-get install [nom_de_l'image]
Vous devrez redémarrer à ce stade pour booter sur sur le nouveau noyau (il faudra le sélectionner au démarrage, via le boot loader).
Le kernel plus ancien pourra alors être retiré par la commmande :
# apt-get remove [nom_de_l'ancienne_image]
Pour cette opération délicate, je vous propose directement d'utiliser un petit script que j'ai rédigé :
#!/bin/bash # install source of current runing kernel using apt (written for debian) set -e versext=`uname -r` version=${versext/-.*$//} # if it already here, keep archive... [ -f /usr/src/linux-source-$version.tar.bz2 ] || apt-get install linux-source-$version cd /usr/src/ # ...but we don't want to keep an old directory ! [ -d linux-source-$version ] && rm -rf linux-source-$version tar -xvjf linux-source-$version.tar.bz2 ln -sf linux-source-$version linux # copy current config into directory cp /boot/config-$versext ./linux/.config
Copiez le tout dans un fichier texte – ici: install_sources.sh –, activez les droits d'executions et lancez-le. Le tout en root :
# chmod +x install_sources.sh
# ./install_sources.sh
Attention ! Ce script fonctionnera uniquement si vous utilisez une version stable de Debian et son noyau actuel.
Dans le cas contraire, il vous faudra télécharger les sources correspondant à votre noyau sur kernel.org.
Si d'une façon ou d'une autre, le premier script ne marchait pas, essayez celui-ci :
#!/bin/bash # install source of current runing kernel asking kernel.org (written for debian) set -e version=`uname -r | sed s/-[^-]*$// | sed s/-/./g` link="http://www.kernel.org/pub/linux/kernel/v2.6/" filename=linux-${version}.tar.bz2 cd /usr/src # if it already here, keep archive... [ -f $filename ] || wget ${link}${filename} # ...but we don't want to keep an old directory ! [ -d linux-${version} ] && rm -rf linux-${version} tar xvjf $filename ln -sf linux-${version} linux # copy current config into directory cp /boot/config-$(uname -r) ./linux/.config # run the *make oldconfig* cd linux make oldconfig
Copiez le tout dans un fichier texte – ici: install_sources_other.sh –, activez les droits d'executions et lancez-le. Le tout en root :
# chmod +x install_sources_other.sh
# ./install_sources_other.sh
La commande pour l'insallation du paquet :
# apt-get install dmsetup
Ce paquet est nécessaire pour lancer Truecrypt.
Vous l'avez probablement déjà fait, sinon il va falloir récupérer les sources depuis le site officiel.
Ensuite, il vous suffit d'extraire l'archive, de vous placer dans le répertoire ainsi extrait...
# tar xvzf truecrypt-[version]-source-code.tar.gz --directory /tmp/
# cd /tmp/truecrypt-[version]
...et, de lancer les scripts de construction et d'installation :
# ./Linux/build.sh && ./Linux/install.sh
Il va ensuite falloir vérifier que le module de Truecrypt est bien chargé, en utilisant cette commande :
# modprobe -l | grep truecrypt
(Une ligne identifiant le module truecrypt doit apparaitre, confirmant que la compilation a correctement fonctionné)
Après réussite, nous pouvons effacer le répertoire temporaire :
# rm -rf /tmp/truecrypt-[version]
Après avoir créé vos volumes chiffrés (commande truecrypt -c), nous allons pouvoir les faire charger automatiquement au démarrage de la machine.
Voici un script perl qui nous permettra de saisir un mot de passe de facon masqué.
Contrairement à la commande read, celui-ci est capable de gérer tous les caractères spéciaux.
#!/usr/bin/perl -w print getpass(); sub getpass { open STDIN, "/dev/tty"; system "stty -echo"; my($c, $pwd); $pwd = ""; while (($c = getc(STDIN)) ne '' and $c ne "\n" and $c ne "\r") { $pwd .= $c; } system "stty echo"; print STDERR "\n"; return $pwd; }
Récupérez-le dans un fichier texte – ici: read_shadow.pl –, activez les droits d'éxécutions étant root puis copier le vers /usr/bin/readpasswd
# chmod +x read_shadow.pl
# cp read_shadow.pl /usr/bin/readpasswd
Il s'agit du script qui chargera les partitions par groupe, il est inspiré du fichier /etc/init.d/skeleton
#!/bin/bash # truecrypt automount 'deamon script', # written by Julien Blitte, 2006-10-10 # # based on skeleton 2.58-28. set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="Truecrypt automount" NAME=tcamount SCRIPTNAME=/etc/init.d/$NAME test -x /usr/bin/truecrypt || exit 0 # # Function that starts the daemon/service. # d_start() { for i in /etc/fstcam[0-9] do echo -n "volume group n°${i: -1}, enter password (else press return): " mdp=`readpasswd` if [ "$mdp" = "" ] then echo "aborded (empty password)." continue fi for p in `grep -v "^[[:space:]]*\(#\|$\)" $i` do what=$(echo $p | cut -f 1 -d ':') where=$(echo $p | cut -f 2 -d ':') who=$(echo $p | cut -f 3 -d ':') [ -d $where ] || mkdir $where # si ca match : on monte la partition if [ -d $where ]; then echo " * mouting $where..." sudo -u $who truecrypt -u $what $where -p "$mdp" 2> /dev/null fi done mdp="" done } # # Function that stops the daemon/service. # d_stop() { for i in `truecrypt -l | cut -f 1 -d ' '` do echo " * umounting $i..." truecrypt -d $i done } case "$1" in start) echo "Starting $DESC: $NAME" d_start ;; stop) echo "Stopping $DESC: $NAME" d_stop ;; restart|force-reload) echo "Restarting $DESC: $NAME" d_stop sleep 1 d_start ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0
Récupérez-le dans un fichier texte – ici: deamon.sh –, activez les droits d'éxécutions étant root et puis copier le vers /etc/init.d/tcamount
# chmod +x deamon.sh
# cp deamon.sh /etc/init.d/tcamount
Avec notre script pseudo-démon, nous pouvons générer jusqu'a 10 groupes de partitions, un groupe ayant le même mot de passe pour l'ensemble de ses partitions.
Ils sont stoqués dans /etc/ et portent le nom fstcam0 ... fstcam9
Chaque fichier est structuré de la façon suivante :
Voici un exemples avec deux groupes :
# ce groupe sert a chiffrer des homes /dev/hda1:/home/boss:boss /dev/hda2:/home/invite:invite
# ce groupe sert a chiffrer des donnees sensibles /dev/hdb1:/bdd-data:postgres /dev/hdc1:/var/mail:mail
Nous pouvons tester notre script via la commande :
# /etc/init.d/tcamount start
Si cela fonctionne, on peut alors définir des liens pour l'ensemble des runlevels* :
# update-rc.d tcamount defaults
*Un runlevel correspond à un changement d'état de la machine : démarrage graphique, arrêt, reboot, démarrage en 'recovery mode'...
Ce sont ces liens symboliques qui appeleront le scripts au bon moment pour monter/démonter les disques.
La réponse devrait ressembler à :
Adding system startup for /etc/init.d/tcamount ...
/etc/rc0.d/K25tcamount -> ../init.d/tcamount
/etc/rc1.d/K25tcamount -> ../init.d/tcamount
/etc/rc6.d/K25tcamount -> ../init.d/tcamount
/etc/rc2.d/S25tcamount -> ../init.d/tcamount
/etc/rc3.d/S25tcamount -> ../init.d/tcamount
/etc/rc4.d/S25tcamount -> ../init.d/tcamount
/etc/rc5.d/S25tcamount -> ../init.d/tcamount