LUKS, acronyme de Linux Unified Key Setup, est le standard GNU/Linux pour le chiffrement de disques. Nous allons voir dans cet article comment chiffrer une partition, un disque dur, ou même une clé USB et ainsi sécuriser nos données.
Installation des paquets nécessaires
Dans un premier temps, vous aurez besoin d’installer le package crypsetup :sudo apt-get install cryptsetup
Une fois le package installé, vous pouvez prendre connaissance des paramètres de chiffrement par défaut sur votre système à l’aide de la commande suivante : sudo cryptsetup --help
Prérequis
Identifiez la partition à chiffrer. Veillez également à ce qu’elle ne contienne pas de données non sauvegardées, car le chiffrement écrasera l’intégralité de son contenu.
Plusieurs commandes utiles pour obtenir le nom de votre partition :
mount
: affiche la liste des volumes montés (si votre partition est déjà montée)lsblk
oufdisk -l
: affiche la liste des partitions
Démontez la partition si elle était montée : sudo umount /dev/sdaX
Créer une partition LUKS
Une fois la partition identifiée et, le cas échéant, démontée, vous pouvez maintenant créer une partition LUKS (/dev/sdX correspondant à votre partition) :
sudo cryptsetup –verbose –verify-passphrase luksFormat /dev/sdX
Après avoir validé l’opération, l’utilitaire vous demandera de saisir votre passphrase. Veillez à choisir une passphrase suffisamment sécurisée, elle vous servira ensuite à « ouvrir » la partition chiffrée.
Ouvrir la partition chiffrée
Exécutez la commande suivante et entrez votre passphrase :sudo cryptsetup luksOpen /dev/sdX nomVolumeMapper
nomVolumeMapper
-> nom du mapper qui vous permettra d’accéder au contenu de la partition chiffrée. Il s’agit du périphérique virtuel/dev/sdX
: votre partition, ou périphérique physique.
Par la suite, tout ce qui sera écrit sur le périphérique virtuel sera chiffré avant d’être stocké sur le périphérique physique.
Si vous exécutez ensuite la commande lsblk, vous devriez voir apparaître dans la liste votre nomVolumeMapper
en type crypt
.
Créer un système de fichier sur la partition chiffrée
Votre partition chiffrée existe, mais elle a besoin d’un système de fichier pour être utilisable. Nous allons pouvoir créer un système de fichier EXT4 avec la commande suivante :sudo mkfs.ext4 /dev/mapper/nomVolumeMapper
Par défaut le système de fichier EXT4 garde une réserve d’espace libre, mais si la partition n’est pas destinée à faire tourner votre système, vous pouvez la supprimer et ainsi gagner de l’espace :sudo tune2fs -m 0 /dev/mapper/nomVolumeMapper
Monter le mapper de la partition chiffrée
Avant le premier montage, créez le dossier correspondant au point de montage souhaité :sudo mkdir /mnt/[nom Point de montage]
Montez ensuite le mapper :sudo mount /dev/mapper/nomVolumeMapper /mnt/[nom Point de montage]
Vous pouvez maintenant ajouter du contenu à votre partition chiffrée dans /mnt/[nom Point de montage].
Gérer les permissions d’accès à la partition chiffrée
Actuellement, seul l’utilisateur root peut écrire dans la partition chiffrée.
Nous allons maintenant créer un groupe d’utilisateurs que nous appellerons « encrypted-access » : tous les utilisateurs appartenant à ce groupe pourront accéder en écriture au contenu de la partition.
- Créer un nouveau groupe
sudo addgroup encrypted-access
- Ajouter un utilisateur « user1 » au groupe nouvellement créé.
sudo adduser user1 encrypted-access - Vérifier que user1 appartient bien au groupe encrypted-access
groups user1
- Mettre le groupe encrypted-access comme propriétaire du point de montage
sudo chown -vR :encrypted-access /mnt/[nom Point de montage]
- Donner les droits d’écriture aux membres du groupe
sudo chmod -vR g+w /mnt/[nom Point de montage]
Remarque : si vous venez d’ajouter votre utilisateur courant dans le groupe encrypted-access, il vous faudra d’abord vous déconnecter / reconnecter afin que son appartenance au groupe soit prise en compte.
Démonter et fermer la partition chiffrée
Démontage du mapper :sudo umount /dev/mapper/nomVolumeMapper
Fermeture de la partition chiffrée :sudo cryptsetup luksClose /dev/mapper/nomVolumeMapper