• Immutable Page
  • Info
  • Attachments

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
      fi
    • Salvare 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.

Ulteriori risorse


CategoryDaCancellare