Come crittografare le unità utilizzando LUKS in Fedora Linux
In questo articolo, spiegheremo brevemente la crittografia a blocchi, Linux Unified Key Setup (LUKS) e descriveremo le istruzioni per creare un dispositivo a blocchi crittografato in Fedora Linux.
Blocca la crittografia del dispositivo
La crittografia del dispositivo a blocchi viene utilizzata per proteggere i dati su un dispositivo a blocchi crittografandoli e per decrittografare i dati un utente deve fornire una passphrase o una chiave per accedere. Ciò fornisce meccanismi di sicurezza aggiuntivi in quanto salvaguarda i contenuti del dispositivo anche se è stato fisicamente scollegato dal sistema.
Introduzione a LUKS
LUKS (Linux Unified Key Setup) è lo standard per la crittografia dei dispositivi a blocchi in Linux, che funziona stabilendo un formato su disco per i dati e una policy di gestione di passphrase/chiavi . Memorizza tutte le informazioni di configurazione necessarie nell'intestazione della partizione (nota anche come intestazione LUKS), consentendo così di trasportare o migrare i dati senza problemi.
LUKS utilizza il sottosistema di mappatura dei dispositivi del kernel con il modulo dm-crypt per fornire una mappatura di basso livello che mantiene la crittografia e la decrittografia dei dati del dispositivo. È possibile utilizzare il programma cryptsetup per eseguire attività a livello utente come la creazione e l'accesso a dispositivi crittografati.
Preparazione di un dispositivo a blocchi
Le seguenti istruzioni mostrano i passaggi per creare e configurare i dispositivi a blocchi crittografati dopo l'installazione.
Installa il pacchetto cryptsetup.
dnf install cryptsetup-luks
Successivamente, riempi il dispositivo con dati casuali prima di crittografarlo, poiché ciò aumenterà in modo significativo la forza della crittografia utilizzando i seguenti comandi.
dd if=/dev/urandom of=/dev/sdb1 [slow with high quality random data ]
OR
badblocks -c 10240 -s -w -t random -v /dev/sdb1 [fast with high quality random data]
Avviso: i comandi precedenti cancelleranno tutti i dati esistenti sul dispositivo.
Formattazione di un dispositivo crittografato
Successivamente, utilizza lo strumento da riga di comando cryptsetup per formattare il dispositivo come dispositivo crittografato dm-crypt/LUKS.
cryptsetup luksFormat /dev/sdb1
Dopo aver eseguito il comando, ti verrà richiesto di inserire YES
(in maiuscolo) per fornire due volte una passphrase affinché il dispositivo venga formattato per l'uso, come mostrato nello screenshot seguente.
Per verificare se l'operazione è andata a buon fine, eseguire il comando seguente.
cryptsetup isLuks /dev/sdb1 && echo Success
È possibile visualizzare un riepilogo delle informazioni di crittografia per il dispositivo.
cryptsetup luksDump /dev/sdb1
Creazione di una mappatura per consentire l'accesso a un contenuto decrittografato
In questa sezione configureremo come accedere ai contenuti decrittografati del dispositivo crittografato. Creeremo una mappatura utilizzando il device-mapper del kernel. Si consiglia di creare un nome significativo per questa mappatura, qualcosa come luk-uuid (dove <uuid>
è sostituito con LUKS UUID del dispositivo ( Identificatore univoco universale).
Per ottenere l'UUID del tuo dispositivo crittografato, esegui il seguente comando.
cryptsetup luksUUID /dev/sdb1
Dopo aver ottenuto l'UUID, puoi creare il nome della mappatura come mostrato (ti verrà richiesto di inserire la passphrase creata in precedenza).
cryptsetup luksOpen /dev/sdb1 luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
Se il comando ha esito positivo, verrà creato un nodo del dispositivo chiamato /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
che rappresenta il dispositivo decrittografato.
Il dispositivo a blocchi appena creato può essere letto e scritto come qualsiasi altro dispositivo a blocchi non crittografato. Puoi visualizzare alcune informazioni sul dispositivo mappato eseguendo il comando seguente.
dmsetup info /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
Creazione di filesystem sul dispositivo mappato
Ora vedremo come creare un filesystem sul dispositivo mappato, che ti consentirà di utilizzare il nodo del dispositivo mappato proprio come qualsiasi altro dispositivo a blocchi.
Per creare un filesystem ext4 sul dispositivo mappato, esegui il comando seguente.
mkfs.ext4 /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
Per montare il filesystem sopra, crea un punto di montaggio per esso, ad esempio /mnt/encrypted-device
e poi montalo come segue.
mkdir -p /mnt/encrypted-device
mount /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device/
Aggiungi informazioni sulla mappatura a /etc/crypttab e /etc/fstab
Successivamente, dobbiamo configurare il sistema per impostare automaticamente una mappatura per il dispositivo e montarlo all'avvio.
Dovresti aggiungere le informazioni di mappatura nel file /etc/crypttab, nel seguente formato.
luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c none
nel formato sopra:
- luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c – è il nome della mappatura
- UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c – è il nome del dispositivo
Salva il file e chiudilo.
Successivamente, aggiungi la seguente voce a /etc/fstab per montare automaticamente il dispositivo mappato all'avvio del sistema.
/dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device ext4 0 0
Salva il file e chiudilo.
Quindi esegui il seguente comando per aggiornare le unità systemd generate da questi file.
systemctl daemon-reload
Backup delle intestazioni LUKS
Infine, tratteremo come eseguire il backup delle intestazioni LUKS. Questo è un passaggio fondamentale per evitare di perdere tutti i dati nel dispositivo a blocchi crittografato, nel caso in cui i settori contenenti le intestazioni LUKS vengano danneggiati da un errore dell'utente o da un guasto hardware. Questa azione consente il recupero dei dati.
Per eseguire il backup delle intestazioni LUKS.
mkdir /root/backups
cryptsetup luksHeaderBackup --header-backup-file luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
E per ripristinare le intestazioni LUKS.
cryptsetup luksHeaderRestore --header-backup-file /root/backups/luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c
È tutto! In questo articolo, abbiamo spiegato come crittografare i dispositivi a blocchi utilizzando LUKS nella distribuzione Fedora Linux. Se hai domande o commenti riguardanti questo argomento o guida, utilizza il modulo di feedback qui sotto per contattarci.