32
Sauvegarde et cryptage des données sur disque USB externe 2013 1 Sauvegarde sur disque USB externe Protégé par mot de passe sous Linux Rapport préparé et réalisé par Ali Amaniss Stagiaire en administration de systèmes DEC en Techniques de l’informatique Option : Gestion de Réseaux Informatiques Collège de Maisonneuve Stage réalisé à NVI Solutions, Montréal Janvier 2013

Sauvegade Et Restauration

Embed Size (px)

Citation preview

Page 1: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

1

Sauvegarde sur disque USB externe

Protégé par mot de passe sous Linux

Rapport préparé et réalisé par

Ali Amaniss

Stagiaire en administration de systèmes

DEC en Techniques de l’informatique

Option : Gestion de Réseaux Informatiques

Collège de Maisonneuve

Stage réalisé à NVI Solutions, Montréal

Janvier 2013

Page 2: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

2

Table of matières

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

Démontage de la partition ........................................................................................................... 5

Fermeture de la partition ............................................................................................................. 6

Résumé du montage et du démontage ......................................................................................... 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 d’utilisation .................................................................................................... 18

Annexes......................................................................................................................................... 20

Partition sécurisée sous Linux ................................................................................................... 20

Partition chiffrée avec cryptsetup .............................................................................................. 24

Bibliographie ................................................................................................................................ 32

Page 3: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

3

Introduction

La sauvegarde des données est un processus devenu nécessaire pour leur sécurité 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 déposer votre disque USB

n’importe où et les données contenues seront protégées et en sécurité. La commande

utilisée ici pour la sauvegarde est rsync. C’est 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 modifiés dans la source.

Ce petit tutoriel a pour objectif de donner les étapes nécessaires pour crypter une partition

Linux avec mot de passe. Il utilise le module md-crypt. Ensuite, nous proposons un

script de sauvegarde de vos données sur la partition ainsi cryptée.

Il existe aussi le module truecrypt pour le même travail. Cependant md-crypt est plus

intégré au noyau Linux et il est facile d’utilisation.

Le paquetage correspondant au module md-crypt est cryptsetup qu’il faut installer

comme nous le montrerons dans la suite de ce tutoriel.

Ce petit tutoriel a pour objectif de donner les étapes nécessaires pour crypter une partition

Linux avec mot de passe et faire la sauvegarde de vos données. Pour l’encryptage des

données, nous utilisons le module md-crypt. Ensuite, nous proposons un script de

sauvegarde de vos données sur la partition ainsi cryptée.

Le script proposé permet de faire, d’une manière transparente, le montage, le démontage

du disque dur ainsi que la sauvegarde et la restauration des données.

Il existe aussi le module truecrypt pour l’encryptage d’une partition. Cependant md-

crypt est plus intégré au noyau Linux et il est facile d’utilisation.

Le paquetage correspondant au module md-crypt est cryptsetup qu’il faut installer

comme nous le montrerons dans la suite de ce tutoriel.

Il existe d’autres moyens pour faire la sauvegarde telle que la commande dump qui fait

des sauvegardes complètes, différentielles et incrémentales. Mais celle-ci fait la

sauvegarde incrémentale sur toute la partition seulement et non sur un dossier particulier.

Ce qui est un inconvénient si nous voulons sauvegarder seulement un dossier particulier.

La version de Linux que nous utilisons pour tester toutes les manipulations présentées

dans ce document est Dubian. Mais pour adapter ces manipulations autres distributions

Linux, il suffit d’utiliser les commandes correspondantes pour l’installation de paquetage

par exemple.

Page 4: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

4

Cryptage de la partition

Commençons par le cryptage de la partition USB. La partition sera cryptée dans le sens

qu’il faut un mot de passe pour pouvoir la monter sous Linux. A défaut de ce mot de

passe, les données sont protégées et inaccessibles. De plus, les données sont cryptées par

cryptsetup à la volée et en toute transparence par rapport à l’utilisateur.

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 l’endroit ou se trouve votre partition.

Dans cette étape il faut donner un mot de passe qui vous permettra, dans le futur,

d’accéder à votre partition. C’est ce mot de passe qui garantit la confidentialité de vos

données. Personne ne peut accéder à votre partition pour la monter s’il n’est 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 d’abord l’ouvrir. 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.

Page 5: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

5

Une fois la partition ouverte et avant de la monter, il faut la formater. Souvenons nous

que l’on désigne la partition à partir de son ouverture avec le nom générique :

usb_backup.

Formatage de la partition sous Linux

Pour formater la partition comme on fait ordinairement sous linux, nous lançons la

commande suivante.

mkfs -t ext3 /dev/mapper/usb_backup

Montage de la partition

Une fois, votre partition formatée, pour pouvoir l’utiliser, il faut la monter avec la

commande suivante.

mount /dev/mapper/usb_backup /usb_backup

/usb_backup (deuxième argument) étant un dossier crée à la racine pour monter la

partition. Vous pouvez créer un dossier avec un nom de votre choix si vous préférez.

Travail sur la partition

Une fois ce montage fait, on peut accéder à la partition en utilisant le nom du dossier dont

il était question ci-dessus, à savoir /sub_backup que l’on pourra appeler autrement si

l’on veut. On peut accéder à la partition avec la commande :

# cd /usb_backup

Comme exemple d’utilisation, on peut créer un dossier dans cette partition:

# mkdir dossier

Une fois que le travail fini, il faut démonter la partition et la fermer comme décrit dans

les épates suivantes. Ainsi, on protège les données qui sont dessus.

Démontage de la partition

Une fois votre travail terminé sur votre partition, il faut la démonter avant de la fermer.

Pour la démonter, on utilise la commande suivante.

umount /usb_backup

Page 6: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

6

La dernière étape et de fermer votre partition. Cette opération est nécessaire pour protéger

vos données car n’importe quelle personne malveillante peut monter votre partition et

accéder à vos données.

Fermeture de la partition

Pour fermer la partition et ainsi la protéger de toute intrusion malveillante, il faut faire la

commande suivante :

cryptsetup luksClose usb_backup

Résumé du montage et du démontage

Pour revenir travailler sur votre partition, il suffit de l’ouvrir et de la monter comme dans

les étapes précédentes. 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 démonter 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 protège

la partition. Pour ce faire, il suffit de taper les commandes suivantes. Il faut en premier

modifier le mot de passe, ensuite il faut détruire l’ancien mot de passe.

cryptsetup -v luksAddKey /dev/sdb1

cryptsetup -v luksKillSlot /dev/sdb1

Page 7: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

7

Sauvegarde

Introduction

Pour faire la sauvegarde de vos données sur la partition ainsi protégée par mot de passe,

nous utiliserons l’utilitaire rsync. Cet utilitaire parcourt le répertoire à sauvegarder et ne

copie sur la partition cible que les fichiers qui ont été modifiés. Ceux qui n’ont reçu

aucune modification à partir de la dernière sauvegarde ne sont pas copiés. Cela convient

lorsqu’on a de très grandes quantités de données à sauvegarder et/ou que les sauvegardes

des mêmes données sont fréquentes.

En fait, l’utilitaire 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 précédemment, les fichiers nécessaires afin de rendre les deux dossiers

identiques.

Il existe bien sûr d’autres moyens tels que la commande dump qui fait des sauvegardes

complètes, incrémentales et différentielles. Mais ici, nous nous intéresserons à la

commande rsync.

Installation de rsync

Commencer par installer le paquetage rsync si ce n’est déjà fait :

sudo apt-get install rsync

Une fois fait, vérifiez que vous avez accès à la commande rsync en tapant à la ligne de

commande:

rsync

Sauvegarde

La sauvegarde des données peut se faire entre deux dossiers d’une machine locale ou

entre un dossier de la machine locale et un dossier d’une 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.

Page 8: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

8

rsync -avrtpl --progress --del /dossier/ /backup

Cette commande permet de copier les fichiers du répertoire /dossier/ (qui ont été

modifiés) vers le dossier /backup/ sur la même 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 récursion et

de préserver pratiquement tout.

-v : plus loquace.

-r : parcours le dossier indiqué et tous ses sous-dossiers.

-t : préserve 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 d’une machine distante la procédure est

la même sauf qu’il faut ajouter l’adresse IP de la machine distante.

rsync -avrtpl --progress --del /dossier/ 192.168.40.34:/backup

Il se pourrait que l’on vous demande le mot de passe de l’utilisateur root de la machine

distante. Il est possible de le donner interactivement ou de le passer par un fichier.

Bien sûr, si les fichiers à sauvegarder sont la machine distante et que l’ont veut les

sauvegarder sur la machine locale, il suffit d’inverser l’ordre des deux machines et ainsi

donner la commande suivant.

rsync -avrtpl --progress --del/backup 192.168.40.35 :/dossier

Page 9: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

9

Sauvegarde sur le disque USB crypté

Afin de sauvegarder les données de la machine locale sur le disque USB crypté ci-dessus,

il suffit de le connecter, l’ouvrir et le monter avant de lancer la commande rsync dessus.

Pour l’ouverture 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 données seront stockées 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 n’est pas obligatoire.

Une fois le transfert de données terminé, il faut démonter et fermer la partition avant de

déconnecter 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 d’utiliser un

script après avoir connecté votre disque USB externe. Écrivez ce script dans un fichier,

disons sauvegarde.sh.

Donnez les autorisations d’exécution à ce script avec la commande :

chmod +x sauvegarde.sh

Ensuite, lancer le comme suit :

./sauvegarde.sh

Page 10: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

10

Le code du script

Nous avons écrit un script qui permet de rendre transparent toutes les manipulations

concernant la sauvegarde des données sur disque USB externe. Ce script permet de

monter, de démonter le disque dur. Il permet également de faire la sauvegarde ou la

restauration dans disque USB déjà 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 sûr, les sauvegardes et les restaurations qui se font dans le script sont adaptées aux

besoins de chacun. Il faut donc changer le script au niveau des commandes rsync afin de

l’adapter à d’autres sauvegardes. Nous n’avons pas mis dans le menu une option qui

permettrait de changer les dossiers sauvegardés. Mais cet ajout peut se faire aussi pour

mieux gérer n’importe quelle sauvegarde. Il suffirait de changer de dossier pour changer

de sauvegarde.

Avant d’expliquer le menu du script, nous donnons d’abord 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;

Page 11: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

11

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

Page 12: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

12

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

Page 13: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

13

{

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;

Page 14: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

14

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

Page 15: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

15

{

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

Page 16: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

16

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;;

Page 17: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

17

R*) big_restore; choix;;

q*) exit;;

Q*) exit;;

*) read -p "Bad choice. Hit return key to continue..."

choix;;

esac

}

verifier_le_montage;

choix;

Page 18: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

18

Menu et mode d’utilisation

Dans cette section, nous dérivons le fonctionnement du script. Lors du lancement du

script, le menu suivant s’affiche.

---------------------------------------------------------------

+ 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 décrivons les options proposées 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 protège le disque dur.

m : permet de monter la partition sans faire de sauvegarde ni de restauration.

u : de démonter la partition si elle est déjà montée.

b : permet de faire la sauvegarde d’une partition déjà montée.

r : permet de faire la restauration des données à partir d’une partition déjà montée.

B : permet de monter une partition, de sauvegarder et de démonter la partition.

R : permet de monter une partition, de restaurer les données et de démonter la partition.

Page 19: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

19

q : permet de quitter le script.

Remarque : toutes ces manipulations ont été testées avec succès sur une machine Dubian

avec un disque dur USB externe de plusieurs téraoctets.

Page 20: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

20

Annexes

Partition sécurisée sous Linux

(Source)

Nous allons utiliser dm-crypt et non pas son concurrent direct truecrypt pour protéger une

partition sous Linux. Pourquoi retenir dm-crypt ? Car ce dernier est simple d’usage et

bien intégré au noyau Linux ce dernier aspect est également un inconvénient notamment

si vous souhaitez pourvoir lire vos données 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 considérons au travers

de cet exemple que nous souhaitons sécuriser la partition /dev/hda6. Attention toutes les

données présentes sur la partition en question seront perdues ! L’ensemble de la

configuration se réalise 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 : accéder à une partition sécurisée

Cette partition est maintenant au format cryptsetup et elle est fermée par un mot de passe

(LUKS passphrase). Avant de pouvoir l’utiliser, il nous faut l’ouvrir :

Page 21: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

21

{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 mérite quelques explications sur les paramètres passés : - luksOpen

indique que l’on souhaite ouvrir une partition, - /dev/hda6 indique quel partition physique

on souhaite ouvrir, - crypt_hda6 donne un nom logique (de mapping) à la partition

ouverte.

Après 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

système /dev/mapper/crypt_hda6 est une partition comme les autres mise à part que dm-

crypt se charge de crypter/décrypter toutes opérations E/S. schématiquement

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 sécurisée

Quand on vous le dit que l’on utilise plus que /dev/mapper/crypt_hda6 et de façon

standard.

Formater en ext3 la partition:

mkfs -t ext3 /dev/mapper/crypt_hda6

Résultat 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

Page 22: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

22

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 très classique mount. Monter la partition:

mkdir /mnt/partition_securise

mount /dev/mapper/crypt_hda6 /mnt/partition_securise

Étape 5 : Démonter et fermer la partition

La commande classique umount. Démonter la partition:

umount /mnt/partition_securise

Mais votre partition est restée ouverte, une autre personne passant sur votre PC peut fort

bien réaliser un mount sans avoir rien d’autre à 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 n’existe plus et les données

stockées sur /dev/hda6 sont totalement inaccessibles. Surtout ne perdez pas votre mot de

passe car il n’y a pas moyen de récupérer les données. Autres éléments.

Monter automatiquement une partition de type cryptsetup

Cela dépend 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> <key file>

<options>

crypt_hda6 /dev/hda6 none luks

Lors du prochain reboot il vous sera demandé un mot de passe au moment où le système

doit accéder à 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 d’autres possibilités mais là je vous laisse regarder la doc.

man cryptsetup,

Page 23: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

23

man crypttab

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

Page 24: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

24

Partition chiffrée avec cryptsetup

(Source)

Afin de protéger au mieux vos données personnelles, il peut être nécessaire de chiffrer

vos partitions utilisateur. En effet, si via le système il est impossible d’accéder aux

fichiers qui ne vous appartiennent pas, un simple passage sur un livecd permet d’accéder

à n’importe quel fichier de votre système. Le chiffrement de partition permet d’éviter ça.

Ubuntu intègre en standard les outils nécessaires à une gestion simple de votre sécurité.

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 nécessaire charger les modules « aes-i586 », « dm_mod » et « dm_crypt ». Au besoin,

les ajouter à la liste de /etc/modules (cf. infra Référence).

Applications

Chiffrer une partition

Créer un conteneur pour vos données : une partition ou un fichier contenant votre

système de fichier.

Les données sont chiffrées à la volée, tout est transparent pour l'utilisateur, mais

cependant il y a un coût machine pour le chiffrement qui est négligeable, tant que la

fonction première 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 définir la clé initiale). Le chiffrage sera de type AES avec un

Page 25: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

25

algorithme de hachage SHA256. Vous allez taper votre phrase de chiffrage qui va

permettre de créer un conteneur standard chiffré à l'aide de votre phrase.

Le conteneur chiffré de manière standard va stocker la clé de chiffrage maître qui servira

à ouvrir votre volume sécurisé. Il est possible d'ajouter jusqu'à 8 clefs supplémentaires

dans des "slots", qui déverrouillent l'accès à la clef maître. Vous pouvez ainsi avec cette

méthode avoir plusieurs utilisateurs qui vont chacun ouvrir le conteneur chiffré avec leur

clef, et il vous sera possible de révoquer les clés éventuellement compromises.

Pour ajouter une clé d'accès au conteneur chiffré précédent :

sudo cryptsetup luksAddKey /dev/hda7

Pour voir l'état du conteneur chiffré et les "slots" utilisés :

sudo cryptsetup luksDump /dev/hda7

Pour révoquer 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 chiffrée. 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 démontage et fermeture du volume chiffré :

sudo umount /mnt

sudo cryptsetup luksClose home

Aparté sur la transformation de fichiers en volumes

Pour générer un fichier de nom big de 10 Mo :

dd if=/dev/urandom bs=1M count=10 of=big

Pour éviter de dévoiler des informations, cette commande remplit le fichier avec du

contenu aléatoire (/dev/urandom/). Cette opération est horriblement lente (quelque

MiB/s). Utilisez Truecrypt pour générer un volume dans un fichier, la génération du

fichier est beaucoup plus rapide et continuez ensuite normalement ce tutoriel.

Page 26: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

26

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

:

sudo losetup /dev/loop0 big

Pour déconnecter 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 systèmes de fichiers

embarqués dans des fichiers.

Montage automatique

Depuis Dapper, Ubuntu intègre la gestion des volumes chiffrée LUKS en standard, ce

qui permet de gérer de manière automatique le montage et le démontage de vos volumes

(partitions) sécurisées. La configuration des paramètres du volume chiffré est dans le

fichier /etc/crypttab et le montage du volume est de manière classique dans /etc/fstab.

Un exemple de chiffrement du dossier /home:

Modifier le fichier /etc/crypttab :

# <target name> <source device> <key file> <options>

home /dev/hda7 none luks

Modifier /etc/fstab pour le volume qui nous intéresse :

# /etc/fstab: static file system information.

#

# <file system> <mount point> <type> <options> <dump> <pass>

/dev/mapper/home /home ext3 defaults 0 1

La clé d'ouverture du volume chiffré vous sera demandée au démarrage de la machine si

votre partition est montée automatiquement (voir fstab).

Attention, si une ligne est déjà présente pour le montage de la partition qui héberge le

système de fichier chiffré (/dev/hda7 dans l'exemple ci-dessus), il faut la commenter (en

ajoutant un # comme premier caractère) pour éviter un message d'erreur au démarrage.

Ouverture automatique du conteneur chiffré au démarrage à l'aide d'un support

amovible

On peut grâce à LUKS monter automatiquement les partitions chiffrées au démarrage

sans mot de passe à taper. Ceci est possible par l'intermédiaire d'une clé USB ou d'une

carte SD ou MS :

Page 27: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

27

http://web.archive.org/web/20100110234521/http://petaramesh.org/post/2007/11/29/Une-

cle-de-contact-pour-votre-portable-chiffre

Suivre la procédure indiquée 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 manière, le système va tenter de déchiffrer la partition /dev/hda7 au moyen du

fichier clé "keyfile" se trouvant sur le périphérique /dev/sda (en FAT par exemple). Le

"1" représente le temps d'attente avant de demander le mot de passe si le fichier clé n'est

pas trouvé.

ou

Pour les versions plus récentes d'Ubuntu (10.04 et plus) : http://wejn.org/how-to-make-

passwordless-cryptsetup.html#28bd9ec7b2f9ea74ea0499586bde727c

Ouverture et montage automatique de la partition chiffrée à l'ouverture de session,

sans support amovible ni passphrase

Les techniques exposées plus haut offrent un haut niveau de sécurité pour peu que la

passphrase de LUKS ait été bien choisie. Cependant, elles sont également assez lourdes,

dans la mesure où elles nécessitent que l'utilisateur rentre à chaque démarrage sa

passphrase (ou qu'il porte sur lui en permanence le support amovible permettant

l'ouverture du conteneur chiffré). La méthode proposée ici va permettre d'ouvrir

automatiquement le conteneur chiffré et de monter la partition chiffrée au démarrage de

la session, sans que la passphrase ne soit saisie. La partition chiffrée n'est donc plus

protégée que par le mot de passe d'ouverture de session.

La passphrase de la partition cryptée et le mot de passe associé au compte doivent être

les mêmes (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 préalable 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 sécurité est donc plus bas, mais le chiffrement devient parfaitement

transparent pour l'utilisateur. Cette solution convient donc bien si vous souhaitez

simplement protéger vos données personnelles en cas de vol de votre machine par un

quidam quelconque, mais peut-être pas si vous avez des documents vraiment

confidentiels à protéger.

Nous allons utiliser PAM, utilitaire habituellement utilisé pour le montage automatique

de partitions sur des postes multi-utilisateurs.

Page 28: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

28

La situation est la suivante : la partition /dev/sda2 est notre partition cryptée. Elle doit

être montée automatiquement au point /mnt/cryptodisk. Les opérations suivantes ont

donc été effectuées au préalable :

#Création du containeur chiffré. Attention, la partition ne doit pas

être montée. De plus, toute donnée présente 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

#Création du système de fichier ext3 sur cette partition chiffrée :

sudo mkfs.ext3 /dev/mapper/cryptodisk

#Création du point de montage :

sudo mkdir /mnt/cryptodisk

#Définition du point de montage: Dans le fichier /etc/fstab, notez

l'option

#"noauto" qui permet de faire apparaître la partition dans le fichier

fstab

#sans pour autant la monter automatiquement au démarrage

/dev/mapper/cryptodisk /mnt/cryptodisk ext3

defaults,noauto 0 0

#Et on s'arrête là. Ne RIEN ajouter dans le fichier /etc/cryptab

Notre partition chiffrée est à présent créée, formatée, et un point de montage a été défini.

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 début du fichier, après la première balise <pam-

mount>, ajouter la ligne suivante :

<volume user="*" mountpoint="/mnt/cryptodisk" path="/dev/sda2"

fstype="crypt" />

La partition /dev/sda2 de type "crypt" (partition cryptée) sera montée à 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

Page 29: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

29

@include common-pammount

Remarque : ceci n'est plus utile depuis Jaunty.

Et voilà ! Il ne vous reste plus qu'à redémarrer votre machine, et à l'ouverture de session

la partition chiffrée sera ouverte et montée automatiquement, sans que la passphrase ne

vous soit demandée. Bien entendu, si vous avez au préalable désactivé l'authentification

pour l'ouverture de la session, cela ne sert pas à grand chose d'avoir une partition chiffrée

(car alors l'authentification étant désactivée, la session est ouverte automatiquement à

chaque démarrage et la partition chiffrée est également ouverte et montée

automatiquement et sans passphrase à chaque démarrage).

Remarque: méthode testée et approuvée sous Ubuntu 10.04

Réglage de la priorité d'exécution

Par défaut le niveau de priorité du démon de chiffrage est trop élevé et peut induire des

ralentissements gênants. Vous pouvez modifier cette priorité à l'aide de la commande

renice :

sudo renice 10 `pgrep kcryptd`

Pour exécuter cette commande à chaque démarrage, il faut la placer dans le fichier

/etc/rc.local avant la ligne exit 0 sans sudo car c'est le système avec les droits

administrateur qui l'exécutera.

#!/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.

Créer une partition de base

Pour cela, il faut créer une partition de swap classique.

Je ne suis pas sûr que ce soit nécessaire que la partition soit une swap, mais lorsque je l'ai

fait, c'en était une et ça marchait. Donc si quelqu'un pouvait préciser …

crypttab

J'ai pris la commande dans le crypttab de la page du manuel. Il faut donc ajouter dans

/etc/crypttab :

Page 30: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

30

cryptoswap /dev/sdXX /dev/urandom cipher=aes-cbc-

essiv:sha256,hash=ripemd160,size=256,swap

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 créer le système

/dev/mapper/cryptoswap.

fstab

Il faut maintenant monter ce système dans /etc/fstab :

/dev/mapper/cryptoswap none swap sw 0 0

Et voilà, le tour est joué, il ne reste plus qu'à redémarrer. La swap sera alors montée et

chiffrée par une clé aléatoire.

Conclusion

Le nouveau système de gestion des volumes chiffrés est très bien implémenté dans

Dapper. Il permet notamment de sécuriser votre /home sans manipulation complexe autre

que de renseigner la passphrase lors du démarrage.

Spécificité Edgy

Le fait de chiffrer votre dossier /home (par exemple) nécessite de taper la clé d'ouverture

du volume chiffré lors de la séquence de démarrage de l'ordinateur, mais sous Edgy le

système de boot n'est plus séquentiel comme sur Dapper, ce qui entraîne 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 système de démarrage, intégré dans Edgy).

Sous Windows

Grâce au logiciel FreeOTFE, il est possible de monter de façon non permanente une

partition LUKS encryptée par Cryptsetup sous Linux à partir de votre système Windows.

Pour monter et utiliser le même type de partition que celle décrite dans ce wiki, voici les

étapes :

1. Télécharger FreeOTFE ici

Page 31: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

31

2. Extraire les fichiers de l'archive dans un dossier et ouvrir FreeOTFE.exe

3. Lorsqu'on vous demande si vous voulez démarrer FreeOTFE en portable mode, dites

oui. Si vous voulez utiliser FreeOTFE régulièrement afin de monter des volumes cryptés

sous Windows, vous pouvez cliquer sur non et activer de façon permanente tous les

pilotes de cryptage un par un.

4. Cliquez ensuite sur File / Linux volume / Mount partition

5. Choisissez la partition qui est encryptée sur votre disque dur

6. Dans la grande case, entrez votre clé secrète, puis cliquez sur Ok

7. Si vous avez choisi la bonne partition et la bonne clé, le programme détectera

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 redémarrage, il faudra tout reprendre de zéro à chaque

fois.

Si vous fermez FreeOTFE alors qu'il est en mode portable, vous devez lui spécifier de ne

pas désactiver les pilotes d'encryptage afin de ne pas perdre l'usage de votre partition.

Avant de fermer votre ordinateur, il est recommandé de démonter la partition à l'aide de

FreeOTFE et de lui permettre de désactiver tous les pilotes à sa fermeture.

Si votre système 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'accès et la

journalisation. Pour du partage entre Windows et Linux, le Fat32 est plus conseillée.

Liens

Une bonne référence : https://wiki.ubuntu.com/EncryptedFilesystemHowto

Un 'howto' expliquant étape par étape comment mettre en œuvre LUKS pour

construire un système sûr: A startup key to protect my data

Tutoriel d'installation d'une Ubuntu utilisant cryptsetup

Page 32: Sauvegade Et Restauration

Sauvegarde et cryptage des données sur disque USB externe 2013

32

Bibliographie

1. Cryptographic key recovery from Linux memory dumps

2. Encrypted File System Howto (dm-crypt)

3. Partition chiffrée avec Cryptsetup

4. Le chiffrement de disque sous linux : Vrai ou faux sentiment de sécurité ?

5. Disk Encryption on Linux

6. Chiffrement des portables

7. Recommandations pour la protection des données et le chiffrement

8. Chiffrage transparent des données sous Linux

9. Besoins en matière de chiffrement et recommandations