Recherche de site Web

Comment chiffrer des disques à l'aide de LUKS dans Fedora Linux


Dans cet article, nous expliquerons brièvement le chiffrement par bloc, la configuration de clé unifiée Linux (LUKS) et décrivons les instructions pour créer un périphérique de bloc chiffré dans Fedora Linux.

Bloquer le chiffrement de l'appareil

Le chiffrement du périphérique bloc est utilisé pour sécuriser les données sur un périphérique bloc en le chiffrant, et pour déchiffrer les données, un utilisateur doit fournir une phrase secrète ou une clé pour y accéder. Cela offre des mécanismes de sécurité supplémentaires car il protège le contenu de l’appareil même s’il a été physiquement détaché du système.

Introduction à LUKS

LUKS (Linux Unified Key Setup) est la norme de chiffrement de périphérique par bloc sous Linux, qui fonctionne en établissant un format sur disque pour les données et une politique de gestion de phrase secrète/clé. . Il stocke toutes les informations de configuration nécessaires dans l'en-tête de partition (également appelé en-tête LUKS), vous permettant ainsi de transporter ou de migrer des données de manière transparente.

LUKS utilise le sous-système de mappage de périphériques du noyau avec le module dm-crypt pour fournir un mappage de bas niveau qui contient le cryptage et le déchiffrement des données du périphérique. Vous pouvez utiliser le programme cryptsetup pour exécuter des tâches au niveau de l'utilisateur telles que la création et l'accès à des appareils chiffrés.

Préparation d'un périphérique bloc

Les instructions suivantes montrent les étapes de création et de configuration de périphériques de blocage chiffrés après l'installation.

Installez le package cryptsetup.

dnf install cryptsetup-luks

Ensuite, remplissez l'appareil avec des données aléatoires avant de le chiffrer, car cela augmentera considérablement la force du cryptage à l'aide des commandes suivantes.

dd if=/dev/urandom of=/dev/sdb1	           [slow with high quality random data ]
OR
badblocks -c 10240 -s -w -t random -v /dev/sdb1  [fast with high quality random data]

Avertissement : les commandes ci-dessus effaceront toutes les données existantes sur l'appareil.

Formatage d'un appareil crypté

Ensuite, utilisez l'outil de ligne de commande cryptsetup pour formater l'appareil en tant qu'appareil chiffré dm-crypt/LUKS.

cryptsetup luksFormat /dev/sdb1

Après avoir exécuté la commande, vous serez invité à saisir OUI (en majuscule) pour fournir deux fois une phrase secrète pour que l'appareil soit formaté pour être utilisé, comme indiqué dans la capture d'écran suivante.

Pour vérifier si l'opération a réussi, exécutez la commande suivante.

cryptsetup isLuks /dev/sdb1 && echo Success

Vous pouvez afficher un résumé des informations de chiffrement du périphérique.

cryptsetup luksDump /dev/sdb1

Création d'un mappage pour autoriser l'accès à un contenu décrypté

Dans cette section, nous allons configurer comment accéder au contenu déchiffré de l’appareil crypté. Nous allons créer un mappage à l'aide du mappeur de périphériques du noyau. Il est recommandé de créer un nom significatif pour ce mappage, quelque chose comme luk-uuid (où <uuid> est remplacé par le LUKS UUIDde l'appareil ( Identifiant universellement unique).

Pour obtenir l'UUID de votre appareil chiffré, exécutez la commande suivante.

cryptsetup luksUUID /dev/sdb1

Après avoir obtenu l'UUID, vous pouvez créer le nom de mappage comme indiqué (vous serez invité à saisir la phrase secrète créée précédemment).

cryptsetup luksOpen /dev/sdb1 luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

Si la commande réussit, un nœud de périphérique appelé /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c qui représente le périphérique déchiffré.

Le périphérique bloc qui vient d'être créé peut être lu et écrit comme n'importe quel autre périphérique bloc non chiffré. Vous pouvez voir des informations sur le périphérique mappé en exécutant la commande suivante.

dmsetup info /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

Création de systèmes de fichiers sur un périphérique mappé

Nous allons maintenant voir comment créer un système de fichiers sur le périphérique mappé, ce qui vous permettra d'utiliser le nœud du périphérique mappé comme n'importe quel autre périphérique bloc.

Pour créer un système de fichiers ext4 sur le périphérique mappé, exécutez la commande suivante.

mkfs.ext4 /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

Pour monter le système de fichiers ci-dessus, créez un point de montage pour celui-ci, par exemple /mnt/encrypted-device, puis montez-le comme suit.

mkdir -p /mnt/encrypted-device
mount /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device/

Ajouter des informations de mappage à /etc/crypttab et /etc/fstab

Ensuite, nous devons configurer le système pour établir automatiquement un mappage pour le périphérique et le monter au moment du démarrage.

Vous devez ajouter les informations de mappage dans le fichier /etc/crypttab, au format suivant.

luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c   none

au format ci-dessus :

  • luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c – est le nom du mappage
  • UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c : est le nom de l'appareil.

Enregistrez le fichier et fermez-le.

Ensuite, ajoutez l'entrée suivante à /etc/fstab pour monter automatiquement le périphérique mappé au démarrage du système.

/dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  /mnt/encrypted-device  ext4 0 0

Enregistrez le fichier et fermez-le.

Exécutez ensuite la commande suivante pour mettre à jour les unités systemd générées à partir de ces fichiers.

systemctl daemon-reload

Sauvegarde des en-têtes LUKS

Enfin, nous verrons comment sauvegarder les en-têtes LUKS. Il s'agit d'une étape critique pour éviter de perdre toutes les données du périphérique de bloc crypté, au cas où les secteurs contenant les en-têtes LUKS seraient endommagés par une erreur de l'utilisateur ou une panne matérielle. Cette action permet la récupération des données.

Pour sauvegarder les en-têtes LUKS.

mkdir /root/backups  
cryptsetup luksHeaderBackup --header-backup-file luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

Et pour restaurer les en-têtes LUKS.

cryptsetup luksHeaderRestore --header-backup-file /root/backups/luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

C'est tout! Dans cet article, nous avons expliqué comment chiffrer les périphériques bloqués à l'aide de LUKS dans la distribution Fedora Linux. Avez-vous des questions ou des commentaires concernant ce sujet ou ce guide, utilisez le formulaire de commentaires ci-dessous pour nous contacter.