GNU/Linux >> Tutoriels Linux >  >> Linux

10 exemples de configuration de chiffrement Linux pour la gestion des clés LUKS (comment ajouter, supprimer, modifier, réinitialiser la clé de chiffrement LUKS)

LUKS est le chiffrement de disque pour Linux.

La première fois que vous cryptez une partition avec LUKS (ou lorsque vous sélectionnez l'option de cryptage du disque lors de l'installation du système d'exploitation), vous devez spécifier un mot de passe qui sera utilisé lorsque vous ouvrirez la partition LUKS.

Mais, après cela, vous pouvez monter et démonter la partition autant de fois que vous le souhaitez sans avoir à saisir le mot de passe jusqu'au redémarrage du système.

Imaginez les deux scénarios suivants :

  1. Vous avez oublié le mot de passe LUKS. Ou, vous avez hérité d'un système de quelqu'un qui a une partition montée avec le cryptage LUKS. Vous n'avez pas de mot de passe LUKS pour cela. Lorsque vous redémarrez le système, vous aurez des problèmes, car vous n'avez pas la clé LUKS.
  2. Pour des raisons de sécurité, vous devez modifier fréquemment le mot de passe de chiffrement LUKS. Dans ce cas, vous devez faire pivoter la clé LUKS sans perturber la partition montée.

Dans ce didacticiel, nous aborderons tout ce que vous devez savoir sur la gestion des clés LUKS.

1. Huit emplacements pour clés LUKS

Dans LUKS, pour une seule partition chiffrée, vous pouvez avoir huit clés différentes.

N'importe laquelle des huit clés différentes peut être utilisée pour ouvrir la partition chiffrée.

Vous pouvez choisir d'avoir une seule clé sur une partition, ou vous pouvez attribuer les huit clés différentes.

Ces clés sont stockées dans des emplacements de clé LUKS pour la partition. Ainsi, il y aura 8 emplacements de clé pour une partition.

Pour afficher tous les emplacements de clé, utilisez cryptsetup luksDump comme indiqué ci-dessous. Dans cet exemple, il n'utilise que deux emplacements.

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Dans ce qui précède :

  • /dev/sdb1 est la partition chiffrée LUKS.
  • Le numéro d'emplacement de clé commence à partir de 0. Puisque nous avons 8 emplacements, le numéro d'emplacement de clé commence de 0 à 7.
  • ENABLED indique qu'une clé est attribuée à cet emplacement particulier.
  • Ici, nous avons deux emplacements avec la clé LUKS. Ainsi, la partition chiffrée /dev/sdb1 LUKS a deux clés assignées.

2. Ajouter une nouvelle clé LUKS

Pour ajouter une nouvelle phrase de passe LUKS (clé LUKS) à la partition chiffrée LUKS /dev/sdb1, utilisez la commande cryptsetup luksAddKey comme indiqué ci-dessous.

# cryptsetup luksAddKey /dev/sdb1
Enter any passphrase: 
Enter new passphrase for key slot: 
Verify passphrase: 

Dans ce qui précède :

  • Lorsqu'il indique "Entrez n'importe quelle phrase de passe :", vous devez saisir l'un des mots de passe existants pour /dev/sdb1. Comme nous l'avons vu ci-dessus, il y avait déjà deux mots de passe de l'emplacement 0 et de l'emplacement 1. Vous devez d'abord saisir l'un de ces mots de passe.
  • Une fois que vous avez entré un mot de passe existant, vous pouvez attribuer une nouvelle clé LUKS.

Chaque fois que vous ajoutez une nouvelle clé LUKS, elle sera ajoutée au prochain emplacement disponible. Comme nous avions déjà deux clés existantes, la nouvelle clé a été ajoutée à l'emplacement n° 2, qui était le prochain emplacement disponible.

Ainsi, Slot # 0 à 2 indiquera "ENABLED". Nous avons trois clés LUKS sur /dev/sdba1.

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: ENABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

3. Ajouter une nouvelle clé LUKS à un emplacement spécifique

Au lieu que LUKS ajoute la nouvelle clé au prochain emplacement disponible, vous pouvez également ajouter une nouvelle clé à un emplacement spécifique.

Pour cela, utilisez l'option -S dans le cryptsetup luksAddKey comme indiqué ci-dessous.

Dans cet exemple, nous ajoutons une nouvelle clé LUKS au Slot#5. J'ai attribué la nouvelle phrase de passe comme :PasswordforSlot5

# cryptsetup luksAddKey /dev/sdb1 -S 5

Comme nous le voyons ci-dessous, le slot #5 indique désormais "ENABLED", tandis que les slots #3 et #4 sont toujours à l'état DISABLED.

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: ENABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: ENABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

À ce stade, nous avons 4 clés LUKS attribuées à la partition chiffrée /dev/sdb1.

4. Supprimer une clé LUKS existante

Pour supprimer une clé existante de la partition LUKS, utilisez cryptsetup luksRemoveKey comme indiqué ci-dessous.

Dans cet exemple, il vous suffit de saisir le mot de passe (clé) que vous souhaitez effacer.

Supprimer/Effacer/Supprimer une clé LUKS d'un emplacement. Vous n'avez pas à spécifier le numéro d'emplacement. Spécifiez plutôt la clé à supprimer !.

Dans cet exemple, lorsqu'il demande "Entrez la phrase secrète LUKS à supprimer :", j'ai entré la clé créée dans l'exemple précédent :PasswordforSlot5

# cryptsetup luksRemoveKey /dev/sdb1
Enter LUKS passphrase to be deleted: 

Comme vous le voyez dans la sortie suivante de luksDump, la clé de l'emplacement #5 est maintenant effacée.

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: ENABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

5. Supprimer une clé LUKS à l'aide de luksKillSlot

Si vous n'avez pas la clé d'un emplacement particulier, mais que vous souhaitez simplement le supprimer, vous pouvez le faire à l'aide de la commande cryptsetup luksKillSlot, comme indiqué ci-dessous.

Dans cet exemple, nous supprimons la clé de l'emplacement LUKS #2.

Pour cela, vous devez entrer la clé LUKS pour l'un des emplacements. Ce n'est qu'une validation avant de supprimer la clé de l'emplacement n° 2.

# cryptsetup luksKillSlot /dev/sdb1 2
Enter any remaining LUKS passphrase: 

Comme vous le voyez dans la sortie suivante de luksDump, la clé de l'emplacement #2 est maintenant effacée.

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

6. Ajouter une nouvelle clé LUKS à partir d'un fichier

Vous pouvez également ajouter une nouvelle clé LUKS basée sur un fichier clé que vous avez déjà comme indiqué ci-dessous.

# cryptsetup luksAddKey  /dev/sdb1 masterkeyfile
Enter any passphrase: 

Dans ce qui précède :

  • masterkeyfile contient la nouvelle clé LUKS que vous souhaitez ajouter. Cela devrait être un fichier binaire.
  • Lorsqu'il vous demande "Entrez n'importe quelle phrase de passe :", entrez l'une des clés LUKS existantes pour la partition /dev/sdb1.
  • Comme vous le voyez ci-dessus, il n'a pas demandé de nouvelle clé LUKS, car il l'a extraite du fichier de clé principale.

Comme vous le voyez dans la sortie suivante de luksDump, cette nouvelle clé du fichier de clé principale est ajoutée à l'emplacement #2

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: ENABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

7. Réinitialiser la clé LUKS oubliée - Obtenir la clé existante

Si vous avez redémarré le serveur et que vous ne parvenez pas à monter votre partition LUKS cryptée, car vous avez oublié votre mot de passe LUKS, vous n'avez pas de chance, vous pouvez le réinitialiser.

Mais, si une partition LUKS cryptée est déjà ouverte, et si vous n'avez pas redémarré le système, et que vous avez oublié le mot de passe LUKS pour la partition qui est déjà montée (au moins LUKS s'est ouvert une fois depuis le dernier redémarrage), alors vous pouvez attribuer une nouvelle clé LUKS.

Dans ce scénario « J'ai oublié mon mot de passe LUKS », vous pouvez effectuer les deux étapes suivantes :

  1. Extraire la clé chiffrée actuelle de la partition LUKS
  2. Créer une nouvelle clé LUKS à l'aide de la clé chiffrée extraite ci-dessus

Dans cet exemple, j'ai monté la partition /home1, qui est une partition cryptée LUKS, mais je n'ai pas le mot de passe pour cela.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             127G   44G   76G  37% /
/dev/mapper/home1      93G  188M   88G   1% /home1

Le nom du volume est ce qui se trouve après "/dev/mapper/" dans la 1ère colonne de la sortie de la commande df ci-dessus. Ainsi, dans notre exemple, le nom du volume est "home1"

La table dmsetup suivante –showkeys affichera les clés chiffrées de toutes les partitions montées sur votre système.

# dmsetup table --showkeys 
home1: 0 197259264 crypt aes-cbc-essiv:sha256 607f482870c795a9b1e307ffbfc6643eaa219e9ef8c6773de02cd298c8fcda3c 0 8:17 4096

Le champ après "aes-cbc-essiv:sha256" est le mot de passe crypté. Obtenez la clé LUKS cryptée et stockez-la dans un fichier.

# vi existinglukskey.txt
607f482870c795a9b1e307ffbfc6643eaa219e9ef8c6773de02cd298c8fcda3c

8. Réinitialiser la clé LUKS oubliée - Créer un fichier de clé binaire

Maintenant, nous devons convertir cette clé existante d'un fichier texte en un fichier binaire. Utilisez la commande xxd comme indiqué ci-dessous.

# xxd -r -p existinglukskey.txt existinglukskey.bin

Dans ce qui précède :

    L'option
  • -r est pour l'inverse. Cela convertira le vidage hexadécimal en binaire.
  • L'option
  • -p est pour le postscript. Cela indique un style de vidage hexadécimal continu postscript.
  • fichier d'entrée lukskey.txt existant
  • fichier de sortie glukskey.bin existant. Celui-ci contiendra désormais le mot de passe LUKS chiffré existant dans un fichier binaire.

9. Réinitialiser la clé LUKS oubliée - Ajouter une nouvelle clé

Enfin, ajoutez une nouvelle clé LUKS en utilisant la clé LUKS existante que nous avons extraite dans le fichier binaire.

# cryptsetup luksAddKey /dev/sdb1 --master-key-file <(cat existinglukskey.bin)
Enter new passphrase for key slot: 
Verify passphrase: 

Dans ce qui précède :

  • –master-key-file Spécifiez ici le fichier binaire. N'utilisez pas le fichier lukskey.txt existant. Utilisez plutôt le fichier lukskey.bin existant que nous avons créé ci-dessus.
  • Comme vous le voyez ci-dessus, luksAddKey n'a pas demandé le mot de passe LUKS existant, car il l'a extrait du fichier binaire.
  • Lorsqu'il vous est demandé "Entrez une nouvelle phrase de passe pour l'emplacement de clé :", entrez le nouveau mot de passe LUKS. Mais, cette fois, ne l'oublie pas.

Encore une fois, souvenez-vous de ceci :si vous oubliez le mot de passe LUKS après avoir redémarré le système, vous n'avez plus de Luks (pas de chance), car vous ne pouvez pas le réinitialiser.

10. Vider la clé principale LUKS

Vous pouvez également vider la MasterKey et la garder en sécurité quelque part. Utilisez l'option –dump-master-key avec luksDump comme indiqué ci-dessous.

# cryptsetup luksDump --dump-master-key /dev/sdb1
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: 
LUKS header information for /dev/sdb1
Cipher name:    aes
Cipher mode:    cbc-essiv:sha256
Payload offset: 4096
UUID:           146d639a-757c-4bcb-aee6-8fe815345104
MK bits:        256
MK dump:        60 7f 48 28 70 c7 95 a9 b1 e3 07 ff bf c6 64 3e 
                aa 21 9e 9e f8 c6 77 3d e0 2c d2 98 c8 fc da 3c 

Gardez à l'esprit que vous devez stocker le vidage d'en-tête LUKS dans un endroit sûr. À l'aide du vidage de la clé principale, quelqu'un peut accéder à la partition chiffrée LUKS.


Linux
  1. 5 exemples de commandes tactiles Linux (comment modifier l'horodatage des fichiers)

  2. Comment ajouter plusieurs routes sous Linux à l'aide d'exemples de commande ip

  3. 15 exemples de commandes aptitude pour la gestion des paquets sous Linux

  4. Comment configurer les clés SSH pour une connexion ssh "sans mot de passe" sous Linux

  5. Comment supprimer le cryptage LUKS ?

Comment ajouter un hôte Linux distant à Cacti pour la surveillance

Comment ajouter un hôte Linux dans le serveur Zabbix pour la surveillance

Comment ajouter un mot de passe pour protéger un fichier Vim sous Linux

Comment changer d'utilisateur sous Linux

Comment changer l'adresse IP sous Linux

7 exemples de commande de route Linux (comment ajouter une route sous Linux)