Ricerca nel sito web

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.