Chiffrement du disque complet avec LUKS sous RHEL

Vous pouvez crypter les partitions de votre serveur RHEL à l'aide de Linux® Unified Key Setup (LUKS), ce qui est important pour les ordinateurs portables et les supports amovibles. Avec LUKS, plusieurs clés utilisateur peuvent être utilisées pour décrypter une clé principale qui sert au chiffrement en bloc de la partition. Les instructions suivantes s'appliquent aux versions RHEL 8 ou plus récentes.

Cette procédure suppose que le serveur peut accéder à un nouveau volume IBM Cloud® Block Storage for Classic, non chiffré, qui n'a été ni formaté, ni monté. Pour plus d'informations sur la connexion d' Block Storage for Classic à un hôte Linux®, consultez l'une des rubriques suivantes.

Tous les nouveaux Block Storage for Classic sont automatiquement mis à disposition avec le chiffrement au repos géré par le fournisseur. Pour plus d'information, voir Sécurisation des données - Chiffrement au repos géré par le fournisseur.

Opérations possibles avec LUKS

  • LUKS crypte l'intégralité des périphériques blocs et convient donc parfaitement à la protection du contenu des appareils mobiles tels que les supports de stockage amovibles ou les disques durs d'ordinateurs portables.
  • Le contenu sous-jacent de l'unité par bloc chiffrée est arbitraire, ce qui le rend utile pour le chiffrement des unités de permutation. Le chiffrement peut également être utile avec certaines bases de données qui utilisent des unités par bloc spécialement formatées pour le stockage des données.
  • LUKS utilise le sous-système existant du noyau appelé « device mapper ».
  • LUKS offre un renforcement des mots de passe, qui protège contre les attaques par dictionnaire.
  • LUKS contient plusieurs emplacements de clé, ce qui permet aux utilisateurs d'ajouter des clés de sauvegarde ou des phrases passe.

Opérations impossibles avec LUKS

  • LUKS n'autorise pas les applications qui exigent que de nombreux utilisateurs (plus de huit) disposent de clés d'accès distinctes pour les mêmes appareils.
  • LUKS ne fonctionne pas avec les applications qui requièrent un chiffrement de niveau fichier. Pour plus d'informations, consultez le Guide de sécurité RHEL.

Configuration d'un volume chiffré LUKS avec Block Storage for Classic Endurance

Le processus de chiffrement de données crée une charge sur l'hôte, qui risque d'impacter les performances.

  1. Saisissez la commande suivante à une invite shell en tant que root pour installer le package requis :

    dnf install cryptsetup-luks
    
  2. Obtenez l'ID de disque :

    fdisk –l | grep /dev/mapper
    
  3. Localisez votre volume dans la liste.

  4. Chiffrez l'unité par bloc.

    1. Cette commande initialise le volume et vous permet de définir une phrase passe.

      cryptsetup -y -v luksFormat /dev/mapper/3600a0980383034685624466470446564
      
    2. Répondez par YES (toutes les lettres en majuscules).

    3. Le périphérique apparaît maintenant sous forme de volume chiffré :

      $ blkid | grep LUKS
      /dev/mapper/3600a0980383034685624466470446564: UUID="46301dd4-035a-4649-9d56-ec970ceebe01" TYPE="crypto_LUKS"
      
  5. Ouvrez le volume et créez un mappage.

    cryptsetup luksOpen /dev/mapper/3600a0980383034685624466470446564 cryptData
    
  6. Entrez la phrase de passe.

  7. Vérifiez le mappage et affichez l'état du volume chiffré.

    # cryptsetup -v status cryptData
    /dev/mapper/cryptData is active.
      type:  LUKS1
      cipher:  aes-cbc-essiv:sha256
      keysize: 256 bits
      device:  /dev/mapper/3600a0980383034685624466470446564
      offset:  4096 sectors
      size:    41938944 sectors
      mode:    read/write
      Command successful
    
  8. Ecrivez des données aléatoires sur l'unité chiffrée /dev/mapper/cryptData. Cette action garantit que le monde extérieur considère ces données comme aléatoires, ce qui signifie qu'elles sont protégées contre la divulgation des habitudes d'utilisation. Cette étape peut prendre un certain temps.

    shred -v -n1 /dev/mapper/cryptData
    
  9. Formatez le volume.

    mkfs.ext4 /dev/mapper/cryptData
    
  10. Montez le volume.

mkdir /cryptData
mount /dev/mapper/cryptData /cryptData
df -H /cryptData

Démontage et fermeture du volume chiffré en toute sécurité

umount /cryptData
cryptsetup luksClose cryptData

Remontage et montage d'une partition chiffrée LUKS existante

$ cryptsetup luksOpen /dev/mapper/3600a0980383034685624466470446564 cryptData
   Enter the password previously provided.
$ mount /dev/mapper/cryptData /cryptData
$ df -H /cryptData
$ lsblk
NAME                                       MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
xvdb                                       202:16   0    2G  0 disk
└─xvdb1                                    202:17   0    2G  0 part  [SWAP]
xvda                                       202:0    0   25G  0 disk
├─xvda1                                    202:1    0  256M  0 part  /boot
└─xvda2                                    202:2    0 24.8G  0 part  /
sda                                          8:0    0   20G  0 disk
└─3600a0980383034685624466470446564 (dm-0) 253:0    0   20G  0 mpath
└─cryptData (dm-1)                         253:1    0   20G  0 crypt /cryptData
sdb                                          8:16   0   20G  0 disk
└─3600a0980383034685624466470446564 (dm-0) 253:0    0   20G  0 mpath
└─cryptData (dm-1)                         253:1    0   20G  0 crypt /cryptData