HOWTO: FILESYSTEM CIFRATI SOTTO DEBIAN / UBUNTU - UTILIZZARE CRYPTSETUP-LUKS IN UN SISTEMA MULTIUTENTE TRAMITE PAM-MOUNT KEYWORDS: filesystem cifrati, debian, ubuntu, etch, gutsy, feisty, dmcrypt, cryptsetup, luks, pam-mont, cifratura disco, hard disk cifrati, truecrypt, file contenitore, container file AUTHOR: Sanata (substitute @ to PIPPO ) GnuPG fingerprint: 1E6A 462A 27D0 E9A4 239D 19BC C301 C2EA 224F 5BC4 ABSTRACT: In questo documento sono raccolti alcuni appunti sull'utilizzo di cryptsetup-luks in sistemi Debian (con particolare enfasi a Debian Etch e Ubuntu Feisty) redatti principalmente come fonte di riferimento personale. Il tutto è scritto puntando più sugli aspetti pratici che su quelli teorici. Se non si ha dimestichezza con il concetto di filesystem cifrati, luks e cryptsetup è consigliato prima andarsi a leggere un po' di documentazione per farsi un'idea di ciò che si sta qui proponendo. Contrariamente ad altri howto in Rete, in questo documento si affronterà il problema di creare un setup efficiente in sistemi multiutente, con passphrase di accesso al sistema diverse e indipendenti. CHANGELOG: 25/12/2007: altre piccole correzioni (si' lo so che e' Natale ma chissene) 05/12/2007: alcune correzioni e integrazione con la nuova release di Ubuntu, Gutsy Gibbon 15/09/2007: prima pubblicazione su https://www1.autistici.org/forum/viewtopic.php?pid=4851#p4851 23/08/2007: v0.1 20/08/2007: prima bozza COPYLEFT: Quest'opera è stata rilasciata sotto la licenza Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-nc-sa/2.5/it/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.5 Italy License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/it/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 0. INTRODUZIONE Non si vuole dare qui una spiegazione di cosa sia un filesystem cifrato e perchè sia il caso di usarlo. Diciamo però che avere l'hard disk cifrato non è la panacea di tutti i mali, protegge da alcuni tipi di minaccia ma non si deve fare l'errore di sentirsi in una botte di ferro. In quanto segue si assumerà l'utilizzo di sole passphrases come chiavi di accesso ai dati (niente chiavette USB et simili). Non si tratterà in questa sede di accorgimenti e metodi per la scelta di una passphrase robusta, ricordare solo che una passphrase NON è una password. Altrimenti si sarebbe chiamata password. Cercando in Rete si trovano decine di howto sull'argomento, ma personalmente ho dovuto faticare un po' per mettere insieme le informazioni che mi servivano per realizzare il setup di cui avevo bisogno: 1) cifratura di TUTTO il disco, tranne una piccola partizione di /boot 2) cifratura dello swap 3) flessibilità del partizionamento del disco, includendo in generale metodi RAID, LVM e partizioni indipendenti 4) dati personali di utenti diversi cifrati con passphrase diverse 5) dati personali di ogni utente salvati all'interno di un "file contenitore" diverso per ogni utente 6) accesso ai dati di un singolo utente automatico al login dell'utente, e blocco crittografico dei dati al momento del logout 7) praticità (evitare di inserire 7 passphrases diverse ad ogni boot del sistema ad esempio) I motivi: 1) non è strettamente necessario per proteggere i dati dell'utente X, ma è comunque una buona idea. Cifrando tutto il filesystem (anche la partizione root / ), se anche l'hard disk venisse rubato/sequestrato, l'aggressore non potrebbe ricavare NESSUNA informazione utile, nemmeno sul NUMERO o sul NOME DI LOGIN degli utenti registrati sul sistema. Una cosa che molto spesso viene dimenticata è che a volte sapere CHI sta facendo qualcosa è più importante di sapere il COSA. Sapere che un certo utente ha accesso ad un certo sistema informatico è già di per sè una potenziale vulnerabilità. Qui ci sarebbe molto da disquisire ovviamente, specialmente sul metodo di autenticazione usato da linux. Non sono un esperto in materia ma mi pare di capire che finora manchi del tutto un metodo di "plausible deniability" - se mi sbaglio perfavore contattatemi in modo che io possa aggiornare questo howto. Tanto per intenderci, se un aggressore ottiene accesso al filesystem in chiaro ha accesso di conseguenza alla lista degli utenti (anche se non riesce a conoscerne a priori le password di accesso), mentre invece l'ideale sarebbe un sistema di "interrogazione crittografica" (del tipo: "dimmi il nome di login e la password e io ti dico se l'autenticazione è riuscita o no - cioè se esiste una coppia valida [username,password] come quella che mi hai fornito. Se hai commesso un errore qualsiasi restituisco un errore di autenticazione") in cui non esiste una tabella in chiaro degli username, e che contenga a priori delle coppie "dummy" (fasulle) per celare perfino il numero di utenti effettivamente registrati sul sistema. Se esiste un sistema del genere perfavore fatemelo sapere. 2) ovvie ragioni. La partizione di swap può contenere tracce di dati sensibili che possono sopravvivere al reboot della macchina. Contrariamente a quanto suggerito in altri howto, non reputo una soluzione molto pratica swappare su file residente su partizione cifrata. La strada qui seguita è quella di creare una partizione dedicata per lo swap, magari tramite LVM (così che possa essere ridimensionata all'occorrenza), e di inizializzarla ad ogni boot della macchina con una chiave random effimera. 3) meglio farlo che non farlo. La complessità aumenta un po', ma almeno non ci si troverà spiazzati nel momento in cui si desideri farlo in un secondo momento. Questo step è comunque opzionale. 4) in questo modo si ha la ragionevole certezza che nessun utente possa avere accesso ai dati degli altri utenti, e soprattutto si potrà utilizzare pam-mount per automatizzare l'accesso ai dati degli utenti. 5) estrema praticità di backup. Se tutto il contenuto della home risiede dentro un file cifrato, per fare il backup delle impostazioni è sufficente masterizzare quel file su dvd o simili. Lo svantaggio è che se si esaurisce lo spazio bisogna creare un nuovo file contenitore più grande e copiarci dentro il vecchio contenuto, ma basta creare un file abbastanza grande (2-4 GB) e il problema è abbastanza scongiurato diciamo. 6) un sistema poco pratico, in cui l'utente deve montare e smontare a mano la propria home, non giova a nessuno. Se la sicurezza non è coadiuvata da praticità si finisce prima o poi per farne a meno, e ciò è indiscutibilmente male. 7) vedi punto 6) E' caldamente consigliato leggere TUTTO il documento prima di procedere. Alcuni passaggi sono delicati e vengono spiegati in note successive. 1. SETUP (Debian Etch) Paradossalmente (o anche no...) l'installer testuale di Debian Etch permette di fare tutto in maniera molto più semplice e immediata rispetto a Ubuntu. Basta non lasciarsi prendere dalla fretta di impostare una partizione come "LVM cifrato". Meglio fare le cose con calma. Prima di tutto bisogna impostare una partizione primaria di /boot con filesystem possibilmente ext3, bastano un centinaio di MB per stare abbondanti. Qui risiederà il kernel e tutto ciò che serve a far partire la macchina, sarà l'unica partizione in chiaro. Io ci ho messo dentro anche GRUB e l'ho flaggata come bootabile. Poi bisogna creare le partizioni logiche da usare come RAID, creare il multidevice RAID, creare una partizione nel multidevice da usare per LVM, configurare l'LVM creando le partizioni che ci interessano e impostarle per l'utilizzo col device mapper cifrato, quindi formattare le partizioni così ottenute con il filesystem che preferiamo e assegnare i punti di mount alle partizioni cifrate così ottenute. Il metodo è complicato e forse anche un po' contorto ma offre estrema versatilità e affidabilità. Affidandosi all'installer automatico non si otterrebbero risultati analoghi. Durante questa fase il sistema potrebbe impiegare letteralmente GIORNI per formattare i dischi (il mio Duron 700 ci ha messo una trentina d'ore per formattare un totale di 640 GB). Questo perchè prima di essere formattate con dmcrypt, le partizioni vengono sovrascritte con dati pseudorandom per evitare attacchi crittanalitici. E' molto importante far fare (almeno la prima volta) tutta questa procedura ed essere pazienti. Siete avvisati che può volerci molto tempo. Riassumendo, lo schema che ho descrito è il seguente: RAID --> LVM --> dmcrypt --> partizione Notate che sono ben TRE "strati" di software nidificati. Le prestazioni degradano? Mah... se è così io non me ne sono accorto. Per un sistema domestico non dovrebbero esserci controindicazioni. La scelta del partizionamento è ovviamente a vostro piacere, ma dovrete includervi almeno: - una partizione ext3 abbastanza grande da contenere la root / - una partizione di swap - una partizione ext2 (molto importante ext2, o comunque nessun filesystem di tipo journaling, ergo no ext3 e simili) sufficentemente grande per contenere le home di tutti gli utenti - una quarta partizione grande almeno come la root, consigliata su Debian, obbligatoria su Ubuntu (la potrete usare in seguito per tenere file condivisi etc.) In fase di setup non attivate la partizione di swap. L'installer vi darà uno warning ma ignoratelo, creeremo lo swap poi manualmente. Supponiamo che il logical group creato sul multidevice sia chiamato lg0 e che vi siano creati i seguenti device: lv0 (20 GB, montata come root / ) lv1 (1 GB, futuro swap, non montare in fase di installazione) lv2 (20 GB, montata manualmente in /mnt/containers) lv3 (80 GB, partizione ext3 per condividere musica e filmati, montare manualmente in /media/shared) I device cifrati li troveremo in /dev/mapper/lg0-lvN, mentre una volta "sbloccati" e decifrati saranno mappati di default come /dev/mapper/lg0-lvN_crypto. Una volta sistemato così il nostro hard disk, l'installer di Debian farà automagicamente il resto. Ci chiederà volta per volta una passphrase diversa per ognuna delle partizioni cifrate che abbiamo deciso di creare (nell'esempio di cui sopra quindi tre passphrase: 4 partizioni meno la swap che abbiamo deciso di non montare). Assicuratevi di scegliere la stessa passphrase per tutti (il motivo sarà spiegato poi), quindi continuate l'installazione nel modo usuale. Al reboot vi verranno chieste le passphrase per sbloccare OGNI partizione prima di procedere al login. Ci sono altre cose da sistemare ma le vedremo dopo. 2. SETUP (Ubuntu Feisty) Qui la procedura e' leggermente più complicata, perchè Ubuntu di default non permette di creare partizioni cifrate in fase di installazione. Ciò comunque è un bene, così avremo modo di vedere tutta la procedura "a mano". Il vantaggio è che avremo un maggior controllo sul risultato ottenuto, lo svantaggio è che dovremo usare una "partizione temporanea" per installare il sistema (la quarta partizione nell'esempio precedente serve proprio a questo). Una piccola nota: Feisty permette comunque di usare, in fase d'installazione, RAID e LVM esattamente come Etch, basta usare l'installer testuale invece che avviare l'installazione live (è veramente intuitivo). Supponiamo quindi ancora di aver utilizzato RAID e LVM, e come prima supponiamo che il logical group creato sul multidevice sia chiamato lg0 e che vi siano creati i seguenti device: lv0 (20 GB, futura root) lv1 (1 GB, futuro swap) lv2 (20 GB, futura partizione "containers" per le home) lv3 (80 GB, futura partizione dati, in fase d'installazione sarà la root / ) Stavolta ciò che è necessario fare è assegnare il punto di mount root / alla partizione lv3, formattandola con ext3, e lasciare smontate tutte le altre partizioni. Di nuovo, ignorate lo warning causato dall'assenza di una partizione di swap. 2.1. SETUP (Ubuntu Gutsy) Dalla versione Gutsy, Ubuntu ha adottato l'installer testuale di Debian Etch aggiornato all'ultima versione di dmcrypt. Questo significa che si puo' evitare molto sbattimento utilizzando direttamente l'installer testuale e l'opzione "utilizza come volume fisico per la cifratura" (ovviamente dopo aver configurato eventuali device RAID e LVM). Seguire le istruzioni per Debian quindi. Funziona bene. 3. CREARE LA ROOT CIFRATA (Ubuntu) A questo punto dovremo procurarci gli strumenti adatti: sudo apt-get install cryptsetup initramfs-tools NOTA: per sicurezza ora fate anche un sudo apt-get update upgrade Dovremo assicurarci che siano caricati in memoria i moduli necessari, per sicurezza fate: sudo modprobe dm_crypt sudo modprobe dm_mod sudo modprobe sha256 sudo modprobe aes Dovremo inoltre assicurarci che initramfs (che poi useremo) trovi questi moduli, che serviranno ad avviare il sistema con la root cifrata. Allo scopo creiamo la directory /etc/mkinitramfs e creiamoci dentro il file /etc/mkinitramfs/modules. Inserite all'interno del file le seguenti righe: dm_crypt dm_mod sha256 aes NOTA: in Gutsy il nome della dir e' stato cambiato in /etc/initramfs-tools Prepariamo la nostra futura home cifrata. Innanzitutto dovremo sovrascrivere la nostra partizione lv0 con dati casuali: sudo dd if=/dev/urandom of=/dev/mapper/lg0-lv0 Ci vorrà un po' di tempo, a seconda della dimensione di lv0. Aspettiamo. Nota: la sintassi del comando dd è: dd if= of= [bs= count=] Il device /dev/urandom è la fonte di dati pseudocasuali del sistema (sufficenti al nostro scopo). Il device /dev/random invece è la fonte di dati random del sistema. la differenza tra i due sostanzialmente è che /dev/random produce bit VERAMENTE random - e crittograficamente più forti quindi - però è estremamente lento. Estrarre quantità di dati dell'ordine dei bytes o massimo Kilobytes va bene, estrarre GB no. Impiegherebbe settimane. Però /dev/random è la scelta da preferire per generare chiavi crittografiche (che di solito non superano i 256 bit). Una volta fatto formattiamo lv0 con luksformat utilizzando cryptsetup e una cifratura robusta: sudo cryptsetp -h sha256 -c aes-cbc-essiv:sha256 -s 256 luksFormat /dev/mapper/lg0-lv0 Nota: non usate il comando "luksformat" come riportato in altre guide. Non è altro che un wrapper di cryptsetup per semplificare l'operazione di cui sopra, ma utilizza metodi di cifratura di default più deboli. Il precedente comando richiederà una passphrase prima di terminare (anche qui potrà volerci del tempo). A questo punto sblocchiamo la partizione mappandola in un device virtuale: sudo cryptsetup luksOpen /dev/mapper/lg0-lv0 crypt_root Inserite la stessa passphrase e la vostra prima partizione crittografata sarà sbloccata e pronta per l'uso, la potrete trovare in /etc/mapper/crypt_root. Quindi ora possiamo formattarla e montarla come se fosse un device qualsiasi: sudo mkfs.ext3 /dev/mapper/crypt_root sudo mkdir /tmp/temp sudo mount -t ext3 /dev/mapper/crypt_root /tmp/temp Ora dobbiamo fare in modo che al riavvio il kernel sappia come caricare la nuova root. Innanzitutto aprite il file /etc/crypttab (se non esiste createlo) ed aggiungete la seguente riga: crypt_root /dev/mapper/lg0-lv0 none luks,cipher=aes-cbc-essiv:sha256,size=256 Poi aprite fstab e modificate il device del punto di mount / da /dev/mapper/lg0-lv3 a /dev/mapper/crypt_root. E' il momento di copiare la root attuale (temporanea) nella nuova root cifrata: sudo cp -avx /* /tmp/temp Ci metterà un po'. Se avete degli errori di lettura ignorate le dir che vi danno problemi (tipicamente /proc e /sys, che contengono immagini virtuali di parti del kernel). Una volta finito smontiamo tutto in maniera pulita: sudo umount /tmp/temp sudo cryptsetup luksClose crypt_root A questo punto: sudo update-initramfs -u ALL Come ultima cosa dovrete modificare il /boot/grub/menu.lst in modo che faccia partire il sistema con la nuova root, basta aprirlo e ad ogni voce root=/dev/lg0-lv3 sostituire con root=/dev/mapper/crypt_root. Riavviate pregando di non aver commesso errori. Se va tutto bene potrete cancellare la vostra vecchia root in lv3 col comando dd, e potrete ripetere la procedura di cui sopra (se volete) per creare un'altra partizione cifrata da usare a piacere. 4. CREARE LO SWAP CIFRATO (Ubuntu e Debian) Come sopra, cominciamo col riempire la partizione di dati casuali: sudo dd if=/dev/urandom of=/dev/mapper/lg0-lv1 Disabilitiamo lo swap: sudo swapoff -a Ora invece di creare manualmente lo swap su lv1 faremo in modo che, ad ogni boot della macchina, cryptsetup si occupi di inizializzarvici un filesystem di swap cifrato con una chiave random. la chiave non viene salvata da nessuna parte su disco, risiede in memoria ed è usata fintanto che lo swap resta attivo. Quando la macchina viene spenta, quella chiave è persa per sempre. Questo significa che se un aggressore ha accesso agli hard disk a macchina spenta e analizza lo swap, trova dati che sono cifrati con una chiave che - a tutti gli effetti - non esiste più. Non c'è dunque modo di recuperare quei dati dopo lo spegnimento della macchina, e questo è proprio ciò che vogliamo. Tutto ciò che dobbiamo fare è aggiungere la seguente riga a /etc/crypttab: crypt_swap /dev/mapper/lg0-lv1 /dev/random swap e creare un'entry per lo swap in /etc/fstab: /dev/mapper/crypt_swap none swap sw 0 0 Al reboot dovreste avere lo swap funzionante, per accertarsene basta fare: sudo cat /proc/swaps 5. PREPARARE LE HOME CIFRATE (Ubuntu e Debian) Questa è la parte interessante. La teoria in breve: useremo losetup per collegare un device di loop ad un file che risiede su hard disk, e vi creeremo all'interno un filesystem cifrato con dmcrypt. Il punto è che quando si usa un file come contenitore per un filesystem cifrato, è importante che il file contenitore non risieda in un filesystem di tipo journaling, altrimenti è possibile che vengano a risiedere su hard disk più copie degli stessi segmenti di contenitore, permettendo attacchi crittanalitici particolari. Per questo sin dall'inizio ho detto di formattare con ext2 il nostro device lg0-lv2 preposto allo scopo. Prima di tutto prepariamo la nostra partizione cifrata: sudo dd if=/dev/urandom of=/dev/mapper/lg0-lv2 sudo cryptsetp -h sha256 -c aes-cbc-essiv:sha256 -s 256 luksFormat /dev/mapper/lg0-lv2 sudo cryptsetup luksOpen /dev/mapper/lg0-lv2 crypt_containers sudo mkfs.ext2 /dev/mapper/crypt_containers sudo mkdir /mnt/containers sudo chown root:root /mnt/containers sudo chmod 755 /mnt/containers sudo mount -t ext2 /dev/mapper/crypt_containers /mnt/containers Facciamo in modo che la partizione contenitore venga mappata al boot: aggiungiamo la seguente riga al file /etc/crypttab: crypt_containers /dev/lg0-lv2 none luks e la seguente riga a /etc/fstab: /dev/mapper/crypt_containers /mnt/containers ext2 defaults 0 0 Creiamo un file contenitore da 2 GB per la nostra home (nome utente: myuser): sudo dd if=/dev/urandom of=/mnt/containers/myuser.crypthome bs=1M count=2048 sudo chown myuser:myuser /mnt/containers/myuser.crypthome sudo chmod 755 /mnt/containers/myuser.crypthome Cerchiamo un loop device libero: sudo losetup -f l'output sarà qualcosa del tipo: /dev/loop0 Usiamo momentaneamente questo loop device associandolo al file creato: sudo losetup /dev/loop0 /mnt/containers/myuser.crypthome Formattiamolo con cryptsetup, assicurandoci di scegliere come passphrase la nostra stessa passphase di login, se abbiamo una password di login corta o insicura assicuriamoci di cambiarla PRIMA: sudo cryptsetp -h sha256 -c aes-cbc-essiv:sha256 -s 256 luksFormat /dev/loop0 Apriamo il device virtuale cifrato così ottenuto e mappiamolo: sudo cryptsetup luksOpen /dev/loop0 crypt_myuser Creiamo il filesystem per la nostra futura home e copiamoci dentro la nostra home attuale: sudo mkfs.ext3 /dev/mapper/crypt_myuser sudo mkdir /tmp/temp sudo mount -t ext3 /dev/mapper/crypt_myuser /tmp/temp sudo chown myuser:myuser /tmp/temp sudo chmod 755 /tmp/temp sudo cp -avx /home/myuser/* /tmp/temp sudo cp -avx /home/myuser/.* /tmp/temp Chiudiamo il file contenitore: sudo umount /temp/tmp sudo cryptsetup luksClose crypt_myuser sudo losetup -d /dev/loop0 Chiudiamo la partizione container: sudo umount /mnt/containers sudo cryptsetup luksClose crypt_containers Riavviamo e assicuriamoci che in /mnt/containers appaia correttamente il nostro file contenitore. 6. CONFIGURARE PAM-MOUNT Ora vediamo di fare in modo che la nostra home venga montata automagicamente al login e venga smontata al logout. Innanzitutto installiamo pam-mount: sudo apt-get install libpam-mount Se avete roba "scomoda" nella vostra vecchia home che non volete rimanga in lg0 è il momento di cancellarla prima di proseguire. Ora editiamo il file /etc/security/pam_mount.conf per mappare la nostra home, aggiungendo la seguente riga: volume myuser crypt - /mnt/containers/myuser.crypthome /home/myuser loop,cipher=aes - - Infine configuriamo pam-mount, aggiungendo la seguente riga al file /etc/pam.d/common-auth: auth optional pam_mount.so use_first_pass la seguente riga al file /etc/pam.d/common-session: session optional pam_mount.so e la seguente riga ai file /etc/pam.d/login e /etc/pam.d/gdm (eventualmente anche a /etc/pam.d/ssh se volete che la vostra home cifrata sia montata anche al login via ssh): @include common-pammount 7. ULTIMI RITOCCHI Abbiamo ottenuto un buon risultato, solo che adesso al boot della macchina ci verrà richiesta una passphrase per ognuna delle partizioni cifrate tranne la swap (quindi nell'esempio di cui sopra due passphrase: una per la root e una per la partizione container - peraltro passphrase uguali se avete seguito le istruzioni). Ciò è molto scomodo, basterebbe una sola passphrase per sbloccare il sistema (da inserire una sola volta al boot) e poi l'usuale passphrase di login di ogni utente. Fortunatamente è molto facile ovviare a ciò usando i keyfiles. Innanzitutto creiamo una directory protetta, su cui salveremo i keyfiles: sudo mkdir /root/keys sudo chown root:root /root/keys sudo chmod 700 /root/keys ora creiamo un file random da usare come chiave, possibilmente un file diverso per ogni partizione cifrata a parte lo swap e la root: sudo dd if=/dev/random of=/root/keys/key_containers bs=1 count=32 A questo punto utilizziamo le opzioni offerte da LUKS per aggiungere un secondo "metodo di decifrazione" alle partizioni che vogliamo che siano montate assieme alla root al boot. Ovvero aggiungiamo uno slot nell'header LUKS di lv2 utilizzando il keyfile come chiave: sudo cryptsetup luksAddKey /dev/mapper/lg0-lv2 /root/keys/key_containers Infine editiamo /etc/crypttab sostituendo la riga: crypt_containers /dev/lg0-lv2 none luks con: crypt_containers /dev/lg0-lv2 /root/keys/key_containers luks (assicuriamoci che, nell'ordine, la riga che mappa la root sia SOPRA quella che mappa containers, forse non è necessario ma non si sa mai). Notare i seguenti fatti: - le chiavi per sbloccare le partizioni risiedono in lv0, quindi un attacker non può avervi accesso se prima non sblocca lv0 - linux non garantisce accesso ai keyfile a nessun utente tranne root - ogni partizione a parte la root si può sbloccare SIA con il suo keyfile, SIA con l'usuale passphrase impostata (la stessa che sblocca anche la root se avete seguito le istruzioni alla lettera). Questo permette di disporre di un metodo per recuperare i dati nel caso malaugurato in cui lv0 si danneggi, e non compromette la sicurezza del sistema dato che in ogni caso la passphrase per sbloccare lv0 è necessaria. 8. TODO Alcune questioni lasciate in sospeso: - pam-mount si appoggia ai loop device, che di default sono 8. Questo può rappresentare un problema nel caso in cui si voglia che più di 8 utenti stiano collegati contemporaneamente al sistema. Aggiungere altri loop device a piacere? Pam-mount li riconoscerà? Idee? - su Ubuntu a me succede la seguente cosa: al boot appaiono solo un paio di scritte e poi lo schermo diventa nero - e così resta. In realtà in background c'è il prompt per la passphrase LUKS, solo che non appare a monitor, quindi basta aspettare qualche secondo, scrivere la passphrase e premere Invio. Una volta fatto ciò parte X normalmente. Non grave ma "ugly". Qualcuno sa come evitare ciò? UPDATE: problema risolto in Gutsy utilizzando la cifratura offerta dall'installer testuale: appare addirittura un prompt grafico. - sarebbe interessante creare uno script per aggiungere/rimuovere nuovi utenti che si prenda carico automaticamente della procedura di creazione di file contenitore per la home e relativa configurazione. Se qualcuno sa farlo sarò ben lieto di integrare qui il suo lavoro. - in genere utilizzare l'LVM permette, all'occorrenza, di spostare o ridimensionare device logici senza distruggerne il contenuto. Nel caso di una partizione cifrata con LUKS non ho la benchè minima idea di come si potrebbe fare e soprattutto di quali nefaste conseguenze potrebbero verificasi. Volontari/cavie/kamikaze? - il punto più importante: un sistema di autenticazione basato su "interrogazione crittografica" con tanto di entrate "dummy" come quello che ho precedentemente descritto. Sarebbe molto importante ma... esiste qualcosa del genere? Accetto idee/consigli su qualsiasi di questi punti, possibilmente se mi scrivete una mail cifratela con GnuPG o simili prima. 9. REFERENCES Purtroppo come ho detto questo documento è stato ottenuto "distillando" diversi appunti e documenti sparsi qua e là, non ho proprio la possibilità al momento di citare dettagliatamente tutte le fonti. Se leggendo questo howto trovate parti che sono state evidentemente riprese da qualche documento che conoscete comunicatemelo così che possa aggiornare questa sezione.