Montar una carpeta cifrada dentro de Dropbox en Linux

Uno de los beneficios de los servicios en la nube es poder compartir información entre dispositivos de forma sencilla y Dropbox es un gran servicio para ello pero nunca hay que descuidar la seguridad y siempre debemos tener presente que como todo servicio en la nube puede ser comprometido.

Hay que tener mucho cuidado con lo que subimos a Dropbox o a cualquier servicio en la nube, bien puede ser hackeado el propio servicio o bien puede ser solo nuestra cuenta pirateada de alguna forma.

Una de las mejores formas que tenemos de subir información de forma segura es cifrando los datos, hoy les mostrare dos métodos, el primero mediante encfs y el segundo mediante Luks.

Sin duda el método más seguro es Luks sin embargo no es el más adecuado si guardamos muchas información ya que se sincronizará un único archivo de un tamaño fijo, si es un archivo muy pequeño nos podemos quedar sin espacio, si es muy grande puede demorar en sincronizarse e incluso dar errores.

En ese sentidos es mejor Encfs porque cifra los archivos por separado y sólo actualizará los que cambien, sin embargo hay que tener en cuenta que Encfs ya no se considera del todo seguro, las versiones 1.7 y 1.8 han sido cuestionadas, algunas de ellas ya han sido arregladas para la versión 1.9 aunque no todas.

Instalar encfs

Si tenemos Fedora:

dnf install fuse-encfs

En Debian:

apt-get install encfs

Dentro de Dropbox creamos una carpeta .secure o cualquier otro nombre, lo importante es que tenga un . adelante, no afecta el funcionamientos sino que hace que la carpeta está oculta y no se vea para evitar problemas ya que allí no debemos tocar nada, es la carpeta donde todo está cifrado.

encfs /home/alvaro/Dropbox/.secure/ /home/alvaro/DropboxSecure/

En lugar de guardar en la carpeta de dropbox lo hacemos en DropboxSecure que si bien está fuera de la carpeta de Dropbox todo lo que se guarde en DropboxSecure se cifrara en .secure que si esta en Dropbox.

Podemos montarlo con un script:

#!/bin/bash
echo "sJ3oCOMIxp7i60WOqJzy2EHBCHlfbxs" | encfs /home/alvaro/Drive/.secure/ /home/alvaro/DriveSecure/ --stdin

Colocar un a contraseña en un script no es muy seguro aunque este script está en nuestra computadora y lo que se intenta proteger no son los archivos locales sino los que están la nube, si somos paranoicos podemos no colocar la contraseña y descifrarlo de forma manual

Luks

Si en lugar de optar por Encfs optamos por algo mas seguro tenemos como opción Luks, para ello dentro de Dropbox en lugar de crear una carpeta oculta creamos un archivo oculto supongamos que de 100MB

dd if=/dev/zero of=/home/alvaro/Dropbox/.secure-drive count=100 bs=1MiB

Tal vez parezca poco, pero recordemos que el más mínimo cambio en un fichero provocará la sincronización del archivo .secure-drive completo, hay que tener especial cuidado de no modificarlo en 2 dispositivos al mismo tiempo ya que se tendrá problemas de versiones porque intentará sincronizar ambas.

Ahora debemos preparar el archivo y cifrarlo con LUKS

 

cryptsetup luksFormat /home/alvaro/Dropbox/.secure-drive

WARNING!
========
Esto sobreescribirá los datos en /home/alvaro/Dropbox/.secure-drive de forma irrevocable.

Are you sure? (Type uppercase yes): YES
Introduzca la frase contraseña de /home/alvaro/Dropbox/.secure-drive:
Verifique la frase contraseña:

Ahora con sudo ejecutamos:

sudo cryptsetup luksOpen /home/alvaro/Dropbox/.secure-drive SecureDrive

Esto montara la imagen como disco y ahora debes formatearla con:

sudo mkfs.ext4 /dev/mapper/SecureDrive 

#Debemos crear el punto de montaje
mkdir /home/alvaro/SecureDrive

#Finalmente debemos montar la imagen descifrada en el punto de montaje
sudo mount /dev/mapper/SecureDrive /home/alvaro/SecureDrive/

#Para no tener problemas de escritura
sudo chown alvaro:alvaro -R /home/alvaro/SecureDrive/

Obviamente reemplazan por su usuario.

Para montarlo el script puede ser algo similar a esto

#!/bin/bash
echo "sJ3oCOMIxp7i60WOqJzy2EHBCHlfbxs" | sudo cryptsetup luksOpen /home/alvaro/Dropbox/.secure-drive SecureDrive
sudo mount /dev/mapper/SecureDrive /home/alvaro/SecureDrive/

O también en lugar de usar una contraseña se puede utilizar un archivo como llave que podemos generar con ssh-keygen y agregarlas con luksAddkey

Conclusión

Desde el punto de vista de la seguridad Luks es mucho más robusto aunque desde el punto de la usabilidad encfs es mucho más práctico y eficiente, cuál usemos depende de qué tan sensibles sean nuestros datos y de qué tan paranoicos estemos.

 

Alvaro DeLeon

Acerca de Alvaro DeLeon

Administrador de Sistemas,Programador,Docente y Blogger. Más de 20 años de experiencia en computación. Escribo más que nada sobre Linux, sistemas operativos, virtualización, seguridad y tecnología en general además de algunos artículos con opiniones muy personales e irrelevantes.
Esta entrada fue publicada en Seguridad y etiquetada , , , . Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *