Sophie

Sophie

distrib > Mandriva > 9.2 > i586 > by-pkgid > 70cedc76d223e7bfce9e0ff622b45231 > files > 82

howto-sgml-it-9.2-1mdk.noarch.rpm

<!doctype linuxdoc system>

<!-- Loopback Encrypted Filesystem HOWTO di Ryan T. Rhea -->

<article opts="italian">

<!-- Title information -->

<title>Loopback Encrypted Filesystem HOWTO
<author>Copyright di Ryan T. Rhea,
<tt/rhear@cs.winthrop.edu/
<date>v1.1, 29 novembre 1999

<abstract>
Questo documento spiega come impostare e quindi usare un file system
che, quando montato da un utente, cifra in maniera dinamica e trasparente
i suoi contenuti. Il file system viene conservato in un file regolare,
che pu&ograve; essere nascosto o nominato in modo non-evocativo cos&igrave; 
che probabilmente passerebbe inosservato. Questo permette di conservare
dati ad un alto livello di sicurezza.
Traduzione a cura di <tt><htmlurl url="mailto:isacher@nettaxi.com" name="Isabella Ruocco"></tt> e di <tt><htmlurl url="mailto:acciu@tin.it" name="Diego Buffa">.</tt>
Ultima revisione 3 aprile 2000. 
</abstract>

<!-- Table of contents -->
<toc>

<!-- Begin the document -->

<sect>Prima di iniziare

<p>
Questo procedimento richiede il codice sorgente del kernel, 
saper come compilare questo codice e un sacco di pazienza. 
Raccomando caldamente di tenere pronto un disco di avvio.
Inoltre, siate sicuri di avere una copia prima di memorizzare 
permanentemente i vostri dati importanti sul file system cifrato - 
potrebbe danneggiarsi come qualsiasi altro file system.

Dovrete applicare le patch come minimo fino alla versione 2.2.9 del
kernel di linux prima di continuare. Ulteriori istruzioni su
come applicare le patch si trovano nella sezione <ref id="Dettagli"
name="Dettagli"> pi&ugrave; avanti in questo documento.

Il codice sorgente del kernel si pu&ograve; trovare in:

<tscreen>
<url url="ftp://ftp.kerneli.org/">
</tscreen>

C'&egrave; un HOWTO sul procedimento della ricompilazione del kernel in:

<tscreen>
<url url="http://metalab.unc.edu/LDP/HOWTO/">
</tscreen>

This document may be reproduced and distributed in whole or in
part, without fee, subject to the following conditions:

<itemize>
<item>The copyright notice and this permission notice must be
preserved complete on all complete or partial copies.

<item>Any translation or derived work must be approved by the
author
in writing before distribution.

<item>If you distribute this work in part, instructions for
obtaining
he complete version of this manual must be included, and a means
for obtaining a complete version provided.

<item>All source code in this document is placed under the GNU
General Public License, available via anonymous FTP from:
</itemize>

<tscreen>
<url url="ftp://prep.ai.mit.edu/pub/gnu/COPYING/">
</tscreen>

(Questo documento pu&ograve; essere riprodotto e distribuito per intero o  
in parte, senza alcuna tassa, a patto delle seguenti condizioni:

<itemize>
<item>La nota sul copyright e questa nota sul permesso devono essere
mantenute interamente su tutte le copie parziali o complete.

<item>Qualunque traduzione o lavoro derivato devono essere approvati 
dall'autore per iscritto prima della distribuzione.

<item>Se distribuite in parte questo lavoro, devono essere incluse
istruzioni per ottenere la versione completa di questo manuale, 
e deve essere fornito un modo per ottenere una versione completa.

<item>Tutto il codice sorgente in questo documento &egrave; sotto 
la licenza GNU General Public License, disponibile attraverso FTP 
anonimo da:
</itemize>

<tscreen>
<url url="ftp://prep.ai.mit.edu/pub/gnu/COPYING/">)
</tscreen>

<sect>Introduzione

<p>
Il procedimento usa il dispositivo '/dev/loop*' (dove * pu&ograve; 
essere 0-7 sulla maggior parte delle installazioni) per montare 
un file system di loopback.
Lo stesso procedimento pu&ograve; essere usato senza cifratura 
per tenere un file system linux su una partizione non-linux. 
C'&egrave; un HOWTO su questo nel sito LDP citato precedentemente.

Si possono usare diversi tipi di cifratura, compresi XOR, DES,
twofish, blowfish, cast128, serpent, MARS, RC6, DFC e IDEA.
Il programma 'losetup' (loopback setup ovvero impostazione del loopback) 
&egrave; ci&ograve; che associa il vostro file cifrato ad un
file system e al suo tipo di cifratura. Secondo Alexander
Kjeldaas, che mantiene kerneli.org e le patch internazionali 
sulla cifratura, DES e losetup sono attualmente incompatibili.
Questo &egrave; dovuto alle differenze nel modo in cui i due
gestiscono i bit di parit&agrave;.
Non ci sono progetti per supportare il DES poich&eacute; &egrave; 
molto pi&ugrave; insicuro degli altri cifrari.  

Twofish, blowfish, cast128 e serpent hanno tutti una licenza 
libera per qualunque uso.
Gli altri potrebbero o meno avere restrizioni di licenza.
Molti di essi sono candidati per lo standard AES. 
I finalisti forniranno in tutto il mondo l'uso senza royalty 
dei loro cifrari.

Questo documento usa l'algoritmo serpent perch&eacute; &egrave;  
forte e anche notevolmente veloce ed &egrave; liberamente
distribuibile sotto la GPL.
In base alla sua documentazione, serpent usa un cifrario a blocchi 
di 128 bit progettato da Ross Anderson, Eli Biham e Lars Knudsen. 
Esso fornisce agli utenti il pi&ugrave; alto livello pratico
di assicurazione che non verr&agrave; trovato nessun attacco 
a scorciatoia. La documentazione su serpent, cos&igrave; come 
il codice sorgente, si possono trovare in:

<tscreen>
<url url="http://www.cl.cam.ac.uk/~rja14/serpent.html">
</tscreen>
Inoltre, questo documento presuppone che i cifrari siano 
compilati direttamente nel kernel. Potreste installarli 
come moduli, ma la tecnica non viene discussa in 
questo documento. Dovrete editare il file '/etc/conf.module';
il procedimento &egrave; discusso in dettaglio nell'HOWTO sulla
compilazione del kernel citato in precedenza.

<sect>Sommario

<p>
Ci sono molti passi coinvolti nel procedimento. Fornir&ograve; 
<ref id="Dettagli" name="Dettagli"> per questi passi nel prossimo paragrafo. 
Ho pensato che sarebbe stato carino fornire prima un sommario 
di riferimento (se voi avete esperienza con unix/linux
probabilmente non avete bisogno comunque dei dettagli). 
Sono riassunti come segue:

<enum>
<item>Scaricate la pi&ugrave; recente patch internazionale
sulla cifratura (io ho usato 'patch-int-2.2.10.4' quando questo 
documento &egrave; stato scritto) da: 

<p><tscreen>
<url url="http://ftp.kerneli.org/pub/kerneli/">
</tscreen>

<p><item>Applicate la patch al kernel

<p><item>Eseguite 'config' (o 'menuconfig' o 'xconfig') 
per configurare il vostro 'MakeFile' per il nuovo kernel. 
Le opzioni per abilitare la cifratura sono sparpagliate.
Prima di tutto, prima che vediate qualche altra opzione, 
dovete abilitare 'Prompt for development and/or incomplete 
code/drivers' sotto 'Code Maturity level options'.  
Sotto 'Crypto options' abilitate 'crypto ciphers' e 'serpent'. 
Ancora una volta, questo documento presume che stiate usando 
serpent, ma provate quello che volete. Ricordate che DES 
&egrave; notoriamente incompatibile con 2.2.10.4 - 
potrebbe non essere mai supportato del tutto.  Ci sono molte 
opzioni importanti da selezionare sotto 'Block Devices'.  
Queste includono 'Loopback device support', 'Use relative 
block numbers as basis for transfer functions (RECOMMENDED)', 
e 'General encryption support'. NON selezionate la 
cifratura 'cast 128' o 'twofish' qui. Notate anche che non avete bisogno
di nessuna delle opzioni sulla cifratura sotto le varie categorie
di rete. Non andr&ograve; oltre nella configurazione del kernel,
&egrave; fuori dagli intenti di questo documento e si pu&ograve;
trovare sul sito LDP.

<p><item>Compilate il nuovo kernel.

<p><item>Editate '/etc/lilo.conf' per aggiungere la nuova
immagine del kernel. Eseguite 'lilo -v' per aggiungere il 
kernel al boot loader.

<p><item>Scaricate il sorgente per il pi&ugrave; recente
pacchetto 'util-linux' (io ho usato 'util-linux-2.9v') da:

<p><tscreen>
<url url="ftp://ftp.kernel.org/pub/linux/utils/util-linux/">
</tscreen>

<p><item>Estraete il sorgente 'util-linux'.

<p><item>Applicate la patch corrispondente trovata nella
vostra directory '/usr/src/linux/Documentation/crypto/'.

<p><item>Leggete ATTENTAMENTE il file 'INSTALL'! Questo pacchetto
contiene i sorgenti per molti file dipendenti dal sistema 
(strumenti importanti come 'login', 'passwd', ed 'init'). 
Se non editate attentamente il file MCONFIG prima di
compilare questi sorgenti tenete pronto un dischetto di avvio
e/o un fucile perch&egrave; il vostro sistema sar&agrave; un
po' confuso. Essenzialmente volete impostare quasi tutti 
i campi 'HAVE_*' uguali a 'yes' cos&igrave; che gli strumenti
importanti di autenticazione non vengano compilati e 
sovrascritti. Gli strumenti che volete ricompilare
sono 'mount' e 'losetup' in modo da adattarli ai nuovi schemi di
cifratura. Suggerisco di fare riferimento al paragrafo
<ref id="Dettagli" name="Dettali"> nel seguito per questo passo.

<p><item>Compilate ed installate il sorgente 'util-linux'

<p><item>Fate riavviare la macchina con il nuovo kernel.

<p><item>Editate '/etc/fstab', aggiungendo una voce per 
il vostro mount point come segue:

<p><tscreen><code>
/dev/loop0  /mnt/crypt  ext2  user,noauto,rw,loop 0 0
</code></tscreen>

<p><item>Create la directory che conterr&agrave; il vostro
file system, come in '/mnt/crypt' sopra.

<p><item>Come utente, create il vostro file cifrato come segue:

<p><tscreen><verb>
dd if=/dev/urandom of=/etc/cryptfile bs=1M count=10
</verb></tscreen>

<p><item>Eseguite losetup come segue:

<p><tscreen><verb>
losetup -e serpent /dev/loop0 /etc/cryptfile
</verb></tscreen>

Avete una sola possibilit&agrave; per digitare la password, 
state attenti. Se volete fare una doppia verifica sulla 
vostra password, potete usare il comando:

<p><tscreen><verb>
losetup -d /dev/loop0
</verb></tscreen>

Questo disattiver&agrave; il vostro dispositivo di loop.  
Poi eseguirete nuovamente losetup per verificare la vostra
password, come segue:

<p><tscreen><verb>
losetup -e serpent /dev/loop0 /etc/cryptfile
</verb></tscreen>

<p><item>Create il vostro file system ext2 come segue:

<p><tscreen><verb>
mkfs -t ext2 /dev/loop0
</verb></tscreen>

<p><item>Ora potete montare il file system cifrato con:

<p><tscreen><verb>
mount -t ext2 /dev/loop0 /mnt/crypt
</verb></tscreen>

<p><item>Quando avrete finito, vorrete smontare  e proteggere 
il vostro file system come segue:

<p><tscreen><verb>
umount /dev/loop0
losetup -d /dev/loop0
</verb></tscreen>

</enum>


<sect>Dettagli<label id="Dettagli">

<p><bf/Applicare le patch al Kernel:/

Potete fare l'aggiornamento dalle distribuzioni '2.2.x' applicando
le patch. Ciascuna patch rilasciata per '2.2.x' contiene correzioni 
dei bachi. Verranno aggiunte nuove caratteristiche al kernel
Linux di sviluppo '2.3.x'. Per installare applicando le patch, 
prendete tutte le patch pi&ugrave; recenti e fate quanto segue:

<tscreen><verb>
cd /usr/src
gzip -cd patchXX.gz | patch -p0
</verb></tscreen>

Ripetete xx, IN ORDINE, per tutte le versioni pi&ugrave; 
recenti rispetto a quella del vostro albero dei sorgenti
corrente.

La directory predefinita per il sorgente del kernel
&egrave; '/usr/src/linux'.
Se il vostro sorgente &egrave; installato da qualche altra parte
vi suggerirei di usare un collegamento simbolico da '/usr/src/linux'.


<p><bf/Editate 'MCONFIG' per la compilazione del pacchetto 'util-linux':/

Quelle che seguono sono citazioni dal file 'MCONFIG' che ho usato
per compilare il pacchetto 'util-linux'. Notate che questo &egrave;
abbastanza specifico per la mia configurazione, che &egrave; 
vagamente basata su RedHat 5.2. Il punto &egrave; assicurarsi che
non sovrascriviate nessun importante strumento di sistema
come 'login', 'getty', o 'passwd'. Comunque, ecco di seguito le righe
importanti:

<tscreen><code>
CPU=$(shell uname -m | sed s/I.86/intel/)

LOCALEDIR=/usr/share/locale

HAVE_PAM=no

HAVE_SHADOW=yes

HAVE_PASSWD=yes

REQUIRE_PASSWORD=yes

ONLY_LISTED_SHELLS=yes

HAVE_SYSVINIT=yes

HAVE_SYSVINIT_UTILS=yes

HAVE_GETTY=yes

USE_TTY_GROUP=yes

HAVE_RESET=yes

HAVE_SLN=yes

CC=gcc
</code></tscreen>

<p><bf/Suggerimenti:/

Notate che potreste usare uno qualunque degli otto dispositivi di 
loopback, da 'dev/loop0' a '/dev/loop7'. Usate una directory 
non evocativa per il mount point.
Suggerirei di creare una cartella con permessi 700 dentro la
vostra home directory.
Lo stesso vale per il file che contiene i dati. Io uso un nome
di file come 'sysfile' o 'config.data' nella cartella '/etc'.  
Questo di solito passer&agrave; inosservato.

Ho creato degli script Perl molto semplici per montare e
smontare il file system con un comando. Scrivete questi, 
rendeteli eseguibili (chmod u+x), e metteteli da qualche parte 
nel vostro percorso.

<tscreen><code>
#!/usr/bin/perl -w
#
#piccolo file di utilit&agrave; per impostare un file system cifrato di loopback
#Copyright 1999 di Ryan T. Rhea
`losetup -e serpent /dev/loop0 /etc/cryptfile`;
`mount /mnt/crypt`;
</code></tscreen>

Chiamate 'loop' lo script qui sopra, e poi potrete essere sulla
strada buona con un comando ('loop') ed una password.

<tscreen><code>
#!/usr/bin/perl -w
#
#piccolo file di utilit&agrave; per disattivare un fliesystem cifrato di loopback
#Copyright 1999 di Ryan T. Rhea
`umount /mount/crypt`;
`losetup -d /dev/loop0`;
</code></tscreen>

Chiamate 'unloop' il secondo, e poi digitando 'unloop' si 
disattiver&agrave; velocemente il vostro file system.

</article>