Chiffrer un disque dur avec Luks

Dans ce billet nous chiffrerons un disque dur externe avec luks qui est une solution libre et robuste

IMPORTANT : Je pars dans l'exemple d'un disque/clef USB vierge et formaté, si vous suivez ce tuto, sauvegardez vos données sinon :

alonePC

Rappel : Les disques au dessus de 2,2 To doivent être partitionnés en GPT, pour les disques en dessous de 2,2GTo choisissez plutôt MBR

Installez les paquets nécessaires

apt-get update && apt-get install cryptsetup

Trouvez votre disque/clef USB

$lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0   18G  0 part /
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sdb      8:16   0   60G  0 disk 

Dans mon cas il s'agit du disque sdb

Dans cette exemple le disque contiendra 2 partitions, une non chiffrée de 40 Go et une chiffrée de 20 Go

Si vous ne voulez pas partitionner votre disque en plusieurs partition, partitionnez le seulement en une seule et passez directement à l'étape de chiffrement

Partitionnement de mon disque

$fdisk /dev/sdb

n       (Créer nouvelle partition)
p       (Partition primaire)
1       (Numéro de partition)
2048    (par défaut Début de la partition)
+40G    (Taille de la partition 40Go)

n       (Créer nouvelle partition)
p       (Partition primaire)
2       (Numéro de partition)
        (Choix par défaut, commence au 40Go)
        (Choix par défaut, emplacement restant du disque)

w       (Confirme le partitionnement du disque)

Constatons que mon disque est bien partitionné :

$lsblk

sda      8:0    0   20G  0 disk 
├─sda1   8:1    0   18G  0 part /
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sdb      8:16   0   60G  0 disk 
├─sdb1   8:17   0   40G  0 part 
└─sdb2   8:18   0   20G  0 part 

Chiffrement du disque

Chiffrez la partition :

$ cryptsetup luksFormat -c aes -h sha256 /dev/sdb2

WARNING!
========
Cette action écrasera définitivement les données sur /dev/sdb2.

Are you sure? (Type uppercase yes): YES
Saisissez la phrase secrète: 
Vérifiez la phrase secrète: 

Ouvrez la partition :

$cryptsetup luksOpen /dev/sdb2 USB    #USB n'est qu'un alias mettez ce que vous voulez

Saisissez la phrase secrète pour /dev/sdb2:

Formatez la partition :

$mkfs.ntfs /dev/mapper/USB -L DISKENCRYPT   

#USB l'alias précédemment renseigné
#DISKENCRYPT Le label attribué au volume (A votre guise)

Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

Pour formater en exfat :

$mkfs.exfat -n USB /dev/mapper/USB

mkexfatfs 1.2.3
Creating... done.
Flushing... done.
File system created successfully.

Et voila un disque avec une partition chiffrée ! Have a nice day

Montage manuel

cryptsetup luksOpen /dev/sdb2 USB
mkdir /mnt/USB
mount -t ntfs /dev/mapper/USB /mnt/USB

Démontage manuel

umount /mnt/USB
cryptsetup luksClose /dev/mapper/USB