GNU/Linux >> Tutoriels Linux >  >> Linux

Comment chiffrer une partition sous Linux

Dans l'un de nos articles précédents, nous avons appris comment vous pouvez chiffrer l'intégralité de votre système de fichiers racine sur Linux facilement.

Cependant, dans certains cas, vous souhaiterez peut-être chiffrer une simple partition qui peut stocker certains de vos fichiers importants.

Comme vous le savez déjà,chiffrer vos disques est crucial . Si votre ordinateur portable devait être volé, vous perdriez probablement toutes vos informations personnelles.

Cependant, vous pouvez résoudre ce problème de plusieurs manières :en chiffrant vos partitions de disque .

Dans ce didacticiel, vous découvrirez toutes les étapes nécessaires pour chiffrer une partition de disque entière , sécurisez-le avec une phrase secrète ou avec un fichier clé.

Pour l'exemple, l'article sera illustré sur un système d'exploitation RHEL 8, mais il ne devrait pas y avoir de différences si vous en utilisez un autre.

Prérequis

Pour exécuter la plupart des commandes fournies dans cet article, vous devez disposer des droits d'administrateur.

Pour vérifier si c'est le cas ou non, vous pouvez exécuter les "groupes » et vérifiez que vous appartenez à la commande « sudo ” pour les distributions basées sur Debian ou “roue ” pour ceux basés sur RedHat.

$ groups

Si vous ne disposez pas de ces droits, vous pouvez lire l'un de nos articles sur le sujet concernant l'obtention des droits sudo pour les distributions Ubuntu ou CentOS.

Crypter la partition à l'aide de cryptsetup

Comme précisé dans les articles précédents, chiffrer une partition implique de formater l'intégralité du disque .

Par conséquent, si vous envisagez de chiffrer un disque avec des données existantes, vous devez maintenant savoir que vos données seront effacées au cours du processus. Pour ne rien perdre, vous devez faire une sauvegarde de vos données sur un disque externe ou dans un cloud en ligne.

Créer une nouvelle partition sur le disque

Afin de chiffrer une partition, nous allons d'abord en créer une nouvelle à l'aide de l'utilitaire "fdisk" . Pour l'exemple, nous allons créer une nouvelle partition nommée "sdb1" sur le disque "sdb".

$ sudo fdisk /dev/sdb

Dans l'utilitaire fdisk, vous pouvez créer une nouvelle partition en utilisant le mot-clé "n" et précisez que vous souhaitez une partition d'une taille de 5 Go par exemple.

Si vous ne savez pas comment utiliser "fdisk" ou comment créer des partitions , nous avons un article dédié à ce sujet.

À la fin du processus, vous devez utiliser le mot-clé "w" afin d'écrire les modifications sur le disque.

Génial, maintenant que votre partition est créée, nous allons la formater en tant que partition LUKS .

Formater la partition de disque en tant que LUKS

Pour chiffrer la partition, nous allons utiliser une commande liée au projet LUKS .

Le projet LUKS, abréviation de Linux Unified Key System , est une spécification utilisée pour chiffrer tous les périphériques de stockage à l'aide de protocoles cryptographiques spéciaux. Comme décrit, LUKS n'est qu'une spécification, vous aurez besoin d'un programme qui l'implémente.

Dans ce cas, nous allons utiliser l'utilitaire "cryptsetup" . Comme expliqué dans la section du manuel, cryptsetup vise à créer des espaces chiffrés pour dm-crypt.

Tout d'abord, assurez-vous que vous avez le "cryptsetup  » à l'aide de la commande « qui ».

$ which cryptsetup

Si le cryptsetup est introuvable sur votre serveur, assurez-vous de l'installer à l'aide de l'une des commandes suivantes

$ sudo apt-get install cryptsetup                     (for Debian distributions)

$ sudo yum install cryptsetup                         (for RHEL/CentOS distributions)

Pour créer votre partition LUKS, vous devez exécuter le "cryptsetup" suivi de "luksFormat" et du nom de la partition à formater.

$ sudo cryptsetup luksFormat /dev/sdb1

Tout d'abord, il vous est rappelé que le cryptage de votre disque le formatera en fait au cours du processus.

Après avoir tapé "OUI ” en majuscules, vous devrez choisir une phrase secrète afin de sécuriser votre appareil.

LUKS prend en charge deux manières de protéger vos médias :en utilisant une phrase de passe (celui que nous utilisons actuellement) et à l'aide de clés . Pour l'instant, vous pouvez choisir un mot de passe sûr et votre partition devrait être formatée automatiquement.

Maintenant que votre partition est créée, vous pouvez l'inspecter en utilisant le "lsblk ” commande :la partition doit être marquée comme "crypto_luks ".

$ lsblk -f

Génial! Maintenant que le volume est formaté, nous pouvons l'ouvrir et créer un système de fichiers ext4 simple dessus.

Créer un système de fichiers ext4 sur une partition

Par défaut, votre volume chiffré est fermé, ce qui signifie que vous ne pouvez pas accéder aux données qui y sont disponibles.

Pour "ouvrir", c'est-à-dire "déverrouiller" votre volume, vous devez à nouveau utiliser la commande "cryptsetup" suivie de "luksOpen" et du nom du volume.

A la fin de la commande, fournissez un nom pour votre volume ouvert, dans ce cas nous allons choisir "cryptpart ".

$ sudo cryptsetup luksOpen /dev/sdb1 cryptpart

Comme vous pouvez le deviner, il vous est demandé de fournir la phrase secrète que vous avez choisie dans la section précédente.

En exécutant à nouveau la commande "lsblk", vous avez probablement remarqué qu'un volume a été créé sous le volume chiffré "sdb1" nommé "cryptpart “. Le « mappeur d'appareils » , qui est l'un des frameworks du noyau Linux, l'a fait pour vous.

Maintenant que votre volume est déverrouillé, il est temps pour vous de créer un nouveau système de fichiers ext4 dessus .

Pour créer un nouveau système de fichiers sur votre partition, utilisez la commande "mkfs" suivie du format du système de fichiers, dans ce cas "ext4".

$ sudo mkfs.ext4 /dev/mapper/cryptpart

Génial, le système de fichiers a été créé.

Vous pouvez maintenant le monter et y ajouter de nouveaux fichiers. Les fichiers créés sur ce volume seront automatiquement chiffrés .

$ mkdir -p /home/devconnected/files 

$ sudo mount /dev/mapper/cryptpart /home/devconnected/files

$ sudo chown devconnected:devconnected /home/devconnected/files

Génial, maintenant que vos données sont en sécurité sur une partition cryptée, voyons comment vous pouvez monter la partition de cryptage au démarrage.

Modifier les fichiers crypttab et fstab

De nombreux administrateurs système connaissent l'existence du fichier fstab qui est utilisé par votre processus init pour monter des lecteurs.

Cependant, lorsqu'il s'agit de partitions chiffrées, un autre fichier entre en jeu : /etc/crypttab .

Comme pour le fichier fstab, crypttab est lu par votre processus init lors du démarrage. Compte tenu des informations qui y sont fournies, il vous demandera de déverrouiller la partition ou il lira un fichier clé afin de le faire automatiquement.

Remarque :le /etc/crypttab n'existe peut-être pas sur votre système. Si ce n'est pas le cas, vous devrez peut-être le créer.

Les colonnes du crypttab sont décrites ci-dessus :

  • Nom de l'appareil :vous pouvez donner à votre appareil décrypté le nom de votre choix. De plus, il sera automatiquement créé par le mappeur de périphérique sous le chemin "/dev/mapper". Dans la section précédente, nous avons choisi "cryptpart ” pour cette colonne ;
  • UUID chiffré de l'appareil  :afin de trouver quelle partition contient les données chiffrées, votre système doit avoir son UUID, c'est-à-dire son identifiant unique ;
  • Méthode d'authentification  :comme expliqué, vous pouvez choisir "aucun ” pour la phrase de passe ou vous pouvez spécifier un chemin vers la clé. La méthode clé sera expliquée dans le dernier chapitre de cet article ;
  • Options de montage :à l'aide de cette colonne, vous pouvez spécifier le nombre d'essais pour une phrase secrète, le chiffrement, la méthode de chiffrement et de nombreux autres paramètres. La liste complète des options est disponible dans la page de manuel "crypttab".
$ sudo nano /etc/crypttab

# Content of the crypttab file
cryptpart    UUID=<partition_uuid>    none    luks

Si vous avez des doutes sur l'UUID de votre partition chiffrée, vous pouvez utiliser le "blkid " avec un simple tube " grep ".

$ sudo blkid | grep -i luks

Maintenant que le "/etc/crypttab ” est modifié, vous devrez modifier le fichier “fstab ” fichier pour spécifier le point de montage.

$ sudo blkid | grep -i ext4

$ sudo nano /etc/fstab

Dans les colonnes fstab, il faut préciser :

  • L'UUID déchiffré de l'appareil :pour le trouver, vous pouvez utiliser la commande "blkid" mais assurez-vous d'avoir ouvert l'appareil avant de continuer. Si l'appareil est fermé, vous ne pourrez pas trouver votre UUID ;
  • Le point de montage :où le périphérique déchiffré va être monté. Si le chemin n'existe pas, il va être créé automatiquement ;
  • Le type de système de fichiers  :dans ce cas, nous avons choisi d'utiliser "ext4" mais cela peut être différent sur votre système ;
  • Options de vidage et de transmission :nous ne voulons pas que le système de fichiers soit vérifié au démarrage, nous pouvons donc le conserver aux valeurs par défaut.

Lorsque vous avez terminé, enregistrez votre fichier et vous devriez être prêt à partir.

Compte tenu des étapes que vous venez d'effectuer, votre appareil est prêt et il devrait être automatiquement monté au démarrage.

Vérifiez le montage de l'appareil chiffré au démarrage

Afin de vérifier que l'appareil est correctement monté, nous pouvons redémarrer notre serveur et attendre que le module initramfs ouvre l'appareil chiffré.

$ sudo reboot

C'est l'écran que vous devriez voir, au moins sur RHEL8, au démarrage de votre serveur. Si vous fournissez la phrase secrète, votre machine devrait pouvoir la déverrouiller et la monter pour vous.

Une fois que vous êtes connecté à votre serveur, vous pouvez vérifier que la partition chiffrée a été correctement montée en utilisant à nouveau le "lsblk".

$ lsblk -f | grep sdb1 -A 2 

Félicitations, vous avez réussi à chiffrer une partition sous Linux à l'aide de LUKS !

Créer des clés pour une partition chiffrée

Comme expliqué précédemment, LUKS gère deux méthodes d'authentification, à savoir les phrases de passe et les fichiers de clé.

Dans la section précédente, nous avons utilisé des phrases secrètes, mais il peut être très pratique pour vous d'avoir également une clé d'authentification.

Tout d'abord, créez un fichier clé et stockez-le dans un endroit sûr (dans des répertoires auxquels les utilisateurs réguliers ne peuvent pas accéder, comme "/boot ” ou “/racine ").

$ echo "supersecretpass" > volume-key

$ sudo mv volume-key /boot/

Comme vous pouvez le constater, par défaut, le fichier a été créé à l'aide des informations d'identification de l'utilisateur et il dispose de trop d'autorisations.

À l'aide des commandes "chown" et "chmod", nous pouvons définir "root" comme propriétaire du fichier et modifier ses autorisations en lecture seule.

$ sudo chown root:root /boot/volume-key

$ sudo chmod 0400 /boot/volume-key

Maintenant que le fichier est défini en lecture seule, nous pouvons l'ajouter en tant que clé dans l'un des emplacements de notre volume LUKS.

Ajouter une clé au volume LUKS

Afin d'ajouter une clé à votre volume LUKS, vous devez exécuter la commande "cryptsetup" suivie de "luksAddKey", du nom du volume chiffré et du chemin d'accès à la clé.

$ sudo cryptsetup luksAddKey <encrypted_device> <path_to_key>

$ sudo cryptsetup luksAddKey /dev/sdb1 /boot/volume-key

Pour effectuer cette opération, vous serez invité à saisir votre phrase de passe. Une fois fournie, la clé sera automatiquement ajoutée à vos emplacements de clés.

Pour vérifier que la clé a été correctement ajoutée, vous pouvez inspecter vos emplacements de clés à l'aide du "luksDump ” commande.

$ sudo cryptsetup luksDump /dev/sdb1

Maintenant que la clé est ajoutée, il ne vous reste plus qu'à modifier le "/etc/crypttab" afin que votre système le trouve au démarrage.

$ sudo nano /etc/crypttab

# Content of the crypttab file
cryptpart    UUID=<partition_uuid>    /boot/volume-key    luks

Lors du redémarrage, votre partition chiffrée sera montée automatiquement !

Conclusion

Dans cet article, vous avez appris comment vous pouvez facilement chiffrer votre partition sous Linux en utilisant le projet LUKS et son implémentation nommée cryptsetup.

Vous pouvez voir que vous pouvez utiliser un "fichier clé ” afin que votre partition soit déverrouillée automatiquement.

Si vous êtes intéressé par un chiffrement complet du système, nous avons récemment écrit un article sur le sujet.

Aussi, si vous voulez en savoir plus sur L'administration système Linux , assurez-vous de jeter un œil à notre section dédiée sur le site Web.


Linux
  1. Comment partitionner un disque sous Linux

  2. Comment ajouter un nouveau disque à un serveur Linux existant

  3. Comment chiffrer une partition avec DM-Crypt LUKS sous Linux

  4. Comment utiliser fdisk pour partitionner un disque sous Linux

  5. Comment cloner une partition de disque Linux sur le réseau à l'aide de dd

Comment répertorier les partitions de disque sous Linux

Comment chiffrer le système de fichiers racine sous Linux

Comment chiffrer un fichier sous Linux

Comment créer des partitions de disque sous Linux

Comment chiffrer les périphériques de bloc à l'aide de LUKS sous Linux

Comment afficher les partitions de disque Linux (table de partition)