L’acronimo LUKS sta per Linux Unified Key Setup, che è un ampio metodo di crittografia dei dischi utilizzato dal kernel Linux ed è implementato con il pacchetto cryptsetup.
Il comando cryptsetup crittografa in modo dinamico un disco di volume utilizzando una chiave di crittografia simmetrica derivata dalla passphrase fornita ogni volta che un disco di volume, una partizione e anche un intero disco (anche una chiavetta USB) viene montato nella gerarchia del filesystem e utilizza il cifrario aes-cbc-essiv:sha256.

Poiché LUKS può crittografare l’intero blocco di dispositivi (hard-disk, chiavette USB, dischi Flash, partizioni, gruppi di volumi, ecc.) sui sistemi Linux, è ampiamente raccomandato per proteggere i supporti di archiviazione rimovibili, i dischi rigidi dei laptop o i file di swap in Linux e non è raccomandato per la crittografia a livello di file.
NTFS (New Technology File System) è un file system proprietario sviluppato da Microsoft.
Ubuntu 14.04 fornisce pieno supporto per la crittografia LUKS e anche il supporto nativo NTFS per Windows con l’aiuto del pacchetto ntfs-3g.
Per dimostrare il mio punto in questo tutorial, ho aggiunto un nuovo disco rigido (il 4°) sulla macchina Ubuntu 14.04 (il riferimento di sistema al nuovo HDD aggiunto è /dev/sdd) che sarà diviso in due partizioni.
- Una partizione (/dev/sdd1 -primaria) utilizzata per la crittografia LUKS.
- La seconda partizione (/dev/sdd5 – estesa) formattata in NTFS per accedere ai dati su entrambi i sistemi basati su Linux e Windows.
Inoltre, le partizioni saranno montate automaticamente su Ubuntu 14.04 dopo il riavvio.
Passo 1: Creare Partizioni del Disco.
1. Dopo aver aggiunto fisicamente il tuo hard disk alla tua macchina, utilizza il comando ls per elencare tutti i /dev/dispositivi (il quarto disco è /dev/sdd).
# ls /dev/sd*

2. Controlla il tuo nuovo HDD con il comando fdisk.
$ sudo fdisk –l /dev/sdd

Poiché non è stato scritto alcun filesystem, il disco non contiene ancora una tabella partizioni valida.
3. I passi successivi sezionano l’hard disk per ottenere due partizioni usando l’utilità disco cfdisk.
$ sudo cfdisk /dev/sdd
4. La schermata successiva apre la modalità interattiva con cfdisk. Seleziona lo spazio libero del tuo hard disk e vai all’opzione Nuovo utilizzando le frecce direzionali sinistra/destra.

5. Scegli il tipo di partizione come Primaria e premi Invio.

6. Scrivi la dimensione desiderata della partizione in MB.

7. Crea questa partizione all’Inizio dello spazio libero del disco.

8. Passa all’opzione Tipo della partizione e premi Invio.

9. Il prompt successivo mostra un elenco di tutti i tipi di filesystem e il loro codice numerico (numero esadecimale). Questa partizione sarà criptata Linux LUKS quindi scegli il codice 83 e premi di nuovo Invio per creare la partizione.

10. La prima partizione è stata creata e il prompt dell’utilità cfdisk torna all’inizio. Per creare la seconda partizione da utilizzare come NTFS, seleziona lo spazio libero rimanente, vai all’opzione Nuovo e premi il tasto Invio.

11. Questa volta la partizione sarà del tipo Logica Estesa. Quindi, seleziona l’opzione Logica e premi nuovamente Invio.

12. Inserisci nuovamente la dimensione della partizione. Per utilizzare lo spazio libero rimanente come nuova partizione, lascia il valore predefinito sulla dimensione e premi solo Invio.

13. Scegli nuovamente il codice del tipo di partizione. Per il filesystem NTFS, seleziona il codice di volume 86.

14. Dopo aver revisionato e verificato le partizioni, seleziona Scrivi, rispondi sì alla successiva domanda interattiva e quindi Esci per uscire dall’utilità cfdisk.



Congratulazioni! Le tue partizioni sono state create con successo e sono pronte per essere formattate e utilizzate.
15. Per verificare nuovamente la Tabella delle Partizioni del disco, esegui nuovamente il comando fdisk che mostrerà informazioni dettagliate sulla tabella delle partizioni.
$ sudo fdisk –l /dev/sdd

Passo 2: Creare il Filesystem delle Partizioni
Filesystem NTFS
16. Per creare il filesystem NTFS sulla seconda partizione, esegui il comando mkfs.
$ sudo mkfs.ntfs /dev/sdd5

17. Per rendere la partizione disponibile, deve essere montata sul filesystem su un punto di mount. Monta la seconda partizione sul quarto hard-disk al punto di mount /opt utilizzando il comando mount.
$ sudo mount /dev/sdd5 /opt
18. Successivamente, controlla se la partizione è disponibile ed è elencata nel file /etc/mtab utilizzando il comando cat.
$ cat /etc/mtab

19. Per smontare la partizione utilizza il seguente comando.
$ sudo umount /opt
EXT4 LUKS
20. Assicurati che il pacchetto cryptsetup sia installato sul tuo sistema.
$ sudo apt-get install cryptsetup [On Debian Based Systems] # yum install cryptsetup [On RedHat Based Systems]
21. Ora è il momento di formattare la prima partizione sul quarto disco rigido con filesystem ext4 emettendo il seguente comando.
$ sudo luksformat -t ext4 /dev/sdd1
Rispondi con MAIUSCOLO SÌ alla domanda “Sei sicuro?” e inserisci tre volte la passphrase desiderata.

Nota: A seconda della dimensione della partizione e della velocità dell’HDD, la creazione del filesystem potrebbe richiedere del tempo.
22. È anche possibile verificare lo stato del dispositivo di partizione.
$ sudo cryptsetup luksDump /dev/sdd1

23. LUKS supporta un massimo di 8 password aggiunte. Per aggiungere una password utilizza il seguente comando.
$ sudo cryptsetup luksAddKey /dev/sdd1

Per rimuovere una password utilizza.
$ sudo cryptsetup luksRemoveKey /dev/sdd1

24. Per rendere attiva questa partizione crittografata deve avere una voce di nome (essere inizializzata) nella directory /dev/mapper con l’aiuto del pacchetto cryptsetup.
Questa impostazione richiede la seguente sintassi da riga di comando:
$ sudo cryptsetup luksOpen /dev/LUKS_partiton device_name
Dove “nome_dispositivo” può essere un nome descrittivo a tua scelta! (Io l’ho chiamato volume_criptato). Il comando effettivo sarà come mostrato di seguito.
$ sudo cryptsetup luksOpen /dev/sdd1 crypted_volume

25. Verifica se il tuo dispositivo è elencato su /dev/mapper, directory, collegamento simbolico e stato del dispositivo.
$ ls /dev/mapper $ ls –all /dev/mapper/encrypt_volume

$ sudo cryptsetup –v status encrypt_volume

26. Ora, per rendere il dispositivo di partizione ampiamente disponibile, montalo sul tuo sistema in un punto di mount utilizzando il comando mount.
$ sudo mount /dev/mapper/crypted_volume /mnt

Come si può vedere, la partizione è montata ed è accessibile per scrivere dati.
27. Per renderla non disponibile, basta smontarla dal tuo sistema e chiudere il dispositivo.
$ sudo umount /mnt $ sudo cryptsetup luksClose crypted_volume

Passo 3: Montare automaticamente la partizione
Se utilizzi un disco rigido fisso e hai bisogno che entrambe le partizioni siano montate automaticamente dal sistema dopo il riavvio, devi seguire questi due passaggi.
28. Prima modifica il file /etc/crypttab e aggiungi i seguenti dati.
$ sudo nano /etc/crypttab
- Nome target: Un nome descrittivo per il tuo dispositivo (vedi punto sopra 22 su EXT4 LUKS).
- Unità di origine: La partizione del disco rigido formattata per LUKS (vedi punto sopra 21 su EXT4 LUKS).
- File chiave: Scegli “none”
- Opzioni: Specifica luks
La riga finale dovrebbe apparire come mostrato di seguito.
encrypt_volume /dev/sdd1 none luks

29. Quindi modifica /etc/fstab e specifica il nome del tuo dispositivo, il punto di mount, il tipo di filesystem e altre opzioni.
$ sudo nano /etc/fstab
Nell’ultima riga utilizza la seguente sintassi.
/dev/mapper/device_name (or UUID) /mount_point filesystem_type options dump pass
E aggiungi il tuo contenuto specifico.
/dev/mapper/encrypt_volume /mnt ext4 defaults,errors=remount-ro 0 0

30. Per ottenere l’UUID del dispositivo utilizza il seguente comando.
$ sudo blkid

31. Per aggiungere anche il tipo di partizione NTFS creato in precedenza, utilizzare la stessa sintassi come sopra su una nuova riga in fstab (Qui viene utilizzata la ridirezione degli allegati dei file Linux).
$ sudo su - # echo "/dev/sdd5 /opt ntfs defaults 0 0" >> /etc/fstab

32. Per verificare le modifiche, riavviare la macchina, premere Invio dopo il messaggio di avvio “Starting configure network device” e digitare la password del dispositivo.


Come puoi vedere entrambe le partizioni disco sono state montate automaticamente nella gerarchia del filesystem di Ubuntu. Come consiglio, non utilizzare volumi automaticamente cifrati dal file fstab su server fisicamente remoti se non puoi accedere alla sequenza di riavvio per fornire la password del tuo volume crittografato.
Le stesse impostazioni possono essere applicate a tutti i tipi di supporti rimovibili come chiavette USB, memorie flash, dischi rigidi esterni, ecc. per proteggere dati importanti, segreti o sensibili in caso di intercettazioni o furti.
Source:
https://www.tecmint.com/linux-hard-disk-encryption-using-luks/