Come crittografare un disco in (X)Ubuntu Feisty con dm-crypt e LUKS

Questo articolo mostra passo dopo passo come crittografare un intero disco o una partizione su (X)Ubuntu Feisty usando dm-crypt e LUKS. Copre installazione dei pacchetti, preparazione del disco, creazione e mappatura della partizione cifrata, montaggio automatico all’avvio, gestione delle chiavi e considerazioni di sicurezza e legali. Leggi la sezione “Note importanti” prima di procedere.
I. Introduzione
Motivazione
Oggi la sicurezza dei dati è fondamentale, sia per l’uso personale sia per l’azienda. Crittografare un disco protegge i dati a riposo: se il supporto viene perso o rubato, il contenuto resta illeggibile senza la chiave corretta. Questa guida spiega come usare dm-crypt e LUKS su (X)Ubuntu Feisty per cifrare un disco o una partizione dedicata.
Breve definizione: dm-crypt è un framework del kernel Linux per la cifratura a blocchi; LUKS è uno standard per la gestione dei volumi crittografati che semplifica la gestione di potenziali più chiavi.
Fonti principali usate per compilare questa guida:
- http://www.hermann-uwe.de/blog/howto-disk-encryption-with-dm-crypt-luks-and-debian
- https://systemausfall.org/wikis/howto/CryptoPartitionHowTo
- contributi nella comunità Ubuntu IRC
Avvertenza importante
Questa procedura distruggerà tutti i dati presenti sul disco/partizione che scegli di cifrare. Verifica con attenzione il device target (es. /dev/sda, /dev/hdb). Non usare questo procedimento sul disco di sistema dove è installato il tuo sistema operativo, a meno che tu non sappia esattamente cosa stai facendo e abbia backup completi.
Note importanti:
- Esegui backup completi prima di qualsiasi operazione.
- Lavora su dischi che non contengono il sistema operativo a meno che tu non abbia una procedura di recovery.
- Controlla i nomi dei dispositivi con sudo fdisk -l o lsblk prima di lanciare comandi che scrivono sul disco.
Considerazioni legali (breve)
In alcuni ordinamenti giudiziari potresti essere obbligato a rivelare password o chiavi. Le leggi variano tra paesi e tra procedimenti penali e civili. Questa guida non è consulenza legale. Se la protezione giuridica è critica per te, consulta un avvocato nel tuo paese.
Breve nota contestuale: l’autore originario viveva in Svizzera e menzionava la Convenzione Europea dei Diritti dell’Uomo come garanzia di alcuni diritti. Le differenze giurisdizionali sono importanti: informati localmente.
II. Installare i pacchetti necessari
Questa guida è scritta per (X)Ubuntu Feisty ma i comandi dovrebbero funzionare in molte distribuzioni Debian-like. Installa gli strumenti necessari:
sudo aptitude install cryptsetup hashalot
cryptsetup è lo strumento principale per gestire LUKS/dm-crypt. hashalot è utile per verificare checksum e password se necessario.
III. Preparare il disco
Per massimizzare la protezione e rendere difficile distinguere spazio libero da dati cifrati, alcuni preferiscono pre-riempire il dispositivo con dati casuali. Questo passaggio è facoltativo ma descritto qui per completezza. Puoi usare dd per scrivere dati casuali:
sudo dd if=/dev/urandom of=/dev/HARDDISK
Sostituisci HARDDISK con il dispositivo reale, ad esempio sdb o hdb. È consigliato creare prima una partizione e cifrare la partizione (es. /dev/sdb1) piuttosto che l’intero disco, anche se cifrare l’intero disco è possibile.
Esempio di output (attendi molto tempo su dischi grandi):
hyper@xubi:/dev$ sudo dd if=/dev/urandom of=/dev/hda
dd: writing to `/dev/hda': No space left on device
312581809+0 records in
312581808+0 records out
160041885696 bytes (160 GB) copied, 90679.8 seconds, 1.8 MB/s
Note pratiche:
- Scrivere /dev/urandom su un disco intero può richiedere molte ore a seconda della dimensione e della velocità del disco.
- Per test rapidi puoi usare /dev/zero, ma questo rende il disco riconoscibile come precedentemente ripulito.
IV. Caricare i moduli del kernel necessari
Per usare dm-crypt servono alcuni moduli kernel. Caricali manualmente o aggiungili a /etc/modules per il caricamento all’avvio.
Caricamento immediato:
sudo modprobe aes
sudo modprobe dm-crypt
sudo modprobe dm_mod
Per caricarli automaticamente ad ogni avvio, modifica /etc/modules:
sudo nano /etc/modules
Aggiungi alla fine (mantieni i moduli già presenti e aggiungi questi nomi):
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
fuse
lp
aes
dm-crypt
dm_mod
Salva ed esci (Ctrl+X, conferma con S o Y a seconda della localizzazione del nano). Verifica la presenza dei moduli con lsmod | grep dm.
V. Creare la partizione crittografata (LUKS)
Per inizializzare il dispositivo con LUKS:
sudo cryptsetup luksFormat /dev/HARDDISK
Il comando ti chiederà conferma e una passphrase. Scegli una passphrase robusta. Puoi anche usare una chiave da file al posto della passphrase, ma la passphrase è la scelta più comune.
Suggerimenti sulla passphrase:
- Usa almeno 12 caratteri: combina parole significative, caratteri speciali e numeri.
- Considera l’uso di una passphrase lunga come frase (passphrase) invece di una password breve.
- Conserva copia della passphrase in un luogo sicuro o in un password manager.
VI. Mappare la partizione crittografata
Apri (mappa) la partizione LUKS in un dispositivo mappato:
sudo cryptsetup luksOpen /dev/HARDDISK DEVICENAME
Dopo questo comando il dispositivo sarà accessibile tramite /dev/mapper/DEVICENAME.
Esempio:
sudo cryptsetup luksOpen /dev/sdb1 secure-data
# => /dev/mapper/secure-data
VII. Formattare il device crittografato
Ora formatti il device mappato con il filesystem che preferisci; qui usiamo ext3 come nell’originale:
sudo mkfs.ext3 /dev/mapper/DEVICENAME
Puoi usare ext4, xfs o altri file system a seconda delle necessità e compatibilità.
VIII. Montare la partizione
Crea un punto di mount e monta il volume crittografato:
sudo mkdir /media/DEVICENAME
sudo mount /dev/mapper/DEVICENAME /media/DEVICENAME
Per rimontarlo successivamente dopo il boot o dopo averlo chiuso, apri la mappatura con:
sudo cryptsetup luksOpen /dev/HARDDISK DEVICENAME
poi monta:
sudo mount /dev/mapper/DEVICENAME /media/DEVICENAME
IX. Montare all’avvio
Per chiedere al sistema di aprire e montare il volume crittografato all’avvio, configura /etc/crypttab e /etc/fstab.
Aggiungi in /etc/crypttab:
DEVICENAME /dev/HARDDISK none luks,check=ext2,retry=5
E in /etc/fstab aggiungi una riga per il mount:
# CryptoDevices
/dev/mapper/DEVICENAME /media/HARDDISK auto defaults 0 0
Comportamento all’avvio:
- Al boot ti verrà chiesta la passphrase. retry=5 indica il numero massimo di tentativi per l’inserimento della password.
- Se non fornisci correttamente la passphrase l’avvio continua senza montare il dispositivo; potrai comunque montarlo manualmente dopo il login.
X. Aggiungere o rimuovere chiavi
LUKS supporta più chiavi/slot, così puoi avere più passphrase/chiavi per lo stesso volume.
Aggiungere una chiave:
sudo cryptsetup luksAddKey /dev/HARDDISK
Rimuovere una chiave (ti verrà chiesto di inserire quella da eliminare):
sudo cryptsetup luksDelKey /dev/HARDDISK
Gestisci le chiavi con attenzione: non rimuovere tutte le chiavi senza averne almeno una valida.
XI. Smontare e chiudere la mappatura
Anche se smonti il filesystem, può rimanere una mappatura attiva in /dev/mapper. Per bloccare completamente l’accesso, chiudi la mappatura LUKS.
Smonta e chiudi in un unico comando:
sudo umount /media/DEVICENAME && sudo cryptsetup luksClose HARDDISK
Esempio di script semplice per smontare e chiudere (~/umount.sh):
#!/bin/bash
sudo umount /media/DEVICENAME && sudo cryptsetup luksClose HARDDISK
Rendi lo script eseguibile:
sudo chmod a+x ~/umount.sh
Puoi creare un lanciatore nel tuo ambiente grafico per eseguire questo script. Esempio immagine:
XII. Note finali e consigli pratici
Ora hai un volume cifrato pronto. Alcuni consigli per la gestione operativa e la sicurezza:
- Mantieni copie sicure della passphrase in case box o password manager.
- Testa il processo di apertura, mount e chiusura prima di affidare dati importanti.
- Se usi il disco su più macchine, accertati che tutte abbiano cryptsetup compatibile.
- Non lasciare il volume aperto su macchine non fidate.
Se il computer viene spento o perde alimentazione, il mapper viene rimosso e il volume non sarà montato al prossimo avvio fino a che non inserisci la passphrase.
Ulteriori sezioni utili (valore aggiunto)
Quando questa procedura non è sufficiente
- Se sei sotto obbligo legale di rivelare la passphrase, la cifratura non impedirà l’accesso alle autorità.
- Crittografia del disco non protegge da malware che cattura la passphrase a runtime (keylogger, rootkit) o da accessi di utenti con privilegi durante la sessione aperta.
- Se il sistema è compromesso mentre il volume è montato, i dati sono esposti.
Approcci alternativi
- VeraCrypt (successore di TrueCrypt) offre funzionalità aggiuntive come volumi nascosti e opzioni per la deniability plausibile. Tuttavia, VeraCrypt non è sempre integrata nei workflow Linux/Debian come LUKS.
- LUKS2 (versione più recente) offre miglioramenti nel formato, nell’integrità dei metadati e nel supporto per nuovi algoritmi. Su Feisty potresti non avere LUKS2 disponibile; considera l’aggiornamento a una distribuzione moderna per sfruttarne i vantaggi.
- Soluzioni hardware: dischi o unità esterne con cifratura hardware integrata.
Modelli mentali e regole pratiche
- “Crittografa i dati a riposo”: utile soprattutto per dispositivi rimovibili o laptop a rischio furto.
- “Chiave separata dai dati”: mantieni la passphrase separata dal dispositivo fisico.
- “Minimo privilegio”: non montare volumi critici su macchine condivise.
Checklist per ruoli (Utente / Amministratore)
Utente finale:
- Backup dei dati prima di procedere.
- Verificare il device target con lsblk.
- Annotare passphrase in luogo sicuro.
- Testare apertura e chiusura del volume.
Amministratore di sistema:
- Verificare compatibilità cryptsetup e kernel.
- Automatizzare backup della header LUKS (vedi nota di sicurezza).
- Documentare procedure di recovery e gestione delle chiavi.
- Valutare uso di smartcard o TPM con clevis/pinentry se necessario.
SOP (playbook) compatto
- Backup completo dei dati.
- Identificare il disco (/dev/sdX) con lsblk o fdisk -l.
- Riempire con random (opzionale): sudo dd if=/dev/urandom of=/dev/sdX.
- Caricare moduli: modprobe aes dm-crypt dm_mod.
- Inizializzare LUKS: sudo cryptsetup luksFormat /dev/sdX.
- Aprire volume: sudo cryptsetup luksOpen /dev/sdX nomevolume.
- Formattare: sudo mkfs.ext3 /dev/mapper/nomevolume.
- Creare mountpoint e montare.
- Aggiornare /etc/crypttab e /etc/fstab per il mount automatico.
- Testare riavvio e apertura con la passphrase.
Hardening e sicurezza extra
- Conserva una copia cifrata del LUKS header con cryptsetup luksHeaderBackup. Se l’header si corrompe perdi l’accesso ai dati.
sudo cryptsetup luksHeaderBackup /dev/HARDDISK --header-backup-file /percorso/backup-header.img
- Considera l’uso di keyscript o token hardware per separare la chiave dalla passphrase principale.
- Usa algoritmi e parametri moderni quando possibile (PBKDF iterations, cipher appropriati). Su sistemi vecchi alcuni parametri non saranno disponibili.
Migrazione e compatibilità
- (X)Ubuntu Feisty è una versione molto vecchia: cryptsetup e supporto LUKS potrebbero essere obsoleti. Se possibile, aggiorna a una LTS moderna prima di implementare soluzioni in produzione.
- LUKS2 non è retrocompatibile in tutte le situazioni: per migrare a LUKS2 consulta la documentazione ufficiale di cryptsetup.
Privacy e GDPR (breve)
La crittografia dei dati personali è una buona pratica per la protezione dei dati ai sensi del GDPR. Tuttavia, la sola crittografia non esime da obblighi normativi come la notifica in caso di violazione. Conserva un registro delle operazioni e dei backup in conformità con la policy aziendale.
Glossario (una linea ciascuno)
- LUKS: formato standard per volumi crittografati su Linux.
- dm-crypt: livello del kernel che fornisce cifratura a blocchi.
- cryptsetup: utility utente per gestire LUKS/dm-crypt.
- Passphrase: password usata per sbloccare il volume crittografato.
Riepilogo
- Crittografare un disco con dm-crypt/LUKS aumenta significativamente la sicurezza dei dati a riposo.
- Fai sempre backup e testa la procedura prima di affidare dati critici al volume cifrato.
- Considera aggiornamento a strumenti/formati moderni (LUKS2) e l’uso di dispositivi con supporto hardware se necessario.
Note finali: questa guida descrive una procedura pratica e consolidata. Adatta i comandi al tuo ambiente e fai attenzione ai dettagli dei nomi dei dispositivi.
Materiali simili

Spazio insufficiente per aggiornamento Windows: risolvi ora

Steam non si apre: 10 soluzioni rapide

Modificare pagefile in Windows: dimensione e posizione

Recuperare email eliminate su Mac: 7 metodi efficaci

Crittografare un disco con dm-crypt e LUKS
