LUKS gestione manuale dei volumi: cryptsetup: differenze tra le versioni
(Aggiunto template autori) |
S3v (discussione | contributi) m (- broken link) |
||
Riga 1: | Riga 1: | ||
== Introduzione == | == Introduzione == | ||
Questa guida contiene solo due esempi di script | Questa guida contiene solo due esempi di [[script]] Bash per la gestione attraverso cryptsetup di volumi cifrati secondo lo standard LUKS (Linux Unified Keys Setup).<br/> | ||
Per la parte relativa alla creazione dei volumi (sia su periferica fisica che su file) rimandiamo alla guida su [[Volumi criptati LUKS - Creazione e uso con cryptmount | LUKS e cryptmount]] | Per la parte relativa alla creazione dei volumi (sia su periferica fisica che su file) rimandiamo alla guida su [[Volumi criptati LUKS - Creazione e uso con cryptmount | LUKS e cryptmount]] | ||
== Automatizzazione dei passi necessari == | == Automatizzazione dei passi necessari == | ||
Assumiamo di avere creato correttamente il volume criptato, la chiave e il filesystem. Ora dobbiamo solo creare uno script da eseguire come root, per fare tutte le operazioni di creazione e montaggio, o viceversa di smontaggio e rimozione automaticamente. | Assumiamo di avere creato correttamente il volume criptato, la chiave e il filesystem. Ora dobbiamo solo creare uno script da eseguire come [[root]], per fare tutte le operazioni di creazione e montaggio, o viceversa di smontaggio e rimozione automaticamente.<br/> | ||
Di seguito sono riportati due script, uno per il caso di file montato ricorsivamente, l'altro per il caso di periferica ordinaria. | Di seguito sono riportati due script, uno per il caso di file montato ricorsivamente, l'altro per il caso di periferica ordinaria.<br/> | ||
In entrambi i casi il montaggio della periferica criptata avviene nella cartella "criptata" nella home dell'utente; è necessario quindi creare la cartella: | In entrambi i casi il montaggio della periferica criptata avviene nella cartella "criptata" nella home dell'utente; è necessario quindi creare la cartella: | ||
<pre>$ mkdir /home/'''nomeutente'''/criptata</pre> | <pre>$ mkdir /home/'''nomeutente'''/criptata</pre> | ||
Riga 45: | Riga 45: | ||
if [ $? = 0 ]; then /sbin/losetup -d /dev/loop0 | if [ $? = 0 ]; then /sbin/losetup -d /dev/loop0 | ||
wikEdTabPlainif [ $? = 0 ]; then | |||
wikEdTabPlain echo "Periferica criptata chiusa" | |||
wikEdTabPlain touch /home/'''nomeutente'''/criptata.img | |||
wikEdTabPlainelse echo "Chiusura periferica criptata non riuscita" | |||
wikEdTabPlain fi | |||
wikEdTabPlainfi | |||
;; | ;; | ||
*) | *) | ||
Riga 57: | Riga 57: | ||
;; | ;; | ||
esac</pre> | esac</pre> | ||
Nello script è stato inserito il comando <code>touch</code> per impostare all'ora attuale le date di ultimo accesso e modifica del file <code>criptata.img</code>. | Nello script è stato inserito il comando <code>touch</code> per impostare all'ora attuale le date di ultimo accesso e modifica del file <code>criptata.img</code>.<br/> | ||
Nella prassi si è rivelata importante una modifica esplicita di queste informazioni del file, per sapere quali file cifrati sono stati aperti di recente, nel caso se ne vogliano fare delle copie di backup. | Nella prassi si è rivelata importante una modifica esplicita di queste informazioni del file, per sapere quali file cifrati sono stati aperti di recente, nel caso se ne vogliano fare delle copie di backup.<br/> | ||
Se non si inserisce quella riga, programmi di backup (che spesso si appoggiano su ''librsync'') possono non accorgersi che il file cifrato è stato cambiato o è stato aperto di recente e non lo considerano nel sincronizzare le varie copie. | Se non si inserisce quella riga, programmi di backup (che spesso si appoggiano su ''librsync'') possono non accorgersi che il file cifrato è stato cambiato o è stato aperto di recente e non lo considerano nel sincronizzare le varie copie. | ||
=== Script per periferica ordinaria === | === Script per periferica ordinaria === | ||
In questo esempio viene usata la prima partizione di una scheda di memoria SD (<code>/dev/mmcblk0p1</code> con lettore compatibile con il modulo sdhci). | In questo esempio viene usata la prima partizione di una scheda di memoria SD (<code>/dev/mmcblk0p1</code> con lettore compatibile con il modulo <code>sdhci</code>). | ||
<pre>#!/bin/bash | <pre>#!/bin/bash | ||
Versione delle 09:52, 17 feb 2013
Introduzione
Questa guida contiene solo due esempi di script Bash per la gestione attraverso cryptsetup di volumi cifrati secondo lo standard LUKS (Linux Unified Keys Setup).
Per la parte relativa alla creazione dei volumi (sia su periferica fisica che su file) rimandiamo alla guida su LUKS e cryptmount
Automatizzazione dei passi necessari
Assumiamo di avere creato correttamente il volume criptato, la chiave e il filesystem. Ora dobbiamo solo creare uno script da eseguire come root, per fare tutte le operazioni di creazione e montaggio, o viceversa di smontaggio e rimozione automaticamente.
Di seguito sono riportati due script, uno per il caso di file montato ricorsivamente, l'altro per il caso di periferica ordinaria.
In entrambi i casi il montaggio della periferica criptata avviene nella cartella "criptata" nella home dell'utente; è necessario quindi creare la cartella:
$ mkdir /home/'''nomeutente'''/criptata
Script per file immagine
#Utilizzo di un file immagine come periferica criptata #!/bin/bash case $1 in monta) if [ -f /home/'''nomeutente'''/immagine_cifrata ]; then echo "Impostazione periferica ricorsiva (loop)." /sbin/losetup /dev/loop0 /home/'''nomeutente'''/immagine_cifrata fi if [ $? = 0 ]; then /sbin/cryptsetup luksOpen /dev/loop0 criptata else echo "Impostazione periferica ricorsiva non riuscita." fi if [ $? = 0 ]; then mount /dev/mapper/criptata /home/'''nomeutente'''/criptata fi if [ $? !=0 ]; then echo "Impossibile montare la periferica criptata." /sbin/cryptsetup luksClose criptata /sbin/losetup -d /dev/loop0 fi ;; smonta) umount /dev/mapper/criptata echo "Smontaggio riuscito" if [ $? = 0 ]; then /sbin/cryptsetup luksClose criptata else echo "Smontaggio non riuscito." fi if [ $? = 0 ]; then /sbin/losetup -d /dev/loop0 wikEdTabPlainif [ $? = 0 ]; then wikEdTabPlain echo "Periferica criptata chiusa" wikEdTabPlain touch /home/'''nomeutente'''/criptata.img wikEdTabPlainelse echo "Chiusura periferica criptata non riuscita" wikEdTabPlain fi wikEdTabPlainfi ;; *) echo "Usage: $1 {monta|smonta}" >&2 exit 1 ;; esac
Nello script è stato inserito il comando touch
per impostare all'ora attuale le date di ultimo accesso e modifica del file criptata.img
.
Nella prassi si è rivelata importante una modifica esplicita di queste informazioni del file, per sapere quali file cifrati sono stati aperti di recente, nel caso se ne vogliano fare delle copie di backup.
Se non si inserisce quella riga, programmi di backup (che spesso si appoggiano su librsync) possono non accorgersi che il file cifrato è stato cambiato o è stato aperto di recente e non lo considerano nel sincronizzare le varie copie.
Script per periferica ordinaria
In questo esempio viene usata la prima partizione di una scheda di memoria SD (/dev/mmcblk0p1
con lettore compatibile con il modulo sdhci
).
#!/bin/bash case $1 in monta) echo "Verifica presenza SD:" if [ -b /dev/mmcblk0p1 ] ; then echo "." else echo "La periferica non è inserita!" exit 2 fi if [ $? = 0 ]; then /sbin/cryptsetup luksOpen /dev/mmcblk0p1 criptata fi if [ $? = 0 ]; then mount /dev/mapper/criptata /home/'''nomeutente'''/criptata fi if [ $? != 0 ]; then echo "Il file system cifrato non può essere montato." /sbin/cryptsetup luksClose criptata fi ;; smonta) #Smonto il file system criptato e controllo che lo smontaggio sia avvenuto correttamente umount /dev/mapper/criptata if [ $? != 0 ]; then echo "Smontaggio non riuscito." fi #Chiudo il nodo in /dev/mapper e controllo /sbin/cryptsetup luksClose criptata if [ $? = 0 ]; then echo "Nodo cifrato in /dev/mapper rimosso." else echo "Chiusura periferica criptata non riuscita" fi ;; *) echo "Usage: $1 {monta|smonta}" >&2 exit 1 ;; esac
Guida scritta da: GipPasso | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |