Vous êtes sur la page 1sur 32

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Sauvegarde sur disque USB externe Protg par mot de passe sous Linux

Rapport prpar et ralis par Ali Amaniss Stagiaire en administration de systmes

DEC en Techniques de linformatique Option : Gestion de Rseaux Informatiques Collge de Maisonneuve

Stage ralis NVI Solutions, Montral Janvier 2013

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Table of matires
Introduction ................................................................................................................................... 3 Cryptage de la partition ................................................................................................................ 4 Installation du paquetage cryptsetup ........................................................................................... 4 Formatage de la partition avec cryptsetup ................................................................................... 4 Ouverture de la partition.............................................................................................................. 4 Formatage de la partition sous Linux .......................................................................................... 5 Montage de la partition................................................................................................................ 5 Travail sur la partition ................................................................................................................. 5 Dmontage de la partition ........................................................................................................... 5 Fermeture de la partition ............................................................................................................. 6 Rsum du montage et du dmontage ......................................................................................... 6 Changer le mot de passe de la partition USB .............................................................................. 6 Sauvegarde ..................................................................................................................................... 7 Introduction ................................................................................................................................. 7 Installation de rsync..................................................................................................................... 7 Sauvegarde .................................................................................................................................. 7 Sauvegarde sur la machine locale............................................................................................ 7 Sauvegarde sur une machine distante ...................................................................................... 8 Sauvegarde sur le disque USB crypt...................................................................................... 9 Script de sauvegarde .................................................................................................................... 9 Le code du script ................................................................................................................... 10 Menu et mode dutilisation.................................................................................................... 18 Annexes......................................................................................................................................... 20 Partition scurise sous Linux ................................................................................................... 20 Partition chiffre avec cryptsetup .............................................................................................. 24 Bibliographie................................................................................................................................ 32

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Introduction
La sauvegarde des donnes est un processus devenu ncessaire pour leur scurit et la restauration en cas de besoin. Les moyens de stockage tant devenu bon march, il est facile de se procurer un disque dur sur lequel on peut faire ses sauvegardes facilement. Une fois la sauvegarde faite, vous pouvez transporter et dposer votre disque USB nimporte o et les donnes contenues seront protges et en scurit. La commande utilise ici pour la sauvegarde est rsync. Cest une commande qui synchronise deux dossiers et copie les fichiers qui sont dans la source et pas dans la destination, ainsi que les fichiers qui existent dans les deux dossiers mais qui sont modifis dans la source. Ce petit tutoriel a pour objectif de donner les tapes ncessaires pour crypter une partition Linux avec mot de passe. Il utilise le module md-crypt. Ensuite, nous proposons un script de sauvegarde de vos donnes sur la partition ainsi crypte. Il existe aussi le module truecrypt pour le mme travail. Cependant md-crypt est plus intgr au noyau Linux et il est facile dutilisation. Le paquetage correspondant au module md-crypt est cryptsetup quil faut installer comme nous le montrerons dans la suite de ce tutoriel. Ce petit tutoriel a pour objectif de donner les tapes ncessaires pour crypter une partition Linux avec mot de passe et faire la sauvegarde de vos donnes. Pour lencryptage des donnes, nous utilisons le module md-crypt. Ensuite, nous proposons un script de sauvegarde de vos donnes sur la partition ainsi crypte. Le script propos permet de faire, dune manire transparente, le montage, le dmontage du disque dur ainsi que la sauvegarde et la restauration des donnes. Il existe aussi le module truecrypt pour lencryptage dune partition. Cependant mdcrypt est plus intgr au noyau Linux et il est facile dutilisation. Le paquetage correspondant au module md-crypt est cryptsetup quil faut installer comme nous le montrerons dans la suite de ce tutoriel. Il existe dautres moyens pour faire la sauvegarde telle que la commande dump qui fait des sauvegardes compltes, diffrentielles et incrmentales. Mais celle-ci fait la sauvegarde incrmentale sur toute la partition seulement et non sur un dossier particulier. Ce qui est un inconvnient si nous voulons sauvegarder seulement un dossier particulier. La version de Linux que nous utilisons pour tester toutes les manipulations prsentes dans ce document est Dubian. Mais pour adapter ces manipulations autres distributions Linux, il suffit dutiliser les commandes correspondantes pour linstallation de paquetage par exemple.

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Cryptage de la partition
Commenons par le cryptage de la partition USB. La partition sera crypte dans le sens quil faut un mot de passe pour pouvoir la monter sous Linux. A dfaut de ce mot de passe, les donnes sont protges et inaccessibles. De plus, les donnes sont cryptes par cryptsetup la vole et en toute transparence par rapport lutilisateur.

Installation du paquetage cryptsetup


Pour se faire il faut installer le paquetage cryptsetup avec la commande suivante : sudo apt-get install cryptsetup Ensuite, il faut faire une mise jour des paquetages car des fois, il en maque certains. sudo apt-get upgrade

Formatage de la partition avec cryptsetup


Une fois cela fait, il faut formater la partition avec la commande suivante : cryptsetup luksFormat /dev/sdb1 /dev/sbd1 est ici juste un exemple. Il faut donner lendroit ou se trouve votre partition. Dans cette tape il faut donner un mot de passe qui vous permettra, dans le futur, daccder votre partition. Cest ce mot de passe qui garantit la confidentialit de vos donnes. Personne ne peut accder votre partition pour la monter sil nest pas en possession de ce mot de passe. Ce mot de passe peut tre chang au besoin. Voir la section du changement du mot de passe plus loin dans ce document.

Ouverture de la partition
Ensuite et avant de monter votre partition, il faut dabord louvrir. Au cours de cette ouverture, le mot de passe vous sera demand. cryptsetup luksOpen /dev/sbd1 usb_backup usb_backup est un nom arbitraire qui va designer la partition partir de cette ouverture.

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Une fois la partition ouverte et avant de la monter, il faut la formater. Souvenons nous que lon dsigne la partition partir de son ouverture avec le nom gnrique : usb_backup.

Formatage de la partition sous Linux


Pour formater la partition comme on fait ordinairement sous linux, nous lanons la commande suivante. mkfs -t ext3 /dev/mapper/usb_backup

Montage de la partition
Une fois, votre partition formate, pour pouvoir lutiliser, il faut la monter avec la commande suivante. mount /dev/mapper/usb_backup /usb_backup /usb_backup (deuxime argument) tant un dossier cre la racine pour monter la partition. Vous pouvez crer un dossier avec un nom de votre choix si vous prfrez.

Travail sur la partition


Une fois ce montage fait, on peut accder la partition en utilisant le nom du dossier dont il tait question ci-dessus, savoir /sub_backup que lon pourra appeler autrement si lon veut. On peut accder la partition avec la commande : # cd /usb_backup Comme exemple dutilisation, on peut crer un dossier dans cette partition: # mkdir dossier Une fois que le travail fini, il faut dmonter la partition et la fermer comme dcrit dans les pates suivantes. Ainsi, on protge les donnes qui sont dessus.

Dmontage de la partition
Une fois votre travail termin sur votre partition, il faut la dmonter avant de la fermer. Pour la dmonter, on utilise la commande suivante. umount /usb_backup

Sauvegarde et cryptage des donnes sur disque USB externe

2013

La dernire tape et de fermer votre partition. Cette opration est ncessaire pour protger vos donnes car nimporte quelle personne malveillante peut monter votre partition et accder vos donnes.

Fermeture de la partition
Pour fermer la partition et ainsi la protger de toute intrusion malveillante, il faut faire la commande suivante : cryptsetup luksClose usb_backup

Rsum du montage et du dmontage


Pour revenir travailler sur votre partition, il suffit de louvrir et de la monter comme dans les tapes prcdentes. Les deux commandes qui font ce travail, nous le rappelons, sont les suivantes. cryptsetup luksOpen /dev/sbd1 usb_backup mount /dev/mapper/usb_backup /usb_backup Puis, on travaille. Mis avant de partir, il faut dmonter la partition et la fermer. Nous rappelons les deux commandes qui ont cette fonction. umount /usb_backup cryptsetup luksClose usb_backup

Changer le mot de passe de la partition USB


Nous pouvons, pour une raison ou une autre, vouloir changer le mot de passe qui protge la partition. Pour ce faire, il suffit de taper les commandes suivantes. Il faut en premier modifier le mot de passe, ensuite il faut dtruire lancien mot de passe. cryptsetup -v luksAddKey /dev/sdb1 cryptsetup -v luksKillSlot /dev/sdb1

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Sauvegarde
Introduction
Pour faire la sauvegarde de vos donnes sur la partition ainsi protge par mot de passe, nous utiliserons lutilitaire rsync. Cet utilitaire parcourt le rpertoire sauvegarder et ne copie sur la partition cible que les fichiers qui ont t modifis. Ceux qui nont reu aucune modification partir de la dernire sauvegarde ne sont pas copis. Cela convient lorsquon a de trs grandes quantits de donnes sauvegarder et/ou que les sauvegardes des mmes donnes sont frquentes. En fait, lutilitaire rsync permet de synchroniser deux dossiers (sur la machine locale ou entre la machine locale et une machine distante) et copie, selon les modifications qui ont t faites prcdemment, les fichiers ncessaires afin de rendre les deux dossiers identiques. Il existe bien sr dautres moyens tels que la commande dump qui fait des sauvegardes compltes, incrmentales et diffrentielles. Mais ici, nous nous intresserons la commande rsync.

Installation de rsync
Commencer par installer le paquetage rsync si ce nest dj fait : sudo apt-get install rsync Une fois fait, vrifiez que vous avez accs la commande rsync en tapant la ligne de commande: rsync

Sauvegarde
La sauvegarde des donnes peut se faire entre deux dossiers dune machine locale ou entre un dossier de la machine locale et un dossier dune machine distante.

Sauvegarde sur la machine locale


Pour synchroniser un dossier local avec un autre dossier local, il suffit par exemple de taper la commande suivante.

Sauvegarde et cryptage des donnes sur disque USB externe

2013

rsync -avrtpl --progress --del /dossier/ /backup Cette commande permet de copier les fichiers du rpertoire /dossier/ (qui ont t modifis) vers le dossier /backup/ sur la mme machine en supposant que les deux dossiers se trouvent la racine. Les Options : -a : quivalent -rlptgoD. C'est un moyen rapide de dire que vous voulez la rcursion et de prserver pratiquement tout. -v : plus loquace. -r : parcours le dossier indiqu et tous ses sous-dossiers. -t : prserve les dates. -p : provoque la mise jour des permissions sur la destination pour qu'elles soient identiques aux permissions sur la source. -l : copie les liens symboliques comme liens symboliques. -progress : montre l'avancement pendant le transfert. --del : permet de supprimer les fichiers sur "destination" qui n'existent plus sur "source".

Sauvegarde sur une machine distante


Pour sauvegarder un dossier local sur un dossier dune machine distante la procdure est la mme sauf quil faut ajouter ladresse IP de la machine distante. rsync -avrtpl --progress --del /dossier/ 192.168.40.34:/backup Il se pourrait que lon vous demande le mot de passe de lutilisateur root de la machine distante. Il est possible de le donner interactivement ou de le passer par un fichier. Bien sr, si les fichiers sauvegarder sont la machine distante et que lont veut les sauvegarder sur la machine locale, il suffit dinverser lordre des deux machines et ainsi donner la commande suivant. rsync -avrtpl --progress --del/backup 192.168.40.35 :/dossier

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Sauvegarde sur le disque USB crypt


Afin de sauvegarder les donnes de la machine locale sur le disque USB crypt ci-dessus, il suffit de le connecter, louvrir et le monter avant de lancer la commande rsync dessus. Pour louverture et le montage, on lance les commandes suivantes. cryptsetup luksOpen /dev/sbd1 usb_backup mount /dev/mapper/usb_backup /usb_backup Ensuite on lance la commande de sauvegarde rsync.
rsync -avrtpl --progress --del /dossier/ /usb_backup/dossier _`date +%d_%m_%Y`/

Ainsi les donnes seront stockes dans le dossier : /usb_backup/dossier_`date +%d_%m_%Y`


du disque USB externe. On ajoute la date du jour au nom du dossier afin de savoir quelle date la sauvegarde a t faite, mais cela nest pas obligatoire.

Une fois le transfert de donnes termin, il faut dmonter et fermer la partition avant de dconnecter le disque USB. umount /usb_backup cryptsetup luksClose usb_backup

Script de sauvegarde
Si vous ne voulez pas vous souvenir de toutes ces manipulations, il suffit dutiliser un script aprs avoir connect votre disque USB externe. crivez ce script dans un fichier, disons sauvegarde.sh. Donnez les autorisations dexcution ce script avec la commande : chmod +x sauvegarde.sh Ensuite, lancer le comme suit : ./sauvegarde.sh

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Le code du script
Nous avons crit un script qui permet de rendre transparent toutes les manipulations concernant la sauvegarde des donnes sur disque USB externe. Ce script permet de monter, de dmonter le disque dur. Il permet galement de faire la sauvegarde ou la restauration dans disque USB dj mont, de changer le mot de passe, de changer la partition de montage. Le script affiche un menu qui permet de faire toutes ces manipulations. Bien sr, les sauvegardes et les restaurations qui se font dans le script sont adaptes aux besoins de chacun. Il faut donc changer le script au niveau des commandes rsync afin de ladapter dautres sauvegardes. Nous navons pas mis dans le menu une option qui permettrait de changer les dossiers sauvegards. Mais cet ajout peut se faire aussi pour mieux grer nimporte quelle sauvegarde. Il suffirait de changer de dossier pour changer de sauvegarde. Avant dexpliquer le menu du script, nous donnons dabord son contenu de son code dans les pages suivantes. ######################################### ## The backup and restore bash script. ## ## Written on the 01/17/2013. ## ## NVI solutions ## ######################################### choice=""; usb_device="/dev/sdb1"; function verifier_le_montage() { if grep -q usb_backup /proc/mounts ; then mounted=1; else mounted=0; fi } function password_change() { typeset -u response; read -p "Are you sure to want to change password ? (y/n) " response; if [ "$response" = "Y" ]; then { echo "Changing password...." cryptsetup -v luksAddKey $usb_device;

10

Sauvegarde et cryptage des donnes sur disque USB externe

2013

echo "Erasing the old password......"; cryptsetup -v luksKillSlot $usb_device; } fi } function menu() { clear; echo "----------------------------------------------"; echo "+ Welcome to the Backup System on USB Device +"; echo "----------------------------------------------"; echo ""; echo "NVI Solutions, Copyright 2013."; echo "All Rights Reserved." echo ""; echo "------------------------Menu-------------------"; echo "General"; echo " d) Current USB Device name (/dev/xxx/)"; echo " c) Change USB Device name (/dev/xxx/)"; echo " p) Change password"; echo ""; echo "Backup and Restore"; echo " m) Mount USB Device"; echo " u) Umount USB Device"; echo ""; echo " b) Backup to USB device"; echo " r) Restore from USB device"; echo ""; echo " B) Mount, Backup to USB device and Umount"; echo " R) Mount, Restore from USB device and Umount"; echo ""; echo " q) Quit"; echo "------------------------------------------------"; read -p "Give your choice: " choice; } function monter() { if [ $mounted -eq 0 ]; then { if [ -d "/usb_backup" ]; then existe=1; else existe=0; fi

11

Sauvegarde et cryptage des donnes sur disque USB externe

2013

if [ $existe -eq 0 ]; then mkdir /usb_backup/; fi cryptsetup luksOpen $usb_device usb_backup; mount /dev/mapper/usb_backup /usb_backup; mounted=1; echo "The device '$usb_device' is mounted..." read -p "Hit return key to continue..."; } else { echo "The USB device '$usb_device' is already mounted"; read -p "Hit return key to continue..."; } fi } function demonter() { if [ $mounted -eq 1 ]; then { umount /usb_backup; cryptsetup luksClose usb_backup; mounted=0; echo "The USB device '$usb_device' is umounted..."; read -p "Hit return key to continue..."; } else { echo "The USB device '$usb_device' is alreday umounted..."; read -p "Hit return key to continue..."; } fi } function small_backup() { if [ $mounted -eq 1 ]; then { typeset -u response; read -p "Are you sure to want to backup ? (y/n) " response; if [ "$response" = "Y" ]; then

12

Sauvegarde et cryptage des donnes sur disque USB externe

2013

{ rsync -avrtpl --progress --del /backup/ActiveDirectory/Backup.bkf /usb_backup/nvi_backup/ActiveDirectory/; rsync -avrtpl --progress --del /backup/Exchange/Backup.bkf /usb_backup/nvi_backup/Exchange/; rsync -avrtpl --progress --del /backup/rsnapshot/hourly.0/ /usb_backup/nvi_backup/rsnapshot/; ### Update the date.txt file for the backup date date_backup=`date +%m/%d/%Y`; message="The backup is finished on "$date_backup" !!"; echo $message > /usb_backup/nvi_backup/backup_date.txt; echo "The backup is made..."; read -p "Hit return key to continue..."; } else read -p "Hit the return key to continue..."; fi } else { echo "The USB device '$usb_device' is not mounted...Mount it first..."; read -p "Hit return key to continue..."; } fi } function big_backup() { typeset -u response; read -p "Are you sure to want to backup ? (y/n) " response; if [ "$response" = "Y" ]; then { if [ $mounted -eq 0 ]; then { ### Mount the USB device cryptsetup luksOpen $usb_device usb_backup; mount /dev/mapper/usb_backup /usb_backup;

13

Sauvegarde et cryptage des donnes sur disque USB externe

2013

mounted=1; } fi echo "The USB device '$usb_device' is mounted..."; ### Make the backup echo "Making bakcup..."; rsync -avrtpl --progress --del /backup/ActiveDirectory/Backup.bkf /usb_backup/nvi_backup/ActiveDirectory/ rsync -avrtpl --progress --del /backup/Exchange/Backup.bkf /usb_backup/nvi_backup/Exchange/ rsync -avrtpl --progress --del /backup/rsnapshot/hourly.0/ /usb_backup/nvi_backup/rsnapshot/ ### Update the date.txt file for the backup date date_backup=`date +%m/%d/%Y`; message="The backup is finished on "$date_backup" !!"; echo $message > /usb_backup/nvi_backup/backup_date.txt; ### Umount the USB device umount /usb_backup; cryptsetup luksClose usb_backup; mounted=0; ### Final message on the output screen echo $message; read -p "Hit return key to continue...."; } else read -p "Hit return key to continue..."; fi } function small_restore() { if [ $mounted -eq 1 ]; then { typeset -u response; read -p "Are you sure to want to restore from USB device ? (y/n) " response; if [ "$response" = "Y" ]; then

14

Sauvegarde et cryptage des donnes sur disque USB externe

2013

{ echo "Making restore..."; rsync -avrtpl --progress --del /usb_backup/nvi_backup/ActiveDirectory/ /backup/ActiveDirectory/; rsync -avrtpl --progress --del /usb_backup/nvi_backup/Exchange/ /backup/Exchange/; rsync -avrtpl --progress --del /usb_backup/nvi_backup/rsnapshot/ /backup/rsnapshot/hourly.0; echo "The restore is finished..."; read -p "Hit return key to continue..."; } else read -p "Hit the return key to continue..."; fi } else { echo "The USB device '$usb_device' is not mounted...Mount it first..."; read -p "Hit return key to continue..."; } fi } function big_restore() { typeset -u response; read -p "Are you sure to want to restore from USB device ? (y/n) " response; if [ "$response" = "Y" ]; then { if [ $mounted -eq 0 ]; then { ### Mount the USB device cryptsetup luksOpen $usb_device usb_backup; mount /dev/mapper/usb_backup /usb_backup; mounted=1; } fi echo "The USB device '$usb_device' is mounted..."; ### Make the backup

15

Sauvegarde et cryptage des donnes sur disque USB externe

2013

echo "Making restore..."; rsync -avrtpl --progress --del /usb_backup/nvi_backup/ActiveDirectory/ /backup/ActiveDirectory/; rsync -avrtpl --progress --del /usb_backup/nvi_backup/Exchange/ /backup/Exchange/; rsync -avrtpl --progress --del /usb_backup/nvi_backup/rsnapshot/ /backup/rsnapshot/hourly.0; ### Update the date.txt file for the backup date message="The restore is finished !!"; ### Umount the USB device umount /usb_backup; cryptsetup luksClose usb_backup; mounted=0; ### Final message on the output screen echo $message; read -p "Hit return key to continue...."; } else read -p "Hit return key to continue..."; fi } function choix() { menu; # make a choice from the menu case $choice in d*) echo "The current USB device is '$usb_device'"; echo ""; read -p "Hit return key to continue...."; choix;; c*) read -p "New USB Device name : " usb_device; choix;; p*) password_change; choix;; m*) monter; choix;; u*) demonter; choix;; b*) small_backup; choix;; r*) small_restore; choix;; B*) big_backup; choix;;

16

Sauvegarde et cryptage des donnes sur disque USB externe

2013

R*) q*) Q*) *) esac }

big_restore; choix;; exit;; exit;; read -p "Bad choice. Hit return key to continue..." choix;;

verifier_le_montage; choix;

17

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Menu et mode dutilisation


Dans cette section, nous drivons le fonctionnement du script. Lors du lancement du script, le menu suivant saffiche. --------------------------------------------------------------+ Welcome to the Backup System on USB Device + --------------------------------------------------------------NVI Solutions, Copyright 2013. All Rights Reserved. ------------------------Menu-------------------------------General d) Current USB Device name (/dev/xxx/) c) Change USB Device name (/dev/xxx/) p) Change password Mount and Umount USB Device m) Mount USB Device u) Umount USB Device Backup and Restore b) Backup to USB device r) Restore from USB device B) Mount, Backup to USB device and Umount R) Mount, Restore from USB device and Umount q) Quit ------------------------------------------------------------------Give your choice: Nous dcrivons les options proposes par le script: d : donne le nom du disque dur USB monter. c : permet de changer le nom du disque dur monter. p : permet de changer le mot de passe qui protge le disque dur. m : permet de monter la partition sans faire de sauvegarde ni de restauration. u : de dmonter la partition si elle est dj monte. b : permet de faire la sauvegarde dune partition dj monte. r : permet de faire la restauration des donnes partir dune partition dj monte. B : permet de monter une partition, de sauvegarder et de dmonter la partition. R : permet de monter une partition, de restaurer les donnes et de dmonter la partition.

18

Sauvegarde et cryptage des donnes sur disque USB externe

2013

q : permet de quitter le script. Remarque : toutes ces manipulations ont t testes avec succs sur une machine Dubian avec un disque dur USB externe de plusieurs traoctets.

19

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Annexes
Partition scurise sous Linux
(Source) Nous allons utiliser dm-crypt et non pas son concurrent direct truecrypt pour protger une partition sous Linux. Pourquoi retenir dm-crypt ? Car ce dernier est simple dusage et bien intgr au noyau Linux ce dernier aspect est galement un inconvnient notamment si vous souhaitez pourvoir lire vos donnes sous divers OS. Installation Sous debian, un seul package suffit. {geshibot lang=bash head=installer cryptsetup/dm-crypt} apt-get install cryptsetup {/geshibot} Mise en uvre. Pour illustrer la mise en uvre de cette technique de cryptage nous considrons au travers de cet exemple que nous souhaitons scuriser la partition /dev/hda6. Attention toutes les donnes prsentes sur la partition en question seront perdues ! Lensemble de la configuration se ralise au travers de la commande cryptsetup. Il nous faut travailler sous le compte root.

tape 1: Formater votre partition au format cryptsetup


Pour cela utiliser la commande : {geshibot lang=bash head=Formater une partition en cryptsetup} cryptsetup luksFormat /dev/hda6

WARNING!
This will overwrite data on /dev/hda6 irrevocably. Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: *** Verify passphrase: *** Command successful. {/geshibot}

tape 2 : accder une partition scurise


Cette partition est maintenant au format cryptsetup et elle est ferme par un mot de passe (LUKS passphrase). Avant de pouvoir lutiliser, il nous faut louvrir :

20

Sauvegarde et cryptage des donnes sur disque USB externe

2013

{geshibot lang=bash head=Ouvrir une partition} cryptsetup luksOpen /dev/hda6 crypt_hda6 Enter LUKS passphrase: *** key slot 0 unlocked. Command successful. {/geshibot} Cette commande mrite quelques explications sur les paramtres passs : - luksOpen indique que lon souhaite ouvrir une partition, - /dev/hda6 indique quel partition physique on souhaite ouvrir, - crypt_hda6 donne un nom logique (de mapping) la partition ouverte. Aprs cette commande dm-crypt associe la partition physique /dev/hda6 sa version accessible (ouverte) via le device logique /dev/mapper/crypt_hda6. Du point de vue du systme /dev/mapper/crypt_hda6 est une partition comme les autres mise part que dmcrypt se charge de crypter/dcrypter toutes oprations E/S. schmatiquement E/S ===> /dev/mapper/crypt_hda6 ===> dm-crypt (cryptage/decryptage) ====> /dev/hda6 A partir de maintenant on utilise plus que /dev/mapper/crypt_hda6.

tape 3 : Formatage OS de votre partition scurise


Quand on vous le dit que lon utilise plus que /dev/mapper/crypt_hda6 et de faon standard. Formater en ext3 la partition: mkfs -t ext3 /dev/mapper/crypt_hda6 Rsultat du formatage:
mke2fs 1.41.3 (12-Oct-2008) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 4612096 inodes, 18432442 blocks 921622 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 563 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Writing inode tables: done Creating journal (32768 blocks): done

21

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 31 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.

tape 4 : Monter la partition


L, rien que trs classique mount. Monter la partition: mkdir /mnt/partition_securise mount /dev/mapper/crypt_hda6 /mnt/partition_securise

tape 5 : Dmonter et fermer la partition


La commande classique umount. Dmonter la partition: umount /mnt/partition_securise Mais votre partition est reste ouverte, une autre personne passant sur votre PC peut fort bien raliser un mount sans avoir rien dautre faire. Pour verrouiller votre partition il faut la fermer via cette commande: cryptsetup luksClose crypt_hda6 A partir de ce moment l le device /dev/mapper/crypte_hda6 nexiste plus et les donnes stockes sur /dev/hda6 sont totalement inaccessibles. Surtout ne perdez pas votre mot de passe car il ny a pas moyen de rcuprer les donnes. Autres lments.

Monter automatiquement une partition de type cryptsetup


Cela dpend des distributions mais sous debian et priori sous ubuntu tout se passe dans le fichier de configuration /etc/crypttab Si vous placer cette ligne (la seconde) dans ce fichier de configuration: # <target name> <source device> <options> crypt_hda6 /dev/hda6 <key file> none luks

Lors du prochain reboot il vous sera demand un mot de passe au moment o le systme doit accder la partition pour son montage. Ne pas oublier de mettre jour votre fichier /etc/fstab pour le montage automatique de la partition lors du boot. Il existe bien dautres possibilits mais l je vous laisse regarder la doc. man cryptsetup,

22

Sauvegarde et cryptage des donnes sur disque USB externe

2013

man crypttab Du style stocker son mot de passe sur une cl USB, etc.

23

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Partition chiffre avec cryptsetup


(Source) Afin de protger au mieux vos donnes personnelles, il peut tre ncessaire de chiffrer vos partitions utilisateur. En effet, si via le systme il est impossible daccder aux fichiers qui ne vous appartiennent pas, un simple passage sur un livecd permet daccder nimporte quel fichier de votre systme. Le chiffrement de partition permet dviter a. Ubuntu intgre en standard les outils ncessaires une gestion simple de votre scurit.

Installation
Installer cryptsetup ou Pour l'installation, lancez Synaptic. Recherchez cryptsetup, cochez la case correspondante et validez le tout (bouton Appliquer ) pour l'installer. Si ncessaire charger les modules aes-i586 , dm_mod et dm_crypt . Au besoin, les ajouter la liste de /etc/modules (cf. infra Rfrence). Applications

Chiffrer une partition


Crer un conteneur pour vos donnes : une partition ou un fichier contenant votre systme de fichier. Les donnes sont chiffres la vole, tout est transparent pour l'utilisateur, mais cependant il y a un cot machine pour le chiffrement qui est ngligeable, tant que la fonction premire de votre machine n'est pas serveur de fichiers. Initialiser la partition Exemple sur une partition libre /dev/hda7 :
sudo cryptsetup luksFormat -c aes -h sha256 /dev/hda7

ou avec un cryptage plus fort :


sudo cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/hda7

On invoque cette commande pour formater la partition au type LUKS (initialiser la partition LUKS et dfinir la cl initiale). Le chiffrage sera de type AES avec un

24

Sauvegarde et cryptage des donnes sur disque USB externe

2013

algorithme de hachage SHA256. Vous allez taper votre phrase de chiffrage qui va permettre de crer un conteneur standard chiffr l'aide de votre phrase. Le conteneur chiffr de manire standard va stocker la cl de chiffrage matre qui servira ouvrir votre volume scuris. Il est possible d'ajouter jusqu' 8 clefs supplmentaires dans des "slots", qui dverrouillent l'accs la clef matre. Vous pouvez ainsi avec cette mthode avoir plusieurs utilisateurs qui vont chacun ouvrir le conteneur chiffr avec leur clef, et il vous sera possible de rvoquer les cls ventuellement compromises. Pour ajouter une cl d'accs au conteneur chiffr prcdent :
sudo cryptsetup luksAddKey /dev/hda7

Pour voir l'tat du conteneur chiffr et les "slots" utiliss :


sudo cryptsetup luksDump /dev/hda7

Pour rvoquer une cl contenue dans un "slot" :


sudo cryptsetup luksKillSlot /dev/hda7 <numero_de_slot>

Montage manuel et formatage Ouverture et formatage en ext3 de la partition chiffre. L'appellation du volume est ici home.
sudo cryptsetup luksOpen /dev/hda7 home sudo mkfs.ext3 /dev/mapper/home

Puis montage de la partition :


sudo mount -t ext3 /dev/mapper/home /mnt/

Puis dmontage et fermeture du volume chiffr :


sudo umount /mnt sudo cryptsetup luksClose home

Apart sur la transformation de fichiers en volumes Pour gnrer un fichier de nom big de 10 Mo :
dd if=/dev/urandom bs=1M count=10 of=big

Pour viter de dvoiler des informations, cette commande remplit le fichier avec du contenu alatoire (/dev/urandom/). Cette opration est horriblement lente (quelque MiB/s). Utilisez Truecrypt pour gnrer un volume dans un fichier, la gnration du fichier est beaucoup plus rapide et continuez ensuite normalement ce tutoriel.

25

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Pour transformer le fichier en volume (sur Dapper, remplacer /dev/loop0 par /dev/loop/0) :
sudo losetup /dev/loop0 big

Pour dconnecter le volume du fichier (sur Dapper, remplacer /dev/loop0 par /dev/loop/0) :
sudo losetup -d /dev/loop0

Ces informations vous permettront d'utiliser dm-crypt sur des systmes de fichiers embarqus dans des fichiers. Montage automatique Depuis Dapper, Ubuntu intgre la gestion des volumes chiffre LUKS en standard, ce qui permet de grer de manire automatique le montage et le dmontage de vos volumes (partitions) scurises. La configuration des paramtres du volume chiffr est dans le fichier /etc/crypttab et le montage du volume est de manire classique dans /etc/fstab. Un exemple de chiffrement du dossier /home: Modifier le fichier /etc/crypttab :
# <target name> <source device> home /dev/hda7 none luks <key file> <options>

Modifier /etc/fstab pour le volume qui nous intresse :


# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> /dev/mapper/home /home ext3 defaults

<dump> 0

<pass> 1

La cl d'ouverture du volume chiffr vous sera demande au dmarrage de la machine si votre partition est monte automatiquement (voir fstab). Attention, si une ligne est dj prsente pour le montage de la partition qui hberge le systme de fichier chiffr (/dev/hda7 dans l'exemple ci-dessus), il faut la commenter (en ajoutant un # comme premier caractre) pour viter un message d'erreur au dmarrage. Ouverture automatique du conteneur chiffr au dmarrage l'aide d'un support amovible On peut grce LUKS monter automatiquement les partitions chiffres au dmarrage sans mot de passe taper. Ceci est possible par l'intermdiaire d'une cl USB ou d'une carte SD ou MS :

26

Sauvegarde et cryptage des donnes sur disque USB externe

2013

http://web.archive.org/web/20100110234521/http://petaramesh.org/post/2007/11/29/Unecle-de-contact-pour-votre-portable-chiffre Suivre la procdure indique plus haut, mais modifier le fichier /etc/crypttab :
# <target name> <source device> <key file> <options> home /dev/hda7 /dev/sda:/keyfile:1 luks,keyscript=/lib/cryptsetup/scripts/passdev home /dev/hda7 none luks

De cette manire, le systme va tenter de dchiffrer la partition /dev/hda7 au moyen du fichier cl "keyfile" se trouvant sur le priphrique /dev/sda (en FAT par exemple). Le "1" reprsente le temps d'attente avant de demander le mot de passe si le fichier cl n'est pas trouv. ou Pour les versions plus rcentes d'Ubuntu (10.04 et plus) : http://wejn.org/how-to-makepasswordless-cryptsetup.html#28bd9ec7b2f9ea74ea0499586bde727c Ouverture et montage automatique de la partition chiffre l'ouverture de session, sans support amovible ni passphrase Les techniques exposes plus haut offrent un haut niveau de scurit pour peu que la passphrase de LUKS ait t bien choisie. Cependant, elles sont galement assez lourdes, dans la mesure o elles ncessitent que l'utilisateur rentre chaque dmarrage sa passphrase (ou qu'il porte sur lui en permanence le support amovible permettant l'ouverture du conteneur chiffr). La mthode propose ici va permettre d'ouvrir automatiquement le conteneur chiffr et de monter la partition chiffre au dmarrage de la session, sans que la passphrase ne soit saisie. La partition chiffre n'est donc plus protge que par le mot de passe d'ouverture de session. La passphrase de la partition crypte et le mot de passe associ au compte doivent tre les mmes (PAM ne fait que "passer" le mot de passe de session pour le montage de la partition), cela a donc des implications lorsque le mot de passe de l'utilisateur doit tre chang : il faut au pralable rajouter une passphrase (identique au nouveau mot de passe) dans un nouveau "slot" et une fois que cela est valid, supprimer l'ancienne passphrase. Le niveau de scurit est donc plus bas, mais le chiffrement devient parfaitement transparent pour l'utilisateur. Cette solution convient donc bien si vous souhaitez simplement protger vos donnes personnelles en cas de vol de votre machine par un quidam quelconque, mais peut-tre pas si vous avez des documents vraiment confidentiels protger. Nous allons utiliser PAM, utilitaire habituellement utilis pour le montage automatique de partitions sur des postes multi-utilisateurs.

27

Sauvegarde et cryptage des donnes sur disque USB externe

2013

La situation est la suivante : la partition /dev/sda2 est notre partition crypte. Elle doit tre monte automatiquement au point /mnt/cryptodisk. Les oprations suivantes ont donc t effectues au pralable :
#Cration du containeur chiffr. Attention, la partition ne doit pas tre monte. De plus, toute donne prsente sur cette partition sera perdue : sudo cryptsetup luksFormat /dev/sda2 #Ouverture du containeur nouvellement cr, qui on donne le nom de "cryptodisk": sudo cryptsetup luksOpen /dev/sda2 cryptodisk #Cration du systme de fichier ext3 sur cette partition chiffre : sudo mkfs.ext3 /dev/mapper/cryptodisk #Cration du point de montage : sudo mkdir /mnt/cryptodisk #Dfinition du point de montage: Dans le fichier /etc/fstab, notez l'option #"noauto" qui permet de faire apparatre la partition dans le fichier fstab #sans pour autant la monter automatiquement au dmarrage /dev/mapper/cryptodisk /mnt/cryptodisk ext3 defaults,noauto 0 0 #Et on s'arrte l. Ne RIEN ajouter dans le fichier /etc/cryptab

Notre partition chiffre est prsent cre, formate, et un point de montage a t dfini. Il ne reste plus qu' indiquer PAM de la monter automatiquement chaque ouverture de session (sans demande de la passphrase donc).
#Installation de la librairie : sudo apt-get install libpam-mount

Indication PAM de la partition monter : diter le fichier /etc/security/pam_mount.conf.xml. Au dbut du fichier, aprs la premire balise <pammount>, ajouter la ligne suivante :
<volume user="*" fstype="crypt" /> mountpoint="/mnt/cryptodisk" path="/dev/sda2"

La partition /dev/sda2 de type "crypt" (partition crypte) sera monte l'ouverture de session sans demande de la phrase-pass sur le point de montage /mnt/cryptodisk, et ce quel que soit l'utilisateur qui se connecte (et dont le mot de passe de session correspond une passphrase de la partition). Et pour finir, il suffit d'indiquer gdm (dans le cas de Gnome) ou kdm (pour KDE) d'appeler PAM. Ouvrir ainsi dans le cas de Gnome le fichier /etc/pam.d/gdm, et ajouter la fin de ce fichier la ligne

28

Sauvegarde et cryptage des donnes sur disque USB externe


@include common-pammount

2013

Remarque : ceci n'est plus utile depuis Jaunty. Et voil ! Il ne vous reste plus qu' redmarrer votre machine, et l'ouverture de session la partition chiffre sera ouverte et monte automatiquement, sans que la passphrase ne vous soit demande. Bien entendu, si vous avez au pralable dsactiv l'authentification pour l'ouverture de la session, cela ne sert pas grand chose d'avoir une partition chiffre (car alors l'authentification tant dsactive, la session est ouverte automatiquement chaque dmarrage et la partition chiffre est galement ouverte et monte automatiquement et sans passphrase chaque dmarrage). Remarque: mthode teste et approuve sous Ubuntu 10.04 Rglage de la priorit d'excution Par dfaut le niveau de priorit du dmon de chiffrage est trop lev et peut induire des ralentissements gnants. Vous pouvez modifier cette priorit l'aide de la commande renice :
sudo renice 10 `pgrep kcryptd`

Pour excuter cette commande chaque dmarrage, il faut la placer dans le fichier /etc/rc.local avant la ligne exit 0 sans sudo car c'est le systme avec les droits administrateur qui l'excutera.
#!/bin/sh -e # renice 10 `pgrep kcryptd` exit 0

Chiffrer la swap
Il peut tre utile de chiffrer la swap si vous voulez chiffrer votre disque sans LVM. Crer une partition de base Pour cela, il faut crer une partition de swap classique. Je ne suis pas sr que ce soit ncessaire que la partition soit une swap, mais lorsque je l'ai fait, c'en tait une et a marchait. Donc si quelqu'un pouvait prciser crypttab J'ai pris la commande dans le crypttab de la page du manuel. Il faut donc ajouter dans /etc/crypttab :

29

Sauvegarde et cryptage des donnes sur disque USB externe


cryptoswap /dev/sdXX /dev/urandom cipher=aes-cbcessiv:sha256,hash=ripemd160,size=256,swap

2013

O sdXX est le nom de votre swap. Vous pouvez l'obtenir en faisant


sudo blkid

Ou en regardant sur gparted ou l'utilitaire de disques. Ceci va crer le systme /dev/mapper/cryptoswap. fstab Il faut maintenant monter ce systme dans /etc/fstab :
/dev/mapper/cryptoswap none swap sw 0 0

Et voil, le tour est jou, il ne reste plus qu' redmarrer. La swap sera alors monte et chiffre par une cl alatoire.

Conclusion
Le nouveau systme de gestion des volumes chiffrs est trs bien implment dans Dapper. Il permet notamment de scuriser votre /home sans manipulation complexe autre que de renseigner la passphrase lors du dmarrage. Spcificit Edgy Le fait de chiffrer votre dossier /home (par exemple) ncessite de taper la cl d'ouverture du volume chiffr lors de la squence de dmarrage de l'ordinateur, mais sous Edgy le systme de boot n'est plus squentiel comme sur Dapper, ce qui entrane pour l'heure que le lancement de Xorg (le serveur graphique) n'attendra pas que vous ayez tap votre cl d'ouverture du volume. Une des solutions pour l'heure est d'installer sysvinit avec Synaptic au lieu d'Upstart (le nouveau systme de dmarrage, intgr dans Edgy).

Sous Windows
Grce au logiciel FreeOTFE, il est possible de monter de faon non permanente une partition LUKS encrypte par Cryptsetup sous Linux partir de votre systme Windows. Pour monter et utiliser le mme type de partition que celle dcrite dans ce wiki, voici les tapes : 1. Tlcharger FreeOTFE ici

30

Sauvegarde et cryptage des donnes sur disque USB externe

2013

2. Extraire les fichiers de l'archive dans un dossier et ouvrir FreeOTFE.exe 3. Lorsqu'on vous demande si vous voulez dmarrer FreeOTFE en portable mode, dites oui. Si vous voulez utiliser FreeOTFE rgulirement afin de monter des volumes crypts sous Windows, vous pouvez cliquer sur non et activer de faon permanente tous les pilotes de cryptage un par un. 4. Cliquez ensuite sur File / Linux volume / Mount partition 5. Choisissez la partition qui est encrypte sur votre disque dur 6. Dans la grande case, entrez votre cl secrte, puis cliquez sur Ok 7. Si vous avez choisi la bonne partition et la bonne cl, le programme dtectera l'encryptage correspondant et vous offrira une liste des pilotes pouvant monter le volume. Faites votre choix. 8. Si tout s'est bien pass, vous avez un nouveau lecteur dans votre poste de travail !

Notes importantes
Ce volume ne survivra pas un redmarrage, il faudra tout reprendre de zro chaque fois. Si vous fermez FreeOTFE alors qu'il est en mode portable, vous devez lui spcifier de ne pas dsactiver les pilotes d'encryptage afin de ne pas perdre l'usage de votre partition. Avant de fermer votre ordinateur, il est recommand de dmonter la partition l'aide de FreeOTFE et de lui permettre de dsactiver tous les pilotes sa fermeture. Si votre systme de fichier est ext2 ou ext3, Windows ne sera pas capable de lire le contenu de votre partition, sauf si vous installez le Ext2 IFS For Windows. Attention toutefois, ce pilote pour Windows ne prend pas en charge les droits d'accs et la journalisation. Pour du partage entre Windows et Linux, le Fat32 est plus conseille.

Liens

Une bonne rfrence : https://wiki.ubuntu.com/EncryptedFilesystemHowto Un 'howto' expliquant tape par tape comment mettre en uvre LUKS pour construire un systme sr: A startup key to protect my data Tutoriel d'installation d'une Ubuntu utilisant cryptsetup

31

Sauvegarde et cryptage des donnes sur disque USB externe

2013

Bibliographie
1. Cryptographic key recovery from Linux memory dumps 2. Encrypted File System Howto (dm-crypt) 3. Partition chiffre avec Cryptsetup 4. Le chiffrement de disque sous linux : Vrai ou faux sentiment de scurit ? 5. Disk Encryption on Linux 6. Chiffrement des portables 7. Recommandations pour la protection des donnes et le chiffrement 8. Chiffrage transparent des donnes sous Linux 9. Besoins en matire de chiffrement et recommandations

32