LUKS gestione manuale dei volumi: cryptsetup: differenze tra le versioni

m
Riga 5: Riga 5:
== 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.<br/>
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.<br/>
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:
 
<pre>$ mkdir /home/'''nomeutente'''/criptata</pre>
=== Script per file immagine ===
=== Script per file immagine ===
Con [[privilegi di amministratore]] copiare il file successivo in <code>/usr/local/sbin</code>, assegnandogli utente e gruppo [[root]] e permessi di esecuzione, dopodiché eseguirlo solo una volta ottenuti i [[privilegi di amministratore]].
Si deve però modificare la variabile dello script seguente per utilizzare la propria home, anziché quella di root.
<pre>#!/bin/bash
<pre>#!/bin/bash
HOME_UTENTE="${HOME:-/home/nomeutente}" ### <-- DA MODIFICARE CON LA PROPRIA HOME


#Utilizzo di un file immagine come periferica criptata
#Utilizzo di un file immagine come periferica criptata
Riga 15: Riga 20:
case $1 in
case $1 in
         monta)
         monta)
                 if [ -f /home/'''nomeutente'''/immagine_cifrata ]; then
                 if [ -f "$HOME_UTENTE"/immagine_cifrata ]; then
                     echo "Impostazione periferica ricorsiva (loop)."
                     echo "Impostazione periferica ricorsiva (loop)."
                     /sbin/losetup /dev/loop0 /home/'''nomeutente'''/immagine_cifrata
                     /sbin/losetup /dev/loop0 "$HOME_UTENTE"/immagine_cifrata
                else
                    echo "File: \"$HOME_UTENTE/immagine_cifrata\" non trovato!" >&2
                    exit 4
                 fi
                 fi


Riga 28: Riga 36:


                 if [ $? = 0 ]; then
                 if [ $? = 0 ]; then
                     mount /dev/mapper/criptata /home/'''nomeutente'''/criptata
                    if ! [ -e "$HOME_UTENTE"/criptata ]; then
                      mkdir "$HOME_UTENTE"/criptata
                    fi &&
                     mount /dev/mapper/criptata "$HOME_UTENTE"/criptata
                 else
                 else
                     echo "Impotazione periferica non criptata non riuscita." >&2
                     echo "Impotazione periferica non criptata non riuscita." >&2
Riga 57: Riga 68:
    if [ $? = 0 ]; then  
    if [ $? = 0 ]; then  
        echo "Periferica criptata chiusa"
        echo "Periferica criptata chiusa"
        touch /home/'''nomeutente'''/criptata.img
        touch "$HOME_UTENTE"/criptata.img
                     else
                     else
                         echo "Rimozione periferica ricorsiva non riuscita." >&2
                         echo "Rimozione periferica ricorsiva non riuscita." >&2
Riga 77: Riga 88:


=== 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 <code>sdhci</code>).
Con [[privilegi di amministratore]] copiare il file successivo in <code>/usr/local/sbin</code>, assegnandogli utente e gruppo [[root]] e permessi di esecuzione, dopodiché eseguirlo solo una volta ottenuti i [[privilegi di amministratore]].
 
Si deve però modificare la variabile dello script seguente per utilizzare la propria home, anziché quella di root.
 
In questo esempio inoltre viene usata la prima partizione di una scheda di memoria SD (<code>/dev/mmcblk0p1</code> con lettore compatibile con il modulo <code>sdhci</code>), se si utilizza una diversa memoria si deve cambiare il percorso.
 
<pre>#!/bin/bash
<pre>#!/bin/bash
HOME_UTENTE="${HOME:-/home/nomeutente}" ### <-- DA MODIFICARE CON LA PROPRIA HOME
PATH_MEMORIA="/dev/mmcblk0p1"          ### <-- DA MODIFICARE CON IL PATH /dev/... DELLA PROPRIA MEMORIA


case $1 in
case $1 in
         monta)
         monta)
                 echo "Verifica presenza SD:"
                 echo "Verifica presenza SD:"
                 if [ -b /dev/mmcblk0p1 ] ; then
                 if [ -b "$PATH_MEMORIA" ] ; then
                     echo "."
                     echo "."
                 else
                 else
                     echo "La periferica non è inserita!" >&2
                     echo "La periferica ($PATH_MEMORIA) non è inserita!" >&2
                     exit 2
                     exit 2
                fi
                if ! [ -e "$HOME_UTENTE"/criptata ]; then
                    mkdir "$HOME_UTENTE"/criptata
                 fi
                 fi


                 /sbin/cryptsetup luksOpen /dev/mmcblk0p1 criptata &&
                 /sbin/cryptsetup luksOpen "$PATH_MEMORIA" criptata &&
                 mount /dev/mapper/criptata /home/'''nomeutente'''/criptata ||
                 mount /dev/mapper/criptata "$HOME_UTENTE"/criptata ||
                 {
                 {
                     echo "Il file system cifrato non può essere montato." >&2
                     echo "Il file system cifrato non può essere montato." >&2
Riga 99: Riga 121:
         ;;
         ;;
         smonta)
         smonta)
#Smonto il file system criptato e controllo che lo smontaggio sia avvenuto correttamente
                #Smonto il file system criptato e controllo che lo smontaggio sia avvenuto correttamente
                 umount /dev/mapper/criptata
                 umount /dev/mapper/criptata
                 if [ $? != 0 ]; then
                 if [ $? != 0 ]; then
Riga 106: Riga 128:
                 fi
                 fi


#Chiudo il nodo in /dev/mapper e controllo
                #Chiudo il nodo in /dev/mapper e controllo
                 /sbin/cryptsetup luksClose criptata
                 /sbin/cryptsetup luksClose criptata
                 if [ $? = 0 ]; then
                 if [ $? = 0 ]; then
Riga 125: Riga 147:
|Autore = [[Utente:GipPasso|GipPasso]]
|Autore = [[Utente:GipPasso|GipPasso]]
|Verificata_da =
|Verificata_da =
: [[Utente:HAL 9000|HAL 9000]] 17:45, 19 apr 2015 (CEST)
: [[Utente:HAL 9000|HAL 9000]] 17:59, 19 apr 2015 (CEST)
|Estesa_da =
|Estesa_da =
|Numero_revisori = 1
|Numero_revisori = 1
3 581

contributi