Crittografia su Debian con ‘encfs’

Crypting: procedura tratta dall’articolo http://www.debian-administration.org/articles/204.

Scopo: proteggere una directory da lettura con la crittografia in caso di attacco fisico alla macchina.

Pacchetti necessari: fuse-source, module-assistant (per l’installazione), encfs.

Procedura:

  • scaricare e compilare il modulo fuse (e il necessario per compilarlo):
    apt-get install fuse-source
    apt-get install module-assistant
    module-assistant prepare
    (se non presente scarica kernel-headers)
    module-assistant build fuse
    module-assistant install fuse
    modprobe fuse
  • installare encfs
    apt-get install encfs
  • a questo punto creiamo una dir dove conservare i sorgenti criptati e una da utilizzare per i dati in chiaro e attiviamo il filesystem
    mkdir /var/secret/encoded
    mkdir /var/www/secret
    encfs /var/secret/encoded /var/www/secret
    (vuole sempre i path assoluti)
  • mi vengono richiesti i parametri di crittografia (che si possono lasciare a standard o è già prevista una configurazione ‘paranoia’ per i più insicuri) e di impostare una password
  • se tutto è andato a buon fine, da questo punto in avanti tutto quello che creo/copio/sposto in /var/www/secret viene automaticamente crittografato (file per file, dir per dir) nella dir /var/secret/encoded


Nella directory crittografata c’è anche il file nascosto ‘.encfs5’, indispensabile insieme alla password scelta al primo lancio del comando encfs, per poter ri-montare la dir con i dati in chiaro in caso di riavvio o in caso di disaster recovery: prendo tutto il contenuto criptato compreso il file nascosto, monto la dir su un’altra macchina, mi chiede la password ed ho di nuovo i miei dati in chiaro montati.

L’unico utente che può usare lo spazio montato con questo metodo è l’utente che esegue il comando encfs.

Tale utente DEVE appartenere al gruppo che ha i permessi di utilizzo del modulo FUSE. Un occhiata a /etc/defaults/fuse-utils può chiarire le idee.

Troubleshooting
Se loggandomi con l’utente che deve utilizzare encfs si riceve sistematicamente un messaggio di errore, testualmente:
fuse: failed to exec fusermount: Permission denied fuse failed. Common problems:
- fuse kernel module not installed (modprobe fuse)
- invalid options -- see usage message

Può essere che durante l’installazione si sia indicato il gruppo sbagliato. Ci sono 3 controlli da fare:

  1. verificare che il modulo fuse sia correttamente caricato con il modprobe
  2. verificare/settare con dpkg-reconfigure fuse-utils che il gruppo indicato sia corretto
  3. verificare che il file (/usr/bin/)fusermount abbia i permessi impostati come nell’esempio:
    ls -l fusermount
    -rwsr-xr-- 1 root fuse 18288 2005-07-06 08:38 fusermount

Per impostare correttamente lo sticky bit (punto 2):
chown root:www-data fusermount
chmod 4754 /usr/bin/fusermount

In caso di riavvio del server
Se si riavvia il server la directory /var/www/secret risulterà vuota.
Per cui è necessario lanciare il comando
encfs /var/secret/encoded /var/www/secret, digitare la password, e si avrà di nuovo il contenuto disponibile.

Per i backup
Per effettuare i backup posso indifferentemente decidere di salvarmi i file in forma leggibile oppure di salvarmi quelli criptati (con meno problemi di sicurezza sulla loro conservazione perché senza password e senza il file .enfs sono illeggibili) e in caso di bisogno attivare il modulo encfs su un’altra macchina e renderli leggibili.

Leave a Reply

Your email address will not be published.