LUKS (Linux Unified Key Setup) è il metodo di crittografia standard de facto utilizzato sui sistemi basati su Linux. Sebbene il programma di installazione Debian sia perfettamente in grado di creare un contenitore LUKS, non ha la capacità di riconoscere e quindi riutilizzarne uno già esistente. In questo articolo vediamo come possiamo aggirare questo problema usando il programma di installazione "DVD1" ed eseguendolo in modalità "avanzata".
In questo tutorial imparerai :
- Come installare Debian in “modalità avanzata”
- Come caricare i moduli aggiuntivi del programma di installazione necessari per sbloccare un dispositivo LUKS esistente
- Come eseguire l'installazione su un container LUKS esistente
- Come aggiungere una voce nel file crypttab del sistema appena installato e rigenerare il suo initramfs
Come installare Debian su un contenitore LUKS esistente
Requisiti software e convenzioni utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | Debian |
Software | Nessun software specifico necessario |
Altro | Il programma di installazione del DVD Debian |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo command$ – richiede l'esecuzione di determinati comandi linux come un normale utente non privilegiato |
Il problema:riutilizzare un container LUKS esistente
Come abbiamo già detto, l'installer Debian è perfettamente in grado di creare e installare la distribuzione su un contenitore LUKS (una configurazione tipica è LVM su LUKS), tuttavia attualmente non può riconoscere e aprire una già esistente
; perché avremmo bisogno di questa funzione? Supponiamo, ad esempio, di aver già creato un contenitore LUKS manualmente, con alcune impostazioni di crittografia che non possono essere ottimizzate dal programma di installazione della distribuzione, o immagina di avere un volume logico all'interno del contenitore che non vogliamo distruggere (forse contiene alcuni dati); utilizzando la procedura standard dell'installatore, saremmo costretti a creare un nuovo container LUKS, e quindi a distruggere quello esistente. In questo tutorial vedremo come, con pochi passaggi aggiuntivi, possiamo risolvere questo problema.
Download del programma di installazione del DVD
Per poter eseguire le azioni descritte in questo tutorial dobbiamo scaricare e usare il Debian DVD installer, poiché contiene alcune librerie che non sono disponibili in netinstall versione. Per scaricare l'immagine di installazione tramite torrent possiamo utilizzare uno dei link sottostanti, a seconda dell'architettura della nostra macchina:
- 64 bit
- 32 bit
Dai link sopra possiamo scaricare i file torrent che possiamo utilizzare per ottenere l'immagine del programma di installazione. Quello che dobbiamo scaricare è il DVD1
file. Per ottenere l'ISO di installazione, dobbiamo utilizzare un client torrent come Trasmissione . Una volta scaricata l'immagine, possiamo verificarla verificando scaricando il corrispondente SHA256SUM
e SHA256SUM.sign
file e segui questo tutorial su come verificare l'integrità di un'immagine ISO di una distribuzione Linux. Quando siamo pronti, possiamo scrivere l'immagine su un supporto che può essere utilizzato come dispositivo di avvio:un (DVD o USB) e avviare la nostra macchina da esso.
Utilizzo della modalità di installazione avanzata
Quando avviamo la macchina utilizzando il dispositivo che abbiamo preparato, dovremmo visualizzare il seguente syslinux menu:
Selezioniamo le Opzioni avanzate voce, quindi Installazione di esperti grafici (o Installazione esperta se vogliamo utilizzare il programma di installazione basato su ncurses, che utilizza meno risorse):
Una volta selezionata e confermata la voce di menu, si avvierà il programma di installazione e visualizzeremo l'elenco dei passaggi di installazione:
Seguiamo i passaggi di installazione fino ad arrivare a Carica i componenti del programma di installazione dal CD uno. Qui abbiamo la modifica per selezionare le librerie aggiuntive che dovrebbero essere caricate dall'installer. Il minimo che vogliamo selezionare dall'elenco è Crypto-dm-modules e modalità di salvataggio (scorri l'elenco per vederlo):
Sblocco manuale del contenitore LUKS esistente e partizionamento del disco
A questo punto possiamo procedere come di consueto fino ad arrivare sul Rileva dischi fare un passo. Prima di eseguire questo passaggio, dobbiamo passare a un tty e apri il contenitore LUKS esistente dalla riga di comando. Per fare ciò, possiamo premere Ctrl+Alt+F3 combinazione di tasti e premi Invio per ottenere un prompt. Dal prompt apriamo il dispositivo LUKS lanciando il seguente comando:
# cryptsetup luksOpen /dev/vda5 cryptdevice Enter passphrase for /dev/vda5:
In questo caso il dispositivo LUKS è stato precedentemente impostato su /dev/vda5
partizione, dovresti ovviamente adattarlo alle tue esigenze. Ci verrà chiesto di inserire la passhprase per il container per sbloccarlo. Il nome del device mapper che utilizziamo qui (cryptdevice) è quello che dovremo usare in seguito nel /etc/crypttab
file.
Una volta eseguito questo passaggio, possiamo tornare al programma di installazione (Ctrl+Alt+F5 ) e procedi con Rileva dischi e poi con Dischi di partizione passi. Nei Dischi di partizione menu selezioniamo la voce “Manuale”:
Il dispositivo LUKS sbloccato e i volumi logici in esso contenuti dovrebbero apparire nell'elenco delle partizioni disponibili, pronte per essere utilizzate come destinazioni per la configurazione del nostro sistema. Una volta che siamo pronti, possiamo continuare con l'installazione fino ad arrivare a Termina l'installazione fare un passo. Prima di eseguirlo dobbiamo creare una voce nel sistema appena installato crypttab
per il dispositivo LUKS, poiché non è creato per impostazione predefinita, e ricreare il sistema initramfs per rendere effettiva la modifica.
Creazione di una voce in /etc/crypttab e ricreazione di initramfs
Torniamo al tty abbiamo usato prima (Ctrl+Alt+F3 ). Quello che dobbiamo fare ora è aggiungere manualmente una voce in /etc/crypttab
file del sistema appena installato per il dispositivo LUKS. Per farlo, dobbiamo montare da qualche parte la partizione di root del nuovo sistema (usiamo il /mnt
directory) e montare alcuni pseudo-filesystem che forniscono informazioni importanti sulle directory appropriate al suo interno. Nel nostro caso il filesystem di root è nel /dev/debian-vg/root
volume logico:
# mount /dev/debian-vg/root /mnt # mount /dev /mnt/dev # mount /sys /mnt/sys # mount /proc /mnt/proc
Poiché in questo caso abbiamo una partizione di avvio separata (/dev/vda1
), dobbiamo anche montarlo su /mnt/boot
:
# mount /dev/vda1 /mnt/boot
A questo punto dobbiamo chroot nel sistema installato:
# chroot /mnt
Infine, possiamo aprire il /etc/crypttab
file con uno degli editor di testo disponibili, (vi ad esempio) e aggiungere la seguente voce:
cryptdevice /dev/vda5 none luks
Il primo elemento nella riga sopra è il nome del device mapper che abbiamo usato sopra quando abbiamo sbloccato manualmente il contenitore LUKS; verrà utilizzato ogni volta che il contenitore viene aperto durante l'avvio del sistema.
Il secondo elemento è la partizione che viene utilizzata come dispositivo LUKS (in questo caso l'abbiamo referenziata tramite il percorso (/dev/vda5
), ma un'idea migliore sarebbe farvi riferimento tramite UUID
).
Il terzo elemento è la posizione del file chiave utilizzato per aprire il contenitore:qui mettiamo none poiché non ne utilizziamo uno (segui il nostro tutorial su Come utilizzare un file come chiave del dispositivo LUKS se vuoi sapere come ottenere questo tipo di configurazione).
L'ultimo elemento della riga ospita le opzioni che dovrebbero essere utilizzate per il dispositivo crittografato:qui abbiamo semplicemente usato luks per specificare che il dispositivo è un contenitore LUKS.
Dopo aver aggiornato il /etc/crypttab
file, possiamo procedere ulteriormente e rigenerare gli initramfs . Su Debian e distribuzioni basate su Debian, per eseguire questa azione utilizziamo update-initramfs
comando:
# update-initramfs -k all -c
Qui abbiamo usato il -c
opzione per indicare al comando di creare un nuovo initramfs invece di aggiornarne uno esistente, e -k
per specificare per quale kernel deve essere creato initramfs. In questo caso abbiamo passato all
come argomento, quindi verrà generato uno per ogni kernel esistente.
Una volta generato initramfs, torniamo al programma di installazione (Ctrl+Alt+F5 ) e procedi con l'ultimo passaggio:Termina l'installazione . Al termine dell'installazione verrà richiesto il riavvio per accedere al sistema appena installato. Se tutto è andato come previsto, durante l'avvio del sistema dovrebbe essere richiesto di inserire la passphrase per sbloccare il contenitore LUKS:
Conclusioni
In questo tutorial abbiamo imparato come aggirare una limitazione del programma di installazione Debian che non è in grado di riconoscere e aprire un contenitore LUKS esistente per eseguire l'installazione del sistema al suo interno. Abbiamo imparato come utilizzare l'installer in “Modalità Avanzata” per poter caricare alcuni moduli aggiuntivi che ci permettono di sbloccare il container manualmente passando ad un tty. Una volta aperto il contenitore viene riconosciuto correttamente dall'installatore e può essere utilizzato senza problemi. L'unica parte complicata di questa configurazione è che dobbiamo ricordarci di creare una voce per il contenitore nel sistema appena installato crypttab
file e aggiorna il suo initramfs.