Dal punto di vista della sicurezza, è importante crittografare i tuoi dati sensibili per proteggerli da occhi indiscreti e hacker. Linux Unified Key Setup (LUKS) è un ottimo strumento e uno standard comune per la crittografia del disco Linux. Poiché memorizza tutte le informazioni di configurazione pertinenti nell'intestazione della partizione, semplifica la migrazione dei dati.
Per configurare dischi o partizioni crittografate con LUKS, sarà necessario utilizzare l'utilità cryptsetup. Sfortunatamente, uno degli svantaggi della crittografia dei dischi è che devi fornire manualmente la password ogni volta che il sistema viene riavviato o il disco viene rimontato.
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Tuttavia, Network-Bound Disk Encryption (NBDE) può sbloccare automaticamente e in modo sicuro i dischi crittografati senza alcun intervento da parte dell'utente. È disponibile in diverse distribuzioni Linux, a partire da Red Hat Enterprise Linux 7.4, CentOS 7.4 e Fedora 24 e nelle versioni successive di ciascuna.
NBDE è implementato con le seguenti tecnologie:
- Quadro perno: Uno strumento framework collegabile che decrittografa e sblocca automaticamente i volumi LUKS
- Server Tang: Un servizio per associare chiavi crittografiche alla presenza in rete
Tang fornisce le chiavi di crittografia al client Clevis. Secondo gli sviluppatori di Tang, questo fornisce un'alternativa sicura, senza stato e anonima ai servizi di deposito a garanzia delle chiavi.
Poiché NBDE utilizza l'architettura client-server, è necessario configurare sia il client che il server. Puoi utilizzare una macchina virtuale sulla tua rete locale per il tuo server Tang.
Installazione del server
Installa Tang usando sudo:
sudo yum install tang -y
Abilita il server Tang:
sudo systemctl enable tangd.socket --now
Il server Tang funziona sulla porta 80 e deve essere aggiunto a firewalld. Aggiungi la regola firewalld appropriata:
sudo firewall-cmd --add-port=tcp/80 --perm
sudo firewall-cmd --reload
Il server ora dovrebbe essere installato.
Installazione client
Per questo esempio, supponi di aver aggiunto un nuovo disco da 1 GB denominato /dev/vdc
al tuo sistema.
Crea la partizione primaria usando fdisk o parted:
sudo fdisk /dev/vdc
Completa i seguenti passaggi per installare il client.
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x4a6812d4.
Command (m for help):
Inserisci n per creare la nuova partizione:
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Premi Invio tasto per selezionare la partizione primaria:
Using default response p
Partition number (1-4, default 1):
Premi Invio per selezionare il numero di partizione predefinito:
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):
Premi Invio tasto per selezionare l'ultimo settore:
Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set
Command (m for help): wq
Digita wq per salvare le modifiche e uscire da fdisk:
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Esegui partprobe
per informare il sistema delle modifiche alla tabella delle partizioni:
sudo partprobe
Installa il pacchetto cryptsetup usando sudo:
sudo yum install cryptsetup -y
Usa il cryptsetup luksFormat
comando per crittografare il disco. Dovrai digitare SI quando richiesto e scegli e inserisci anche una passphrase per crittografare il disco:
sudo cryptsetup luksFormat /dev/vdc1
WARNING!
========
This will overwrite data on /dev/vdc1 irrevocably.
Are you sure? (Type uppercase yes):
Enter passphrase for /dev/vdc1:
Verify passphrase:
Usa cryptsetup luksOpen
comando per mappare la partizione crittografata su un dispositivo logico. Ad esempio, usa encryptedvdc1
come il nome. Dovrai anche inserire nuovamente la passphrase:
sudo cryptsetup luksOpen /dev/vdc1 encryptedvdc1
Enter passphrase for /dev/vdc1:
La partizione crittografata è ora disponibile in /dev/mapper/encryptedvdc1
.
Crea un filesystem XFS sulla partizione crittografata:
sudo mkfs.xfs /dev/mapper/encryptedvdc1
Crea una directory per montare la partizione crittografata:
sudo mkdir /encrypted
Usa cryptsetup luksClose
comando per bloccare la partizione:
cryptsetup luksClose encryptedvdc1
Installa i pacchetti Clevis usando sudo:
sudo yum install clevis clevis-luks clevis-dracut -y
Modifica /etc/crypttab per aprire il volume crittografato all'avvio:
sudo vim /etc/crypttab
Aggiungi la seguente riga:
encryptedvdc1 /dev/vdc1 none _netdev
Modifica /etc/fstab per montare automaticamente il volume crittografato durante un riavvio o all'avvio:
sudo vim /etc/fstab
Aggiungi la seguente riga:
/dev/mapper/encryptedvdc1 /encrypted xfs _netdev 1 2
Per questo esempio, supponiamo che l'indirizzo IP del server Tang sia 192.168.1.20
. Puoi anche utilizzare il nome host o il dominio se preferisci.
Esegui il seguente clevis
comando:
sudo clevis bind luks -d /dev/vdc1 tang '{"url":"http://192.168.1.20"}'
The advertisement contains the following signing keys:
rwA2BAITfYLuyNiIeYUMBzkhk7M
Do you wish to trust these keys? [ynYN] Y
Enter existing LUKS password:
Digita Y per accettare le chiavi per il server Tang e fornire la password LUKS esistente per la configurazione iniziale.
Abilita clevis-luks-askpass.path tramite systemctl per evitare che venga richiesta la passphrase per le partizioni non root.
sudo systemctl enable clevis-luks-askpass.path
Il client è installato. Ora, ogni volta che riavvii il server, il disco crittografato dovrebbe essere automaticamente decrittografato e montato recuperando le chiavi dal server Tang.
Se il server Tang non è disponibile per qualsiasi motivo, dovrai fornire manualmente la passphrase per decrittografare e montare la partizione.