STOP! Perché questa guida si trova sotto la pagina Cestino?. Una guida può essere cestinata dal Gruppo Documentazione se contiene istruzioni compatibili solo con rilasci non più supportati di Ubuntu oppure perché non si ha certezza che lo siano per i rilasci attualmente supportati. Queste pagine richiedono un aggiornamento e una verifica delle istruzioni contenute. Se vuoi riesumare una di queste guide contatta il Gruppo Documentazione nella board sul forum. |
Introduzione
Questa guida si propone come obiettivo l'installazione del sistema operativo Ubuntu 6.10 «Edgy Eft» in partizioni criptate (o cifrate). È infatti noto che questo è uno dei sistemi che dà maggiore sicurezza in termini di protezione dei propri dati. Gli altri metodi utilizzati normalmente, quasi sempre in combinazione tra loro e dei quali si consiglia comunque l'utilizzo, posso essere aggirati abbastanza facilmente, ad esempio:
Password dell'utente o dell'amministratore senza il login automatico all'avvio: basta all'avvio entrare in Grub e dalla shell di grub inserire alcuni comandi per avviare una modalità di ripristino con privilegi di Amministratore.
- Password di grub: è aggirabile avviando il computer da un CD Live o da un dispositivo esterno se il BIOS lo permette.
- Password del BIOS: spesso basta rimuovere la batteria del BIOS, scollegare la corrente per un certo lasso di tempo e/o mettere per un momento in cortocircuito due punti particolari sulla scheda madre.
- Password sul disco rigido: è una buona soluzione a quanto pare, anche se comunque aggirabile.
Tutti questi accorgimenti eccetto l'ultimo sono molto facilmente aggirabili estraendo il disco rigido dal computer e inserendolo come disco rigido secondario in un altro computer.
L'unico metodo per poter mettere al sicuro i dati in certe condizioni è usare la crittografia. Per questo motivo è consigliato l'utilizzo di questo sistema soprattutto a chi ha un computer portatile. Per un interessante trattazione schematica dei vari possibili casi di possibile lettura di dati da parte di altri, si consiglia questa pagina.
Questa guida descrive come installare l'intero sistema operativo su partizioni criptate con cryptsetup-LUKS, ad eccezione della cartella /boot che deve rimanere leggibile per poter avviare il sistema. Si possono utilizzare anche altri sistemi per raggiungere lo stesso scopo. Se non si è interessati a criptare l'intero sistema, ma soltanto la partizione /home ci sono metodi molto più semplici, tramite l'utilizzo di dm-crypt o truecrypt, solo per fare due esempi.
Questo metodo dovrebbe leggermente rallentare il sistema operativo in quanto il lavoro di cifrare/decifrare i dati viene fatto on the fly man mano che vengono richiesti, e il tutto viene salvato in RAM, ma solitamente il rallentamento non è neanche percepibile.
Questa guida è stata scritta per Ubuntu 6.10 «Edgy Eft», dall'uscita di Ubuntu 7.10 «Gutsy Gibbon» è probabilmente inutile dato che scaricando il CD alternate è possibile scegliere di installare automaticamente Ubuntu in partizioni criptate. Molti dei concetti esposti rimangono validi ma alcuni comandi potrebbero non esserlo più. |
Avvertenze
Questa guida è stata testata con successo sulla versione Server di Ubuntu. In linea teorica dovrebbe essere valida per qualsiasi altra versione. |
Le operazioni descritte di seguito sono potenzialmente pericolose dato che per installare il sistema si dovrà formattare delle partizioni cancellando tutti i dati in esse contenute. Se per una svista o un errore si sbaglia nell'inserimento del numero della partizione da formattare, tutti i dati contenuti in essa saranno persi. Fare un backup di tutti i dati. È consigliabile avere un minimo di conoscenze su GNU/Linux, sul terminale e sul partizionamento. In questo senso, l'autore della guida declina ogni responsabilità. È consigliata inoltre la lettura di tutta la guida prima di effettuare le operazioni descritte, per avere idea delle operazioni che dovranno essere eseguite.
Preparativi
È sufficiente procurarsi un CD con la versione Server relativa alla propria architettura di Ubuntu 6.10 «Edgy Eft» e un computer sul quale fare questa installazione.
Usare il CD server indipendentemente dal tipo di installazione finale che si vuole ottenere. Alla fine della procedura si potrà avere Ubuntu, Kubuntu, Xubuntu, o qualsiasi altra configurazione, a seconda delle proprie preferenze.
Come procedere
Queste spiegazioni preliminari consentono, ad utenti esperti, di apportare modifiche a questa procedura. Tutta la guida userò come riferimento per le partizioni delle tabelle presentate di seguito, quindi occorrerà adattare i vari comandi di conseguenza.
Stato iniziale
Viene considerato come stato iniziale delle partizioni un portatile nuovo con Windows preinstallato ed un disco rigido da 100 GiB; la tabella delle partizioni è la seguente:
Tabella 1 - Stato iniziale
Partizione
Dimensione
Filesystem
Contenuto
/dev/sda1
2 GB
FAT32
Partizione di recovery
/dev/sda2
58 GB
NTFS
Windows XP
/dev/sda3
40 GB
NTFS
Dati (vuota)
Stato intermedio
Dato che i CD di installazione di Ubuntu non sono in grado di criptare le partizioni in fase di installazione, si dovrà installare il sistema momentaneamente su una partizione in chiaro e poi da questa installazione creare ed installare il sistema operativo sulle partizioni criptate. Ecco quindi durante l'installazione dal CD come verrà partizionato il disco rigido, cancellando la partizione di dati, riducendo la partizione di Windows e suddividendo il rimanente spazio:
Tabella 2 - Stato intermedio
Partizione
Dimensione
Filesystem
Punto di mount
Contenuto
Azione durante linstallazione
/dev/sda1
2 GB
FAT32
Partizione di recovery
Non modificata
/dev/sda2
22 GB
NTFS
Windows XP
Ridotta dai 58 GB originali
/dev/sda3
64 MB
EXT3
/boot
Partizione di boot non criptata
Nuova partizione primaria, flag di boot attivato
/dev/sda5
2 GB
SWAP
swap
Diventerà lo swap criptato
Nuova partizione logica
/dev/sda7
23 GB
EXT3
non montata al momento
Diventerà la partizione di root
Nuova partizione logica
/dev/sda6
10 GB
EXT3
non montata al momento
Diventerà la partizione Home
Nuova partizione logica
/dev/sda8
41 GB
EXT3
/
Dove installiamo il sistema
Nuova partizione logica
Ovviamente questa è la divisione che io ho voluto fare, modificatela liberamente secondo le vostre esigenze.
Stato finale
Dopo aver installato il sistema, creato le partizioni criptate e copiato tutto il sistema nelle relative partizioni, si potrà riformattare lo spazio libero come si preferisce, facendone una partizione di dati criptata, senza protezione o di scambio con Windows, a propria scelta.
Tabella 3 - Stato finale
Partizione
Dimensione
Filesystem
Punto di mount
Contenuto
/dev/sda1
2 GB
FAT32
Partizione di recovery
/dev/sda2
22 GB
NTFS
/media/win
Windows XP
/dev/sda3
64 MB
EXT3
/boot
Partizione di boot, non criptata
/dev/sda5
2 GB
SWAP
swap
Swap criptato
/dev/sda7
23 GB
EXT3
/
Partizione di root criptata
/dev/sda6
10 GB
EXT3
/home
Partizione Home criptata
/dev/sda8
41 GB
a scelta
/dove/volete
Quello che volete
Installazione del sistema operativo e creazione delle partizioni criptate
Installazione del sistema operativo
Avviare il proprio computer inserendo il CD di installazione di Ubuntu 6.10 «Edgy Eft» versione Server per la propria architettura. Prima di tutto consentire il controllo del CD per sicurezza; se va a buon fine, al riavvio procedere con l'installazione. Rispondere alle varie domande in fase di partizionamento, creare le partizioni come indicate nella Tabella 2 - Stato intermedio modificando le dimensioni secondo le proprie esigenze e aggiungendo altre partizioni se lo si ritiene necessario. Dopo il partizionamento, proseguire con l'installazione e riavviare per permettere il caricamento del nuovo sistema operativo che, essendo Server, non avrà interfaccia grafica e quindi bisognerà agire solo da terminale.
Una volta installato il sistema è necessario accertarsi di avere una connessione ad internet funzionante.
Installazione dei componenti necessari a creare le partizioni criptate
Abilitare i componenti dei repository Universe e Multiverse, quindi aggiornare il sistema con il comando da terminale:
sudo apt-get update && sudo apt-get upgrade
Installare i seguenti pacchetti necessari:
cryptsetup
libpam-mount
initramfs-tools
Aggiungere alcuni moduli da caricare nel kernel con i seguenti comandi da terminale:
sudo modprobe dm_crypt sudo modprobe sha256
- L'ultimo modulo da caricare dipende dall'architettura della propria macchina; sono consigliati i seguenti passaggi:
Aprire con un editor di testo il file /etc/bash.bashrc;
Scorrerlo fino a trovare la riga:
# enable bash completion in interactive shells
Decommentare (cancellando il cancelletto iniziale #, se presente) le tre righe successive in modo che appaiano così:
if [ -f /etc/bash_completion ]; then . /etc/bash_completion fiSalvare il file ed uscite dall'editor; fare il logout dal sistema digitando nel terminale:
exit
Effettuare nuovamente il login nel sistema con il proprio nome utente e password; è possibile farlo da terminale con il comando da terminale:
su
Scrivere nel terminale, senza dare invio:
sudo modprobe aes
Premere due volte rapidamente il tasto «Tab» e, nella lista dei possibili moduli da caricare che compaiono, scegliere quello relativo alla propria architettura, quindi premere «Invio».
Creazione delle partizioni criptate
Riempire con dati casuali le partizioni
Le nuove partizioni vanno riempite con dati casuali (random) in modo da rendere molto più difficile una possibile ricostruzione del loro contenuto dopo, in particolare se il disco rigido è nuovo. Per fare questa operazione ci sono principalmente tre metodi che impiegano un tempo molto differente, nell'ordine dal più lento (che dovrebbe essere più efficace in quanto a randomizzazione) al più veloce, si hanno: /dev/random, /dev/urandom e shred. Per esempio, su un disco rigido a 5600 giri al minuto si sono ottenuti questi tempi:
Tabella 4 - Velocità scrittura random
Metodo
Dimensione
Tempo
/dev/random
1 KB*
42m
/dev/urandom
49 MB
11.8s
shred 1 passaggio
49 MB
2.2s
shred 5 passaggi
49 MB
13.5s
/dev/urandom
2 GB
12m4s
shred 1 passaggio
2 GB
1m8s
* Dato non sicuro.
Anche se alcuni sostengono che shred sia meglio di /dev/urandom, probabilmente dipende dal numero di passaggi usati in shred (che ad ogni passaggio scrive blocchi di dati differenti). In questa guida è stato usato shred con un solo passaggio, ma è possibile usare il sistema che si preferisce.
Nei seguenti passaggi si criveranno dati random sulle tre partizioni al momento non montate che ospiteranno l'albero di root, la Home e lo swap, che in questa guida sono quelle della Tabella 2 - Stato intermedio.
I relativi comandi sono presentati di seguito; sarà sufficiente scegliere uno solo di questi gruppi di comandi a seconda del metodo che si vuole utilizzare:
Se si vuole usare /dev/random:
sudo dd if=/dev/random of=/dev/sda7 sudo dd if=/dev/random of=/dev/sda6 sudo swapoff -a sudo dd if=/dev/random of=/dev/sda5
Se si vuole usare /dev/urandom:
sudo dd if=/dev/urandom of=/dev/sda7 sudo dd if=/dev/urandom of=/dev/sda6 sudo swapoff -a sudo dd if=/dev/urandom of=/dev/sda5
Se si vuole usare shred (-n 1 è il numero di passaggi, in questo caso 1, deve essere sostituito con il numero desiderato; se si toglie l'opzione -n 1 il programma farà 25 passaggi.)
sudo shred -n 1 -v /dev/sda7 sudo shred -n 1 -v /dev/sda6 sudo swapoff -a sudo shred -n 1 -v /dev/sda5
Formattare le partizioni con luksformat
Per creare i filesystem criptati con luksformat, una volta dato il comando, seguire le istruzioni e scegliere delle password robuste, ovvero alfanumeriche con caratteri speciali, senza parole di vocabolario e lunghe:
luksformat -t ext3 /dev/sda7 luksformat -t ext3 /dev/sda6
Controllate la sezione Riavvio nel nuovo sistema criptato per vedere gli accorgimenti da prendere sulla password. |
Aggiungere le partizioni nei files di configurazione
Aggiungere le nuove partizioni criptate nel file /etc/crypttab, aprendolo con un editor di testo ed inserendo le seguenti righe:
cryptroot /dev/sda7 none luks,cipher=aes-cbc-essiv:sha256 crypthome /dev/sda6 none luks,cipher=aes-cbc-essiv:sha256 cryptswap /dev/sda5 /dev/random swap
Ora modificare il file /etc/fstab per poter inserire le nuove partizioni, commentando (aggiungendo un cancelletto # ad inizio riga) le righe relative alle partizioni /dev/sda7, /dev/sda6 e /dev/sda5. Quindi, aggiungere le relative righe per la partizione di root, la Home e lo swap in modo che siano come presentate di seguito:
/dev/mapper/cryptroot / ext3 defaults,errors=remount-ro 0 1 /dev/mapper/crypthome /home ext3 defaults,errors=remount-ro 0 2 /dev/mapper/cryptswap none swap sw 0 0
Copia del sistema operativo nelle nuove partizioni criptate
Avviare e montare le partizioni criptate
Ora è possibile avviare le partizioni criptate, con i seguenti comandi da terminale:
sudo /etc/init.d/cryptdisks start
Verrà chiesta prima la password per la partizione di root e poi quella della partizione Home.
Rimontare lo swap:
sudo swapon -a
Creare delle cartelle temporanee e montare le partizioni criptate momentaneamente, inserendo da terminale i comandi:
mkdir /tmp/cryptroot mkdir /tmp/crypthome sudo mount /dev/mapper/cryptroot /tmp/cryptroot sudo mount /dev/mapper/crypthome /tmp/crypthome
Copiare l'attuale sistema nelle partizioni criptate
Copiare dentro la partizione di root tutto il sistema e poi spostare la cartella Home nella sua partizione, con i seguenti comandi da terminale:
sudo cp -ax / /tmp/cryptroot sudo mv /tmp/cryptroot/home/* /tmpcrypthome
Rigenerare initramfs con il comando:
sudo update-initramfs -u ALL
Fare una copia di backup e poi modificare il file di boot di Grub per adattarlo alla nuova partizione di root, eseguendo da terminale i comandi:
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.bak sudo nano /boot/grub/menu.lst
Modificare il primo blocco di avvio del kernel modificando solamente la riga kernel dove si inserirà la partizione criptata di root da cui avviare, nel caso di questa guida /dev/mapper/sda7. Non modificate la riga root, poichè punta alla partizione di boot ed è già corretta. Coerentemente a quanto illustrato nella Tabella 3 - Stato finale, il file del Grub diventa così:
title UbuntuCrypt, kernel 2.6.17-10-generic root (hd0,2) kernel /vmlinuz-2.6.17-10-generic root=/dev/mapper/sda7 ro quiet initrd /initrd.img-2.6.17-10-generic quiet savedefault boot
Se per caso qualcosa non dovesse funzionare al riavvio, la voce recovery mode è sempre a disposizione, e punta ancora alla vecchia installazione su partizione non criptata, dalla quale è possibile sistemare eventuali problemi. |
Come indicato in questo Bug 62751 su Launchpad nel Commento n. 20, modificare i file /etc/event.d/rcS ed /etc/event.d/rc2, aggiungendo tra le prime righe, la seguente riga:
console owner
In questo modo durante la fase di boot il computer si fermerà per richiedere la password delle partizioni criptate.
Riavvio nel nuovo sistema criptato
Per riavviare ed accedere al nuovo sistema installato su partizioni criptate, digitare nel terminale:
sudo reboot now
Al riavvio nel menù di Grub, selezionare UbuntuCrypt (se si è modificato il nome come nell'esempio in questa guida). Dopo alcuni messaggi di boot la procedura dovrebbe fermarsi con la richiesta (da parte di LUKS) della password della partizione di root. Digitatarla ma con attenzione, in quanto dalla versione Ubuntu 7.10 «Feisty Fawn», la tastiera avrà il layout scelto, ma in versioni di Ubuntu precedenti, la tastiera in questo momento avrà il layout inglese, quindi se sono stati usati caratteri speciali per la password, controllare come digitarla nel layout inglese. Dopo altri messaggi di boot, la procedura si fermerà di con la richiesta di inserire un'altra password da parte di LUKS, quella della partizione Home, e questa volta la tastiera avrà il layout del sistema anche per le versioni di Ubuntu precedenti alla 6.10.
Se non ci sono problemi, dovrebbe avviarsi il sistema criptato. Controllare infine che lo swap funzioni correttamente con il comando da terminale:
cat /proc/swaps
quindi concludere l'installazione del sistema come si preferisce, installando l'ambiente Desktop che si preferisce, oppure lasciare l'installazione Server senza un'interfaccia grafica. Se il sistema funziona correttamente, è possibile cancellare il sistema installato sulla partizione in chiaro (/dev/sda8 in questa guida) e formattare il restante spazio (vedi Tabella 3 - Stato finale). Ripristinare la voce di recupero nel file di Grub, quindi modificarlo con un editor di testo e sostituire nella riga kernel del secondo blocco di avvio (in questa guida) /dev/sda8 con /dev/mapper/sda7.
Problemi Aperti
- È probabile che all'avvio del sistema, non compaiano le icone sulla Scrivania, in quanto le partizioni criptate non vengono riconosciute e quindi bisogna crearsi a mano i collegamenti.
- Se si crea o copia un file e/o una cartella da terminale, non viene visualizzata sulla Scrivania, nonostante compaia nel terminale.
