Questo HowTo va letto con la consapevolezza che il concetto di cloud (avere i propri file sparsi per la rete) va esattamente nella direzione opposta alla sicurezza. Nonostante alcune tecniche rendano i tentativi di “farsi gli affari nostri” particolarmente difficili, evitare di spargere in giro i nostri dati è sicuramente la soluzione migliore.
Da un po di tempo ero alla ricerca di una soluzione che mi permettesse di avere a disposizione alcuni dei miei file tra diversi PC senza però dovermi affidare all’uso di servizi commmerciali come DropBox o UbuntuONE.
Innanzitutto per una limitazione tecnica:
entrambi i servizi si basano sulla sincronizzazione di una cartella locale del PC su un server remoto (senza gestione dei delta) e questo se si parla di un file “contenitore” cifrato si traduce in una sua completa ri-sincronizzazione ad ogni seppur minima modifica degli elementi contenuti al suo interno (potete immaginare quanto sia scomoda una soluzione del genere se il file “contenitore” cifrato è grande qualche GB).
Di conseguenza utilizzare in maniera sicura questi servizi diventa molto scomdo e non resta quindi che scartare l’ipotesi di una cifratura controllata da noi ed affidarsi all’onestà dei gestori.
Come si dice: fidarsi è bene ma non fidarsi è molto meglio, soprattutto se ad essere in ballo sono i nostri dati personali, la nostra privacy o la nostra sicurezza.
A supporto di una soluzione cloud sicura “fatta in casa” (l’unica di cui abbiamo il pieno controllo) possiamo utilizzare programmi open-sources e free. Oltre ad un server remoto da utilizzare come storage dei nostri dati, avremmo quindi bisogno di:
Tomb permette di creare dei file contenitori cifrati con AES-256, inoltre contiene interessanti feature per la gestione della chiave segreta come:
- la possibilità di salvarla in una pendrive usb,
- la possibilità di proteggerla attraverso la tecnica della steganografia all’interno di un’immagine
A queto punto, dopo aver installato sul nostro PC tomb e sshfs, passiamo alla creazione della tomba sul nostro PC.
NB: anche se “scomodo” (soprattuto per file di grandi dimensioni) è importate creare la tomba sul nostro PC e successivamente spostarla sul server (soprattutto se il server che pensiamo di utilizzare è condiviso e non ha la partizione swap cifrata).
Il comando per la creazione della tomba è il seguente:
$ tomb-open
Invalid number of options.
[*] Tomb – simple commandline tool for encrypted storage
. version 1.2 (Nov/2011) by Jaromil @ dyne.org[*] Guided creation of a new Tomb
A Tomb is a special folder that keeps files safe using a password:
it makes use of strong encryption and helps you keep the keys on a
separate USB storage for safer transports.Inside a Tomb you can store private informations without fear that
other people possessing it will discover your secrets, unless they
have your USB key and your password.If you choose to proceed now, we’ll guide you through the creation
of a new Tomb.If you will, I’ll be your Crypto Undertaker.
Do you want to proceed, Master? (y/n) y
[*] Please type in the name for your new tomb file:
> test[*] How big you want the Tomb to be?
. Type a size number in Megabytes:
> 500
A questo punto inserire la propria password e successivamente scegliere la passphrase della tomba.
Terminata la creazione della tomba, la carichiamo sul server utilizzando scp in questo modo:
scp -P PORT /home/user/test.tomb user@IP.IP.IP.IP:/home/user/cloud
Al termine dell’operazione, montiamo la cartella remota attraverso sshfs in questo modo:
sshfs -o allow_root user@IP.IP.IP.IP:/home/user/cloud /home/user/cloud
Se non dovesse funzionare controllare che all’interno del file di confurazione /etc/fuse.conf sia decommentata la seguente entry:
# Allow non-root users to specify the ‘allow_other’ or ‘allow_root’
# mount options.
#
user_allow_other
L’utilizzo di sshfs garantisce che il transito dei dati tra il nostro server e il nostro PC avvenga in maniera cifrata.
A questo punto apriamo la tomba in questo modo:
$ tomb –ignore-swap open /home/user/cloud/test.tomb -k /home/user/test.tomb.key
La tomba si monta automaticamente dentro /mount/test.tomb/.
L’opzione –ignore-swap permette di far ignorare a tomb l’esistenza della partizione swap. Di non è una buona pratica l’utilizzo di tomb su sistemi che fanno uso della partizione swap, esistono però delle eccezioni: se utilizziamo file system con Full Disk Encryption oppure mediante Ecryptfs oltre alla home cifriamo anche la swap (es. ecryptfs-setup-swap), possiamo ignorare questa precauzione.
Il comando:
$ tomb list
Mostra informazioni sullo stato della tomba (spazio disponibile, ultima apertura, etc)
Tenete presente che la tomba inizia a sincronizzare gli elementi copiati al suo interno non appena ce li spostiamo. Al momento della chiusura della tomba però si potrebbe essere costretti a dover attendere la fine della copia.
Per chiudere la tomba lanciate il seguente comando:
$ tomb close
Considerate che l’esecuzione del comando non sarà immediata e dipenderà dalla dimensione dei file caricati e dalla velocità in upload della vostra connessione. Mettetevi comodi ed aspettate.
Se volete rendere più veloce tutta l’operazione d’apertura create sulla vostra home uno script in bash (es. cloud.sh) e incollateci dentro le seguenti righe:
##!/bash/bin
## mount remote directory with sshfs
sshfs -o allow_root user@IP.IP.IP.IP:/home/user/cloud/ -p PortSSH -C ~/home/user/cloud/
## open tomb
tomb –ignore-swap open /home/user/cloud/test.tomb -k /home/user/test.tomb.key
## print info about tomb
tomb list
rendetelo eseguibile con il seguente comando
$ sudo chmod +x cloud.sh
A questo punto aprite il vostro cloud semplicemente lanciando:
$ ./cloud.sh
Stessa cosa per gestire l’operazione di chiusura, create uno script con il seguente codice:
##!/bash/bin
## close tomb
tomb close cloud
## close remote fs
sudo fusermount -u /home/user/cloud
Altre info su:
http://www.dyne.org/software/tomb/ and https://github.com/dyne/Tomb
Twitter It!


GPG Key