Come crittografare dischi, partizioni e file utilizzando LUKS su Linux Debian

La crittografia dei dati su dischi rigidi o SSD, partizioni e file è essenziale oggi. Attualmente abbiamo la possibilità di crittografare i dati di un server NAS, un computer desktop e persino un laptop. Soprattutto, i laptop sono il luogo in cui è più necessaria la crittografia dei dati, perché se li perdiamo, potrebbero accedere a tutti i nostri dati, come se perdiamo il nostro disco rigido o la pendrive. Oggi in questo articolo ti insegneremo a crittografare da zero tutto il contenuto del disco rigido, utilizzando LUKS in Linux.

Nei sistemi operativi Linux abbiamo molte opzioni per crittografare i dati in Linux, ad esempio possiamo usare dm-crypt, LUKS, eCryptfs e persino programmi come Veracrypt che sono davvero versatili e altamente consigliati. LUKS (Linux Unified Key Setup) ci consente di crittografare dischi, partizioni e anche volumi logici che creiamo sul nostro computer. Alcuni dei vantaggi che LUKS ha rispetto ad altri è che il suo utilizzo è davvero semplice, senza dover configurare o eseguire comandi complicati, è incluso nel kernel stesso, quindi le prestazioni durante la crittografia / decrittografia dei dati saranno molto elevate, dobbiamo tieni anche conto che possiamo gestire la chiave di crittografia come vogliamo.

Come crittografare dischi, partizioni e file utilizzando LUKS su Linux Debian

Divideremo chiaramente questo tutorial in due sezioni, nella prima sezione ti insegneremo come installare un sistema operativo Debian con crittografia in tutta la partizione, crittografata per impostazione predefinita, e nella seconda sezione ti insegneremo come crittografare il computer una volta che Debian è installato normalmente, nessuna crittografia sulla partizione per impostazione predefinita. Un dettaglio molto importante è che la partizione orientata al "boot" non sarà crittografata, per consentire la lettura delle informazioni, ma il resto del disco sarà crittografato con LUKS, sia partizioni che volumi logici (LVM).

Installa Debian o Linux con la crittografia LUKS per impostazione predefinita

Nella procedura guidata di installazione di Debian, sia con l'interfaccia utente grafica completa, sia con la procedura guidata di installazione con interfaccia minima, abbiamo la possibilità di configurare l'intero disco con un LVM crittografato, in modo da avere la massima riservatezza quando usiamo il computer, perché tutti i dati sulla partizione di sistema e i dati verranno crittografati.

Dovremo semplicemente scegliere “Guidato – Usa l'intero disco e configura LVM crittografato”, quindi scegliamo il disco e selezioniamo se vogliamo tutto in una partizione o lo separiamo per partizioni, questo non importa perché possiamo separare il / partizione domestica in altro.

Indicherà che, se vogliamo salvare tutte le modifiche apportate, si consiglia vivamente di utilizzare LVM per espandere o ridurre successivamente la sua capacità. Una volta fatto ciò, il sistema operativo si occuperà di cancellare l'intero disco con dati casuali per migliorare la sicurezza ed evitare il ripristino dei dati. Questo richiederà del tempo, a seconda delle dimensioni del disco che abbiamo selezionato.

Una volta terminato, ci dirà di inserire la password di crittografia, di crittografare e decrittografare il disco con questa password. Come minimo si consiglia di inserire 8 caratteri, ma la nostra raccomandazione è di inserire almeno 12 caratteri, utilizzando una password complessa. Una volta terminato, otterremo un riepilogo di tutto ciò che la procedura guidata di installazione di Debian farà sul nostro disco, la cosa più importante è la parte di “crittografia sda5_scrypt”, un dettaglio importante è che il /boot non sarà crittografato e exchange (swap), pertanto, si consiglia di non utilizzare mai alcuno swap, né di crittografarlo successivamente.

Una volta che abbiamo visto tutto ciò che sta per essere fatto, indichiamo che vogliamo scrivere le modifiche sul disco e installare anche il boot loader nel grub, selezionando il disco / dev / sda che abbiamo.

Una volta terminata l'installazione, uscirà il grub e sceglieremo la prima opzione, oppure lasceremo passare il tempo. Ci chiederà automaticamente la password per poter avviare il sistema operativo, se non inseriamo direttamente la password, non sarà in grado di avviarsi, perché tutto è crittografato. Se inseriamo la chiave, vedremo come iniziano ad avviarsi i diversi servizi in Debian.

Se vogliamo controllare le partizioni che abbiamo creato, possiamo inserire il seguente comando:

lsblk --fs

Se vogliamo vedere le caratteristiche di LUKS (algoritmo di crittografia simmetrico utilizzato, lunghezza della chiave ecc.), possiamo inserire il seguente comando:

cryptsetup luksDump /dev/sda5

Il /dev/sda5 è nel nostro caso, se hai fatto un'installazione diversa è possibile che questi dati cambino. Come puoi vedere, LUKS crittografa tutti i dati con AES-XTS nella sua versione a 512 bit, utilizza un argon2i PBKDF e un hash SHA256.

Come hai visto, configurare il nostro sistema operativo con Linux di default è davvero semplice, basta seguire i passaggi della procedura guidata di configurazione, senza dover fare altro. Una volta che sappiamo come crittografare tutti i dati per impostazione predefinita, vediamo come farlo quando il sistema operativo è già installato.

Configura la crittografia LUKS su un sistema già installato senza crittografia preventiva

In questa sezione del tutorial vedremo come possiamo crittografare le partizioni quando sono già state create e anche come possiamo crittografare qualsiasi file con LUKS che abbiamo nel sistema operativo. Eseguiremo questi test con un sistema Debian 10 senza avere nulla di crittografato per impostazione predefinita, nessuna partizione di sistema, dati o altro.

La prima cosa che dobbiamo fare è installare LUKS nel sistema operativo, perché non è installato di default se non lo abbiamo utilizzato nella procedura guidata di installazione. L'installazione viene eseguita direttamente dal repository Debian ufficiale come segue:

sudo apt install cryptsetup

Una volta installato, possiamo usarlo per crittografare il contenuto di dischi rigidi, partizioni o qualsiasi dispositivo di archiviazione rimovibile.

Prima di iniziare, è è sempre consigliabile formattare completamente la partizione e riscrivere i dati , per avere la massima sicurezza possibile, in questo modo l'intera partizione o disco verrà riscritta con informazioni casuali, in modo che sia molto difficile o quasi impossibile recuperare le informazioni. Attualmente LUKS non consente la crittografia del disco o della partizione quando è in uso, quindi dovremmo farlo da un altro computer. Inoltre, è necessario utilizzare " cryptsetup-ricodifica ” che ci aiuterà a ricodificare completamente la partizione, senza perdita di dati, anche se si consiglia vivamente di eseguire un backup dei file importanti prima di farlo. Questo strumento consente di crittografare i dati sul dispositivo in loco LUKS, ma la partizione non deve essere in uso.

Cripta qualsiasi disco o partizione (con perdita di dati)

La prima cosa che dobbiamo fare è creare una nuova partizione sul disco, per utilizzarla successivamente. Eseguiamo il seguente comando:

sudo fdisk /dev/sdb

E continuiamo a mettere "n" per creare una nuova partizione, mettiamo "p" per renderla primaria e accettiamo i valori che ci indicano di avere una partizione dell'intero disco rigido, se vogliamo rimpicciolirla, dovrà modificare i settori per questa partizione in particolare.

Una volta fatto ciò, dobbiamo mettere la partizione sdb1 appena creata con il formato LUKS, per questo eseguiamo il seguente comando:

sudo cryptsetup luksFormat /dev/sdb1

Mettiamo "YES" in maiuscolo, inseriamo la password che vogliamo e aspettiamo che sia pronta.

Se eseguiamo il comando:

lsblk -f

Saremo in grado di vedere tutti i dischi rigidi, le partizioni e il file system che stiamo utilizzando. Dovremmo vedere che su sdb1 abbiamo "crypto_LUKS" come appare qui:

Una volta fatto, dovremo aprire questa partizione con LUKS che abbiamo appena creato, per questo mettiamo il comando:

cryptsetup luksOpen /dev/sdb1 particioncifrada

Introduciamo la password, quindi eseguiamo nuovamente il «lsblk -f» e apparirà «partizione cifrata», che è il nome identificativo che abbiamo dato, ma possiamo cambiarlo in qualsiasi momento.

Ora dobbiamo dare il formato del file a questa partizione, la cosa normale sarebbe farlo anche con EXT4, per questo, mettiamo il seguente comando:

mkfs.ext4 /dev/mapper/particioncifrada

E avremo già il file system EXT4 su questa partizione crittografata.

Ora dobbiamo montare la partizione in una directory, per farlo dobbiamo creare in /home o ovunque vogliamo il punto di montaggio:

mkdir -p /home/bron/particioncifrada/archivos

E ora dobbiamo montarlo:

mount /dev/mapper/particioncifrada /home/bron/particioncifrada/archivos

E se accediamo alla directory «/home/bron/crittografia partizione/file» possiamo scrivere tutti i dati che vogliamo, la crittografia è al volo e totalmente trasparente.

Se riavviamo il computer, l'unità non verrà montata, né avremo la partizione aperta con LUKS, quindi, ogni volta che riavvieremo e vorremo accedere a questa partizione, dovremo fare quanto segue:

cryptsetup luksOpen /dev/sdb1 particioncifrada

Inseriamo la password quando richiesta e montiamo nuovamente l'unità:

mount /dev/mapper/particioncifrada /home/bron/particioncifrada/archivos

Se vogliamo che venga aperto e montato automaticamente all'inizio del sistema operativo, dovremo modificare i file /etc/crypttab e /etc/fstab per inserire questa partizione, ma la nostra raccomandazione è di montare l'unità manualmente e chiedi la password, per sicurezza, perché in caso contrario, dovrai memorizzare la chiave in chiaro nella /boot/partizione.

Adesso sappiamo tutto quello che ci serve sapere per poter cifrare interi dischi o partizioni utilizzando LUKS e farlo direttamente da Linux, anche quando il sistema è già in esecuzione, dovremo stare attenti con le nostre password, ma parleremo di un sistema estremamente sicuro con crittografia dei dati.