Volumi criptati LUKS - Creazione e uso con cryptmount: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
: Un accesso indesiderato ai nostri dati si tende a pensare che possa avvenire da un'intrusione da rete. Certamente questo è lo scenario tipico, ma non bisognerebbe scordare che il più delle volte per accedere a un dato contenuto su un certo supporto, basta avere accesso "fisico" al supporto stesso.
==Introduzione==
Questo è molto più importante oggi giorno di quanto non fosse fino a pochi anni fa a causa della diffusione di sistemi di memorizzazione di massa portabili, estremamente comodi e che ci stiamo abituando ad avere sempre con noi, nello zaino, in una tasca o marsupio.
In questo tutorial analizzeremo apt-proxy.
: Altro scenario interessante è quello nel quale i dati in questione sono contenuti in un computer acceso e connesso alla rete, ma sono dati che ci interessa avere a disposizione esclusiva del nostro utente, e quindi se un'intrusione ci deve proprio essere è utile rendere all'intruso la vita molto dura nell'ottenimento di quei dati sensibili.
Apt-proxy � un comodo strumento per mantenere una cache dei pacchetti Debian gi�
: In questa guida sono contenuti i passi necessari per cifrare una partizione o una periferica (rimovibile o meno) o creare un file che useremo come loop device cifrata (con il vantaggio di essere estremamente trasportabile e archiviabile). Questo sarà mostrato nello scenario più semplice, quello con accesso ai file da parte di un singolo utente. La tecnologia usata però è quella nota col nome di [http://luks.endorphin.org/ LUKS] (Linux Unified Keys Setup) che consente l'utilizzo della crittografia in scenari molto più articolati, con una base di compatibilità che andrà sempre crescendo in tutto il mondo linux (questo è uno degli obiettivi del progetto). È bene fare le cose fin da subito compatibili con uno standard che sarà sempre più importante oltre che ricco di potenzialità, soprattutto pensando a quanto la riservatezza dei propri dati digitali sia sempre più sentita come importante anche dagli utenti semplici.
scaricati, riuscendo cos� a velocizzare il download da parte di altri client
connessi alla stessa Lan ed a risparmiare un po' di banda, soprattutto nei casi
in cui questa � a pagamento =)


Le tecniche mostrate in questa guida sono ancora "rozze" nel senso che richiedono per l'utente che le usa di autenticarsi come root, però possono costituire una base di partenza. {{Box|Disclaimer|Appena riuscirò a trovare la tecnica per evitare l'autenticazione come root, aggiornerò questa guida, rendendo la cifratura più adatta a sistemi multi-utente}}
==Installazione==
La distribuzione cui ci si riferisce è Etch, ma il discorso dovrebbe subire modifiche minime o nulle sia per Lenny che per Sid.
Per installarlo � sufficiente dare il seguente comando:
=='''Prerequisiti e preparazione'''==
<pre>
La prima cosa da controllare prima di cimentarsi nella criptazione è l'abilitazione del kernel a usare l'algoritmo AES. I kernel precompilati di debian sono tutti già abilitati, quindi il controllo non dovrebbe essere necessario. In un terminale eseguiamo<pre>cat /proc/crypto</pre> e con il kernel 2.6.18 di etch dovremmo ottenere (in base anche ai moduli caricati) qualcosa tipo<pre>name        : sha256
# apt-get install apt-proxy
driver      : sha256-generic
</pre>
module      : sha256
priority    : 0
type        : digest
blocksize    : 64
digestsize  : 32


name        : aes
{{Box|NOTA|In questo periodo sta avvenendo la transizione tra la versione 1 e la versione 2. In questo howto verranno analizzate entrambe le versioni, e verr� illustrato anche il passaggio dalla v1 alla v2.}}
driver      : aes-generic
module      : aes
priority    : 100
type        : cipher
blocksize    : 16
min keysize  : 16
max keysize  : 32


name        : md5
driver      : md5-generic
module      : kernel
priority    : 0
type        : digest
blocksize    : 64
digestsize  : 16</pre>
Ovviamente a noi interessa la sezione che inizia con '''name        : aes'''. Se non dovesse comparire dobbiamo controllare che il modulo '''aes''' sia caricato e ottenere un'output simile a questo: <pre>lsmod | grep aes
aes                    28160  2</pre>.
Se l'output dovesse essere vuoto dobbiamo caricare il modulo '''aes''' con l'usuale comando '''modprobe aes'''.


: Se non usaimo un kernel precompilato debian, dobbiamo controllare che l'algoritmo di cifratura sia stato compilato: dal menu '''Linux Kernel Configuration''' seguiamo la voce '''Cryptographic options --->''' e abilitiamo la voce <pre>AES cipher algorithms</pre> o la strettamente legata <pre>AES cipher algorithms (i586)</pre>
==Configurazione==
 
===Versione 1===
 
La configurazione � molto semplice; tutti i parametri sono contenuti in un file:
/etc/apt-proxy/apt-proxy.conf
 
Ne riporto una versione semplificata, in cui le varie variabili di
configurazione sono commentate:
 
<pre>
-------------------------------------------------------
# imposta la directory in cui salvare al cache
APT_PROXY_CACHE=/var/cache/apt-proxy
 
# Esempio per il repository ufficiale Debian
# Debian main
#
# Qui di seguito sono riportate le righe da inserire in un ipotetico
sources.list
# ovviamente sostituendo APTPROXY con l'indirizzo del server che funge da proxy.
#deb http://APTPROXY:9999/debian stable main contrib non-free
#deb http://APTPROXY:9999/debian woody main contrib non-free
#deb http://APTPROXY:9999/debian sarge main contrib non-free
#deb http://APTPROXY:9999/debian sid main contrib non-free
#deb http://APTPROXY:9999/debian project/experimental/main/binary-$(ARCH)/
 
# Qui aggiungiamo un backend, indicando la directory in cui verr� creata la
cache
# La prima riga contiene la dichiarazione del backend, la seconda indica un
repository
# locale (quello della cache), dalla seconda alla penultima sono indicati i vari
mirror
# ufficiali, l'ultima indica un collegamento `alternativo` a http, cio� via
ftp...
# Da notare l'importanza delle backslash a fineriga (ultima riga esclusa)
add_backend /debian/
$APT_PROXY_CACHE/debian/
http://ftp2.it.debian.org/debian/
# http://ftp.de.debian.org/debian/
# http://ftp.uk.debian.org/debian/
# +ftp.us.debian.org::debian/
 
 
 
############################## OTHER VARS ##################################
# Qui sono presenti le variabili di configurazione
#
# Dopo quanti giorni devono essere eliminati i pacchetti vecchi;
# Se impostata a 0, attiva l'eliminazione immediata dei vecchi pacchetti
(sconsigliata)
CLEANUP_DAYS=14
 
# Dopo quanti giorni verranno cancellati i pacchetti considerati vecchi,
raramente utilizzati
# Commentarla per disabilitare questa funzione.
CLEAN_SWEEP=60
 
# Il numero massimo di versioni di un pacchetto da conservare in memoria.
# Commentarla per disabilitare questa funzione.
MAX_VERSIONS=2
 
# Frequenza massima, in minuti, degli aggiornamenti dei pacchetti
# Impostare un valore abbastanza alto per avere delle buone performance.
BACKEND_FREQ=240
 
# Quanti secondi devono passare prima che RSYNC vada in TimeOut
RSYNC_TIMEOUT=30
 
# Quanti secondi devono passare prima che RSYNC vada in TimeOut
WGET_TIMEOUT=30
 
# Consente di impostare il path dell'eseguibile di wget e/o di appendere delle
opzioni all'eseguibile
#WGET=wget
 
# Consente di impostare il path dell'eseguibile di rsync e/o di appendere delle
opzioni all'eseguibile
#RSYNC=rsync
 
# Per appoggiarsi ad un proxy per il download dei pacchetti:
#export http_proxy=http://proxy:8080/
#export ftp_proxy=http://proxy:8080/
# in caso di necessit�, � possibile gestire l'autenticazione:
#export http_proxy=http://user:pass@proxy:8080/
#export ftp_proxy=http://user:pass@proxy:8080/
 
-------------------------------------------------------
</pre>
 
 
===Versione 2===
 
In questo periodo � stata rilasciata la versione 2 di apt-proxy
(http://apt-proxy.sourceforge.net/).
Le migliorie sono tante, e invito a fare una visitina al sito ufficiale.
Prima di passare all'analisi del nuovo file di configurazione, vorrei
sottolineare che, ora, apt-proxy gira come servizio, con relativo script di
avvio/riavvio/stop: /etc/init.d/apt-proxy. Questo vuole dire che, ogni volta che viene modificato il file, conviene riavviare il server apt-proxy.
 
Analizziamo il file di configurazione di questa nuova versione.
Come per il file di configurazione precedente, riporto una copia del mio file
di configurazione, commentando i vari parametri.
 
<pre>
[DEFAULT]
;; Tutti i valori usati per il tempo sono espressi in secondi, � possibile
;; per� indicarli anche in minuti(m), ore(h) o giorni(d), postponendo al numero
;; la lettera distintiva dell'unit� di misura.
 
;; � possibile impostare l'ip al quale risponde il server
;; utile per limitare l'accesso (ad esempio non renderlo accessibile
;; dall'esterno)
;address = 192.168.0.254
 
;; Porta a cui il server presta ascolto
port = 9999
 
;; Intervallo di refresh per Packages/Sources/Contents
;;
;; Intervallo minimo prima di aggiornare un file
min_refresh_delay = 240
 
;; Vita minima di un file prima che venga aggiornato (NOT YET IMPLEMENTED)
;min_age = 23h
 
;; Rimuovi il commento da questa direttiva per fare in modo che
;; apt-proxy continui a scaricare anche se il client si disconnettr
;; Utile per connessioni always-on (ADSL...)
;; complete_clientless_downloads = 1
 
;; Debugging settings.
;; for all debug information use this:
;; debug = all:9
debug = all db:3
 
;; Debugging remote python console
;; Do not enable in an untrusted environment
;telnet_port = 9998
;telnet_user = apt-proxy
;telnet_password = secret
 
;; Timeout mentre si ricevono dati da un server
timeout = 30
 
;; Cache directory di apt-proxy
cache_dir = /var/cache/apt-proxy
 
;; Usa FTP passivo (default=on)
;passive_ftp = on
 
;; Usa un proxy apt
;http_proxy = host:port
 
;; Disable HTTP pipelining within apt-proxy (for test purposes)
;disable_pipelining=1
 
;;--------------------------------------------------------------
;; Cache housekeeping
 
;; Time to perform periodic housekeeping:
;;  - delete files that have not been accessed in max_age
;; - scan cache directories and update internal tables
cleanup_freq = 60d
 
;; Maximum age of files before deletion from the cache (seconds)
max_age = 14d
 
;; Maximum number of versions of a .deb to keep per distribution
max_versions = 2
 
;; Add HTTP backends dynamicaly if not already defined? (default=on)
;dynamic_backends = on
 
;;---------------------------------------------------------------
;;---------------------------------------------------------------
;; Backend servers
;;
 
;[debian]
;Questo backend � stato commentato, per prevenire problemi durante
;l'importazione dei backend dalla versione 1onfiguration
;
;;; The main Debian archive
;;; � possibile sovrascrivere la direttiva `timeout` di default:
;;timeout = 30
;
;;; Rsync server (NOT YET IMPLEMENTED)
;;;rsyncpackages = rsync://ftp.de.debian.org/debian
;
;;; Backend server, in ordine di preferenza
;backends =
;      http://ftp.us.debian.org/debian
;      http://ftp.de.debian.org/debian
;      http://ftp2.de.debian.org/debian
;      ftp://ftp.uk.debian.org/debian
;
;
;[non-US]
;; Debian non-US archive
;timeout non � stata sovrascritta, quindi verr� mantenuto il
;valore di default
;backends =
;      http://ftp.uk.debian.org/debian-non-US
;      http://ftp.de.debian.org/debian-non-US
;      ftp://ftp.uk.debian.org/debian
 
;[security]
;Questo backend � stato commentato, per prevenire problemi durante
;l'importazione dei backend dalla versione 1onfiguration
;
;;; Debian security archive
;backends =
;      http://security.debian.org/debian-security
;      http://ftp2.de.debian.org/debian-security
;
;[openoffice]
;; OpenOffice.org packages
;backends =
;      http://ftp.freenet.de/pub/debian-openoffice
;      http://ftp.sh.cvut.cz/MIRRORS/OpenOffice.deb
;      http://borft.student.utwente.nl/debian
 
;[apt-proxy]
;; Apt-proxy new versions
;backends = http://apt-proxy.sourceforge.net/apt-proxy
 
;[backports.org]
;; backports.org
;backends = http://backports.org/debian
 
;[blackdown]
;;; Blackdown Java
;;backends = http://ftp.gwdg.de/pub/languages/java/linux/debian
;
;
;[debian-people]
;; people.debian.org
;backends = http://people.debian.org
 
;[emdebian]
;; The Emdebian project
;backends = http://emdebian.sourceforge.net/emdebian
 
;[rsync]
;; Un esempio di utilizzo con un server rsync. Non � raccomandato
;; il suo utilizzo, a meno che non sia l'unico servizio disponibile:
;; rsync � molto efficiente solo nel trasferimento di dati non compressi
;; e carica molto il server.
;backends = rsync://ftp.uk.debian.org/debian
 
[debian]
backends =
        http://ftp.it.debian.org/debian
 
[non-US]
backends =
        http://debian.fastweb.it/debian-non-US
        http://ftp.debian.org/debian-non-US
        http://ftp.it.debian.org/debian-non-US
        http://ftp2.it.debian.org/debian-non-US
 
[security]
backends =
        http://security.debian.org
 
[blackdown]
backends =
        http://ftp.gwdg.de/pub/languages/java/linux/debian
 
[marillat]
backends =
        ftp://ftp.nerim.net/debian-marillat
 
[jedit]
backends =
        http://dl.sourceforge.net/sourceforge/jedit
 
[mythtv]
backends =
        http://dijkstra.csh.rit.edu:8088/~mdz/debian/
</pre>
 
Ok, ora abbiamo visto il file di configurazione...che dire: semplicissimo!
Prima di concludere la parte relativa alla configurazione del server, vorrei
mostrare alcuni comandi importanti, utili per la configurazione e l'utilizzo
di apt-proxy:
 
<pre>
# apt-proxy-import
</pre>
 
Comando utilissimo durante la prima installazione: consente di importare dei
pacchetti Debian gi� scaricati nella cache di apt-proxy.
Utilizzo:
 
<pre>
# apt-proxy-import --import-dir=/dir/contentente/i/pacchetti
# apt-proxy-v1tov2
</pre>
 
Comodissima utility che converte il file di configurazione della versione 1 in
uno compatibile con la versione 2.
Utilizzo:
 
<pre>
# apt-proxy-v1tov2 [v1_conf [v2_sample_conf]] > v2_conf
</pre>
 
Di default utilizza /etc/apt-proxy/apt-proxy.conf per v1_conf e
/etc/apt-proxy/apt-proxy-v2.conf per v2_sample_conf.
 
<pre>
# /etc/init.d/apt-proxy
[start|stop|restart|force-reload]
</pre>
 
Script di gestione di apt-proxy:
start: avvia il server;
stop: lo arresta;
restart: lo riavvia;
force-reload: Forza la rilettura del file di configurazione.
 
==Utilizzo==
 
Niente di pi� semplice: basta modificare il proprio
/etc/apt/sources.list
mettendo come server indirizzo_server:9999
 
 
===Esempio===
Se prima, nel nostro sources.list avevamo una riga del tipo:
 
<pre>
deb http://ftp2.it.debian.org/debian/ testing main
non-free contrib
</pre>
 
non ci baster� che seguire questi passi, per configurare il server e i client:
 
1) inseriamo il backend nel server, se non � gi� presente:
<pre>[debian]
backends =
http://ftp2.it.debian.org/debian/
</pre>
 
2) modifichiamo il soruces.list dei client:
<pre>
deb http://indirizzoserver:9999/debian/ testing main non-free contrib
</pre>
 
3) aggiorniamo apt-proxy
<pre>
# /etc/init.d/apt-proxy force-reload
</pre>
 
4) aggiorniamo con
<pre>
# apt-get update
</pre>
 
 
Fine!
 
 
---- [[User:MaXeR|MaXeR]]
 
[[Categoria:Apt]]
[[Categoria:Repository]]
117

contributi