samedi 5 février 2011

Chiffrer un disque chiffrer un disque avec TrueCrypt (LINUX)


source korben.info

TrueCrypt est un outil de cryptage de disque à la volée pour Windows XP, 2000, 2003, Vista et bien sûr Windows 7 en 32 bits. Le disque en question peut être un fichier monté comme un disque virtuel ou bien un disque dur existant.

tuto pour linux:


Après ce premier tuto qui explique comment chiffrer une partition système Windows avec Truecrypt, j’en viens directement à mon but premier : Le faire sous linux… enfin, sous Ubuntu pour être plus précis car c’est l’OS que j’utilise…mais vous pouvez probablement l’adapter pour d’autres types de linux.
Pour info, je pensais au début que ça allait être fastoche… Il existe bel et bien une option de chiffrement sous Ubuntu mais cela ne concerne que le répertoire /home. Moi je voulais chiffrer tout le système…
Evidement, avec Truecrypt, ce n’est pas possible alors j’ai du ruser… Cherchant toujours la solution de facilité, j’ai vu que l’Alternate CD d’Ubuntu proposait cela mais au final après plusieurs bidouillage, pas moyen de le faire passer en install via clé USB (oui j’ai bien monté ma clé dans /cdrom mais après il y a eu des erreurs d’écritures qui m’ont gonflé).
Du coup, j’ai décidé de tout faire à la mano… Pour chiffrer votre ordinateur sous Linux, vous devrez donc utiliser LVM et bien sûr formater le disque dur… Attention donc ! J’ai fais la manip plusieurs fois donc je pense qu’elle est assez rodée pour être communiquée mais je ne me prétend pas expert en chiffrement donc si vous avez des remarques et améliorations à apporter à ce modeste tuto, je serai ravi d’éditer mon article pour l’améliorer. Merci.
Allez, c’est partiiiiiiiiiii ! (excusez les captures écrans un peu roots mais j’ai fait ça sur un vrai ordi (NC10) et pas une machine virtuelle)
Première étape, je boote sur le LiveCD ou plus exactement sur une clé USB qui contient l’image du LiveCD (réalisée avec Unetbootin).
Première chose à faire, passer le clavier en français… C’est important si vous ne maitrisez pas les claviers Qwerty. Il faut aller dans Système -> Préférences -> Clavier puis cliquer sur l’onglet « Agencements » et ajouter « France » pour l’appliquer à l’ensemble du système. Comme on est sur un liveCD, ça ne sera pas conservé en mémoire si vous rebootez…
On active ensuite la connexion wifi puis on démarre une console… (Applications -> Accessoires -> Terminal)
SDC11406 Comment chiffrer une partition système Linux (ici Ubuntu)
Je me mets en root :
sudo su
Je lance un update
apt-get update
j’installe ensuite lvm et cryptsetup qui me serviront à chiffrer le disque dur
apt-get install lvm2 cryptsetup
J’active ensuite le module dm-crypt qui servira au chiffrement/déchiffrement
modprobe dm-crypt
On va ensuite créer nos partitions… Il y aura en fait 2 partitions :
  • /dev/sda1 qui ne sera pas chiffrée et qui sera la partoche de boot (/boot). Il faut savoir que c’est là le point faible de cette méthode. Comme /boot n’est pas chiffrée, un attaquant peut placer un keylogger ou un trojan à ce niveau là, qui saura faire ce qu’il faut lorsque vous entrerez ensuite votre mot de passe. La solution de chiffrement LVM est donc suffisante en cas de vol de votre ordinateur mais si vous le prêtez, il est potentiellement faillible… Je reviendrai vers vous dans quelques semaines (mois ?) avec une solution qui réglera ce problème (c’est en cours de développement)
  • /dev/sda2 qui contiendra à la fois la partition système et la partition de swap. Toutes les 2 seront chiffrées
Petite parenthèse, si vous souhaitez supprimer de manière sécurisée ce qui se trouve sur sda, vous pouvez le faire en utilisant la commande shred. Plus vous faites de passes (ici 7), plus ça sera long et sûr qu’on ne pourra rien récupérer ensuite.
shred –n 7 /dev/sda
On va ensuite chiffrer la partition. Avec quel algo ? Et bien pour savoir ce qu’on a notre disposition, il suffit de faire un
cat /proc/crypto
Comme pour le tuto windows, je vais utiliser un AES mais si vous voulez en savoir plus sur les algos de chiffrement (j’suis pas expert là dedans), je vous invite à allez lire ça et ça.
Je vais donc créer la partition chiffrée en aes sur /dev/sda2
cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sda2
SDC11409 Comment chiffrer une partition système Linux (ici Ubuntu)
512 est le maximum avec cet algo mais c’est bien suffisant…
Cryptsetup demandera alors un mot de passe. Mettez un truc costaud entre 8 et 10 caractères avec des lettres minuscules, majuscules, des chiffres et des caractères comme ‘§*$#@ …etc
Une fois la partoche chiffrée crée, on va la monter sous le nom lvm…
cryptsetup luksOpen /dev/sda2 lvm
Ensuite, on l’initialise :
pvcreate /dev/mapper/lvm
Et on crée un groupe de volumes qu’on va appeler ubuntu
vgcreate ubuntu /dev/mapper/lvm
Vient maintenant le moment de créer la swap chiffrée… 1,5 Gb est suffisant pour 1 Gb de RAM
lvcreate -L1500M -n swap ubuntu
Et on utilise le reste de la place du disque pour la partition système (root)
lvcreate -l 100%FREE -n root ubuntu
Reste plus qu’à formater tout ça…. en swap pour la swap et en ext4 pour la partition racine
mkswap /dev/mapper/ubuntu-swap
mkfs.ext4 /dev/mapper/ubuntu-root
Voilà les partitions sont créées. On laisse le terminal ouvert pour la suite mais on lance l’install de Ubuntu (en double cliquant sur l’icone install sur le bureau)
On suit ensuite le processus classique de l’installation d’Ubuntu à la différence prêt que lors de la sélection des partitions, on choisit l’option « Définir les partitions manuellement »
SDC11413 Comment chiffrer une partition système Linux (ici Ubuntu)
On utilise alors ubuntu-root avec le point de montage / avec un formatage en ext4, ubuntu-swap en tant que swap et bien sûr /dev/sda1 en tant que partition de boot non chiffrée.
SDC11417 Comment chiffrer une partition système Linux (ici Ubuntu)
A la fin de l’install, ne redémarrez pas, car nous allons devoir activer toute cela. On va se placer en chroot sur le système fraichement installé… Retournez dans la console, et entrez les commandes suivantes pour monter le système façon chroot, c’est à dire comme si vous étiez nativement dessus
mount /dev/mapper/ubuntu-root /mnt
mount /dev/sda1 /mnt/boot
mount -o rbind /dev /mnt/dev
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
chroot /mnt
Normalement, si vous faites un ping d’un site, vous devriez pouvoir vérifier que le réseau fonctionne en chroot. Si ce n’est pas le cas, c’est qu’il manque des fichiers dans /etc/.  Pour les placer, il suffit de faire un
strace ping www.google.com
et de regarder les messages d’erreur qui indiquent qu’il manque des fichiers. Et de copier ces fichiers (ou de faire des liens symboliques). En ce qui me concerne, je n’ai pas eu besoin de le faire. J’ai rencontré le souci mais après un reboot et une activation immédiate du wifi, ça a fonctionné.
On installe donc lvm2, cryptsetup et grub2 sur le nouvel OS fraichement installé avec un
aptitude install cryptsetup lvm2 grub2
On va ensuite (tjrs dans chroot) rajouter cela dans le fichier /etc/crypttab
ubuntu UUID=0000-0000-0000-00000-000000000 none luks,retry=1,lvm=ubuntu
Pensez à remplacer les 000000 par l’UID de votre partition. Vous pouvez l’obtenir en faisant un
blkid /dev/sda2
Ajouter ensuite l’appel au module « dm-crypt dans » /etc/initramfs-tools/modules
Editez ensuite le fichier /etc/initramfs-tools/conf.d/ubuntu
et rajouter dedans :
ubuntu=target=ubuntu,source=/dev/sda2
Puis on met à jour initramfs avec la commande suivante :
update-initramfs -k all -c
On installe grub sur la partition de boot si ce n’est pas déjà fait
grub-install /dev/sda
Puis on met à jour grub
update-grub2
Et enfin, on reboot…
Au démarrage, vous devriez alors avoir une demande de mot de passe… Puis une fois la partition déchiffrée, vous devez accéder normalement à votre système. Pas de ralentissement, c’est comme si on était sur un OS non chiffrée. C’est assez bluffant.
SDC11419 Comment chiffrer une partition système Linux (ici Ubuntu)
En ce qui me concerne, la seule ombre au tableau est que j’ai ça comme message d’avertissement et je n’ai rien trouvé sur le net qui y réfère…
cryptsetup: lvm device name (ubuntu) does not contain a dash
je sèche donc sur ce point mais ça ne m’empêche pas de faire tourner le bousin et tout fonctionne très bien… donc si quelqu’un a une idée, je suis preneur.

version windows ici

Aucun commentaire:

Enregistrer un commentaire

Related Posts Plugin for WordPress, Blogger...