Nota:
- Questa esercitazione è disponibile in un ambiente di laboratorio gratuito fornito da Oracle.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituire questi valori con quelli specifici del tuo ambiente cloud.
Cifrare le unità utilizzando LUKS su Oracle Linux
Introduzione
Oracle Linux include la cripta mapper del dispositivo (dm-crypt
) e l'impostazione LUKS (Linux Unified Key Setup) per gestire la cifratura sui dispositivi a blocchi.
In questo laboratorio, ci concentreremo sugli strumenti front-end per crittografare un dispositivo utilizzando LUKS, che utilizza il modulo dm-crypt
dal supporto mapper del dispositivo incluso nel Kernel Linux.
Obiettivi
- Installa
cryptsetup
- Crea un volume cifrato
- Attivare un volume cifrato
Requisiti
Un sistema con un disco disponibile e un'installazione di Oracle Linux completamente patch.
Imposta ambiente laboratorio
Nota: quando si utilizza l'ambiente di laboratorio gratuito, vedere Oracle Linux Lab Basics per le connessioni e altre istruzioni d'uso.
-
Se non è già connesso, aprire un terminale e connettersi tramite ssh all'istanza ol-node01.
ssh oracle@<ip_address_of_instance>
-
Verificare che i volumi a blocchi esistano.
lsblk -f
L'output dell'ambiente di laboratorio gratuito mostra due dispositivi a blocchi:
sda
, che contiene il sistema operativo di base esdb
, utilizzati da questo laboratorio. L'uso dell'opzione-f
visualizza il tipo di file system (FSTYPE) e l'identificatore univoco universale dei blocchi (UUID).
Installa package di cifratura
-
Se non è già disponibile sul sistema, installare lo strumento
cryptsetup
.Controllare che
cryptsetup
sia installato.sudo dnf list --installed cryptsetup
Se non è installato, installare
cryptsetup
.sudo dnf -y install cryptsetup
Nota: l'ambiente di laboratorio gratuito dispone già dello strumento
cryptsetup
installato.
Cifrare il volume con LUKS
LUKS e dm-crypt
funzionano su dispositivi a blocchi, RAID, volumi fisici LVM e perfino swap. Una volta cifrati, i dati su questi dispositivi sono accessibili al momento del boot o del MOUNT solo con le credenziali appropriate.
In questo passo l'ambiente di laboratorio gratuito fornisce un disco pre-partizionato /dev/sdb1
.
-
Cifrare il disco.
sudo cryptsetup -y -v luksFormat /dev/sdb1
Immettere
YES
per procedere e fornire la passphrase due volte. La passphrase deve contenere:- almeno 8 caratteri
- 1 cifra
- 1 lettera maiuscola
- 1 carattere speciale
- parola non basata sul dizionario
Importante: ricordare la password digitata che verrà utilizzata successivamente.
Output di esempio:
[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.
-
Aprire il volume cifrato.
Questo passo richiede una destinazione con un nome qualsiasi. Useremo
mysecrets
.sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets
Immettere la stessa passphrase creata al passaggio precedente, se richiesto.
Output di esempio:
[oracle@ol-node01 ~]$ sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets Enter passphrase for /dev/sdb1: Key slot 0 unlocked. Command successful.
-
Controllare nuovamente i dispositivi a blocchi.
lsblk -f
Il dispositivo
/dev/sdb1
ora visualizza il dispositivo FSTYPE come crypto_LUKS e mostra la mappatura del volume dei dispositivi cifratimysecrets
.
Formattare il volume cifrato
Prima di aggiungere dati al volume cifrato, è necessario formattarli. È possibile scegliere file system diversi, ad esempio xfs, ext3, ext4 e così via.
-
Creare un file system.
sudo mkfs.xfs /dev/mapper/mysecrets
Esegui il MOUNT del volume cifrato
-
Creare un punto di attivazione.
sudo mkdir -p /u01/my_secret_storage
-
Installare il volume.
sudo mount -v /dev/mapper/mysecrets /u01/my_secret_storage
L'output mostra un'avvertenza SELinux.
Output di esempio:
[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.
Per farlo, è necessario avere un'etichetta del contesto di sicurezza SELinux del punto di attivazione.
sudo restorecon -vvRF /u01/my_secret_storage
Eseguire di nuovo il comando
mount
.sudo mount -v -o remount /u01/my_secret_storage
-
Visualizzare il volume installato.
lsblk
Output di esempio:
[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
Visualizza dettagli volume LUKS
Visualizzare l'intestazione LUKS, il segmento dati, gli slot chiave e le informazioni sulla versione.
-
Dump dettagli LUKS.
sudo cryptsetup luksDump /dev/sdb1
Output di esempio:
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
Per ulteriori informazioni, consulta la pagina man cryptsetup(8)
, la documentazione Oracle o le domande frequenti a monte.
Per ulteriori informazioni
Vedere altre risorse correlate:
Altre risorse di apprendimento
Esplora altri laboratori all'indirizzo docs.oracle.com/learn o accedi ad altri contenuti per la formazione gratuita sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione sul prodotto, visitare Oracle Help Center.
Encrypt Drives using LUKS on Oracle Linux
F60519-01
July 2022
Copyright © 2022, Oracle and/or its affiliates.