Remarque :

Chiffrement des lecteurs à l'aide de LUKS sur Oracle Linux

Introduction

Oracle Linux inclut le chiffrement du mappeur de périphériques (dm-crypt) et la configuration LUKS (Linux Unified Key Setup) pour gérer le chiffrement sur les périphériques en mode bloc.

Dans cet exercice, nous allons nous concentrer sur les outils frontaux pour chiffrer un périphérique à l'aide de LUKS, qui utilise le module dm-crypt à partir de la prise en charge du mappeur de périphériques incluse avec le noyau Linux.

Objectifs

Conditions

Système doté d'un disque disponible et d'une installation entièrement corrigée d'Oracle Linux.

Environnement des exercices de configuration

Remarque : lorsque vous utilisez l'environnement d'atelier gratuit, reportez-vous à Oracle Linux Lab Basics pour obtenir des instructions de connexion et d'utilisation.

  1. S'il n'est pas déjà connecté, ouvrez un terminal et connectez-vous via SSH à l'instance ol-node01.

    ssh oracle@<ip_address_of_instance>
    
  2. Vérifiez que les volumes de blocs existent.

    lsblk -f
    

    La sortie de l'environnement d'atelier gratuit affiche deux périphériques en mode bloc : sda, qui contient le système d'exploitation de base et sdb, que cet atelier utilise. L'option -f affiche le type de système de fichiers (FSTYPE) et l'identificateur universel (UUID) des blocs.

Installer les packages de cryptage

  1. Si elle n'est pas déjà disponible sur le système, installez l'outil cryptsetup.

    Vérifiez si cryptsetup est installé.

    sudo dnf list --installed cryptsetup
    

    S'il n'est pas installé, installez cryptsetup.

    sudo dnf -y install cryptsetup
    

    Remarque : l'outil cryptsetup est déjà installé dans l'environnement d'atelier gratuit.

Crypter le volume avec LUKS

Les LUKS et dm-crypt fonctionnent sur les périphériques en mode bloc, RAID, volumes physiques LVM et même swap. Une fois chiffrées, les données de ces périphériques sont accessibles à l'initialisation ou au montage uniquement avec les informations d'identification appropriées.

L'environnement d'exercice gratuit fournit un disque /dev/sdb1 pré-partitionné pour cette étape.

  1. Cryptez le disque.

    sudo cryptsetup -y -v luksFormat /dev/sdb1
    

    Saisissez YES pour continuer et fournissez la phrase de passe deux fois. La phrase de passe doit contenir :

    • au moins 8 caractères
    • 1 chiffre
    • 1 lettre majuscule
    • 1 caractère spécial
    • mot non-dictionnaire

    Important : veillez à mémoriser le mot de passe saisi car il sera utilisé ultérieurement.

    Exemple de sortie :

    [oracle@ol-node01 ~]$ sudo cryptsetup -y -v luksFormat /dev/sdb1
      
    WARNING!
    ========
    This will overwrite data on /dev/sdb1 irrevocably.
      
    Are you sure? (Type 'yes' in capital letters): YES
    Enter passphrase for /dev/sdb1: 
    Verify passphrase: 
    Key slot 0 created.
    Command successful.
    
  2. Ouvrez le volume crypté.

    Cette étape nécessite une cible pouvant être nommée n'importe quel élément. Nous utiliserons mysecrets.

    sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets
    

    Entrez la même phrase de passe créée à l'étape précédente lorsque vous y êtes invité.

    Exemple de sortie :

    [oracle@ol-node01 ~]$ sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets
    Enter passphrase for /dev/sdb1: 
    Key slot 0 unlocked.
    Command successful.
    
  3. Vérifiez à nouveau les périphériques en mode bloc.

    lsblk -f
    

    Le dispositif /dev/sdb1 affiche désormais le FSTYPE sous la forme crypto_LUKS et affiche le mappage du volume de périphériques chiffrés mysecrets.

Formater le volume chiffré

Avant d'ajouter des données au volume chiffré, il doit être formaté. Vous pouvez choisir différents systèmes de fichiers, tels que xfs, ext3, ext4, etc.

  1. Créez un système de fichiers.

    sudo mkfs.xfs /dev/mapper/mysecrets
    

Montage du volume chiffré

  1. Créez un point de montage.

    sudo mkdir -p /u01/my_secret_storage
    
  2. Montez le volume.

    sudo mount -v /dev/mapper/mysecrets /u01/my_secret_storage
    

    La sortie indique un avertissement SELinux.

    Exemple de sortie :

    [oracle@ol-node01 ~]$ sudo mount -v /dev/mapper/mysecrets /u01/my_secret_storage/
    mount: /u01/my_secret_storage does not contain SELinux labels.
           You just mounted an file system that supports labels which does not
           contain labels, onto an SELinux box. It is likely that confined
           applications will generate AVC messages and not be allowed access to
           this file system.  For more details see restorecon(8) and mount(8).
    mount: /dev/mapper/mysecrets mounted on /u01/my_secret_storage.
    

    Cela nécessite un nouvel étiquetage du contexte de sécurité SELinux du point de montage.

    sudo restorecon -vvRF /u01/my_secret_storage
    

    Exécutez à nouveau la commande mount.

    sudo mount -v -o remount /u01/my_secret_storage
    
  3. Affichez le volume monté.

    lsblk
    

    Exemple de sortie :

    [oracle@ol-node01 ~]$ lsblk
    NAME               MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
    sda                  8:0    0 46.6G  0 disk  
    |-sda1               8:1    0  100M  0 part  /boot/efi
    |-sda2               8:2    0    1G  0 part  /boot
    `-sda3               8:3    0 45.5G  0 part  
      |-ocivolume-root 252:0    0 35.5G  0 lvm   /
      `-ocivolume-oled 252:1    0   10G  0 lvm   /var/oled
    sdb                  8:16   0   50G  0 disk  
    `-sdb1               8:17   0    2G  0 part  
      `-mysecrets      252:2    0    2G  0 crypt /u01/my_secret_storage
    

Afficher les détails du volume LUKS

Affichez l'en-tête LUKS, le segment de données, les emplacements de clé et les informations de version.

  1. Vider les détails LUKS.

    sudo cryptsetup luksDump /dev/sdb1
    

    Exemple de sortie :

    LUKS header information
    Version:       	2
    Epoch:         	3
    Metadata area: 	16384 [bytes]
    Keyslots area: 	16744448 [bytes]
    UUID:          	4ccea398-5864-45a9-b274-173c8ebc3356
    Label:         	(no label)
    Subsystem:     	(no subsystem)
    Flags:       	(no flags)
      
    Data segments:
      0: crypt
    	offset: 16777216 [bytes]
    	length: (whole device)
    	cipher: aes-xts-plain64
    	sector: 512 [bytes]
      
    Keyslots:
      0: luks2
    	Key:        512 bits
    	Priority:   normal
    	Cipher:     aes-xts-plain64
    	Cipher key: 512 bits
    	PBKDF:      argon2i
    	Time cost:  10
    	Memory:     1048576
    	Threads:    4
    	Salt:       ee d2 c7 5b 05 43 0f 0a 12 60 da b5 87 19 4a 6f 
    	            06 57 a2 31 b1 dd bb 60 74 53 95 b2 ca 2f ad 4b 
    	AF stripes: 4000
    	AF hash:    sha256
    	Area offset:32768 [bytes]
    	Area length:258048 [bytes]
    	Digest ID:  0
    Tokens:
    Digests:
      0: pbkdf2
    	Hash:       sha256
    	Iterations: 243628
    	Salt:       89 6c 8b aa 37 af 58 e9 26 49 c5 e5 db 2d 54 ea 
    	            f8 7a c2 89 0e ab ed 48 74 a5 23 d7 b0 e6 9c 87 
    	Digest:     4a 2b 25 76 c5 85 1a 6c a9 28 0c ee d0 c7 76 eb 
    	            e1 4c ee 9c 5b 9a e2 d0 95 6e 1f 6e bb 1b 03 d1 
    

Pour plus d'informations, reportez-vous à la page de manuel cryptsetup(8), à la documentation Oracle ou à la FAQ en amont.

Pour plus d'informations

Voir d'autres ressources connexes :

Ressources de formation supplémentaires

Explorez d'autres exercices sur docs.oracle.com/learn ou accédez à davantage de contenu de formation gratuit sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir explorateur Oracle Learning.

Pour consulter la documentation du produit, consultez Oracle Help Center.