Hinweis:

Laufwerke mit LUKS auf Oracle Linux verschlüsseln

Einführung

Oracle Linux umfasst Kryptographie-Mapper (dm-crypt) und LUKS (Linux Unified Key Setup), um die Verschlüsselung auf Blockgeräten zu verarbeiten.

In dieser Übung konzentrieren wir uns auf die Frontend-Tools zur Verschlüsselung eines Geräts mit LUKS. Dabei wird das Modul dm-crypt von der Geräte-Mapper-Unterstützung im Linux-Kernel verwendet.

Ziele

Anforderungen

Ein System mit einer verfügbaren Festplatte und einer vollständig gepatchten Installation von Oracle Linux.

Laborumgebung einrichten

Hinweis: Wenn Sie die kostenlose Übungsumgebung verwenden, finden Sie unter Oracle Linux Lab - Grundlagen Informationen zu Verbindungen und anderen Nutzungsanweisungen.

  1. Wenn noch nicht geschehen, öffnen Sie ein Terminal, und stellen Sie eine Verbindung über SSH zur ol-node01-Instanz her.

    ssh oracle@<ip_address_of_instance>
    
  2. Prüfen Sie, ob die Block-Volumes vorhanden sind.

    lsblk -f
    

    Die Ausgabe für die freie Übungsumgebung zeigt zwei Block-Devices an: sda, das Basis-BS enthält, und sdb, die in dieser Übung verwendet wird. Mit der Option -f werden der Dateisystemtyp (FSTYPE) und die Universally Unique Identifier (UUID) der Blöcke angezeigt.

Verschlüsselungspakete installieren

  1. Wenn das System noch nicht verfügbar ist, installieren Sie das Tool cryptsetup.

    Prüfen Sie, ob cryptsetup installiert ist.

    sudo dnf list --installed cryptsetup
    

    Falls nicht installiert, installieren Sie cryptsetup.

    sudo dnf -y install cryptsetup
    

    Hinweis: In der kostenlosen Übungsumgebung ist das Tool cryptsetup bereits installiert.

Volume mit LUKS verschlüsseln

LUKS und dm-crypt arbeiten mit Blockgeräten, RAID, physischen LVM-Volumes und sogar mit Swap-Vorgängen. Nach der Verschlüsselung können nur Daten auf diesen Geräten beim Booten oder Laden mit den entsprechenden Zugangsdaten aufgerufen werden.

Die freie Übungsumgebung bietet für diesen Schritt eine vorab partitionierte Festplatte /dev/sdb1.

  1. Verschlüsseln Sie den Datenträger.

    sudo cryptsetup -y -v luksFormat /dev/sdb1
    

    Geben Sie YES ein, um fortzufahren und die Passphrase zweimal anzugeben. Die Passphrase muss Folgendes enthalten:

    • Mindestens 8 Zeichen
    • 1 Ziffer
    • 1 Großbuchstabe
    • 1 Sonderzeichen
    • Nicht-Dictionary-basiertes Wort

    Wichtig: Vergessen Sie nicht das eingegebene Passwort, da es später verwendet wird.

    Beispielausgabe:

    [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. Öffnen Sie das verschlüsselte Volume.

    Für diesen Schritt ist ein Ziel erforderlich, das beliebig benannt werden kann. Wir verwenden mysecrets.

    sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets
    

    Geben Sie bei Bedarf dieselbe Passphrase ein, die im vorherigen Schritt erstellt wurde.

    Beispielausgabe:

    [oracle@ol-node01 ~]$ sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets
    Enter passphrase for /dev/sdb1: 
    Key slot 0 unlocked.
    Command successful.
    
  3. Prüfen Sie die Block-Devices erneut.

    lsblk -f
    

    Das Gerät /dev/sdb1 zeigt nun das FSTYPE als crypto_LUKS an und zeigt die Zuordnung des verschlüsselten Geräte-Volumes mysecrets an.

Verschlüsseltes Volume formatieren

Bevor Daten zum verschlüsselten Volume hinzugefügt werden, muss es formatiert werden. Sie können verschiedene Dateisysteme wie xfs, ext3, ext4 usw. auswählen.

  1. Erstellen Sie ein Dateisystem.

    sudo mkfs.xfs /dev/mapper/mysecrets
    

Verschlüsseltes Volume mounten

  1. Erstellen Sie einen Mount Point.

    sudo mkdir -p /u01/my_secret_storage
    
  2. Mounten Sie das Volume.

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

    Die Ausgabe zeigt eine SELinux-Warnung an.

    Beispielausgabe:

    [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.
    

    Dazu ist eine Umbenennung des Sicherheitskontexts SELinux des Mount Points erforderlich.

    sudo restorecon -vvRF /u01/my_secret_storage
    

    Führen Sie den Befehl mount erneut aus.

    sudo mount -v -o remount /u01/my_secret_storage
    
  3. Zeigen Sie das gemountete Volume an.

    lsblk
    

    Beispielausgabe:

    [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
    

LUKS-Volume-Details anzeigen

Zeigen Sie den LUKS-Header, das Datensegment, die Schlüsseleinschubfächer und Versionsinformationen an.

  1. LUKS-Details ausgeben.

    sudo cryptsetup luksDump /dev/sdb1
    

    Beispielausgabe:

    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 
    

Weitere Informationen finden Sie auf der Manpage cryptsetup(8), der Oracle-Dokumentation oder den Upstream-Häufig gestellten Fragen.

Weitere Informationen

Weitere zugehörige Ressourcen finden Sie unter:

Weitere Lernressourcen

Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere Inhalte zu kostenlosen Lernangeboten im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie unter Oracle Help Center.