Cifrado de carpetas en Linux

Hace poco, me preguntó mi Papá cómo podía cifrar el contenido de diversas carpetas en su computadora en la cual, tiene el sistema operativo Ubuntu 10.04 (si, ¡mi Papá usa Linux en su computadora!), y de ahí, surgió un pequeño tema de cómo hacerlo. Aquí pongo el resultado de esa inquietud original.

Requisitos

Antes que nada, si hay alguna duda de comandos como ls, pwd, cd, etcétera, puede ir a mi  Guía de comandos UNIX/LINUX.

Lo primero que requerimos, es contar con el paquete encfs en nuestro Linux. Para obtenerlo podemos usar el siguiente comando desde una Terminal:

sudo apt-get install encfs

Como se muestra en el siguiente ejemplo:

orlando_olguin@ooo-laptop:~$ sudo apt-get install encfs
[sudo] password for orlando_olguin:
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  python-gtkspell python-wnck
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  encfs
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/370kB of archives.
After this operation, 1,729kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  encfs
Install these packages without verification [y/N]? y   <-- Poner y para que se instale
Selecting previously deselected package encfs.
(Reading database ... 365234 files and directories currently installed.)
Unpacking encfs (from .../encfs_1.5.2-2_i386.deb) ...
Processing triggers for man-db ...
Setting up encfs (1.5.2-2) ...
orlando_olguin@ooo-laptop:~$

De esta forma, ya está instalado el paquete en nuestra computadora.

Cifrando una carpeta

El contenido de la carpeta no se verá mientras que no se ejecute el comando especial para hacer visible la información, esto último se hace a través de una constraseña. El comando se ejecuta como sigue:

encfs /directorio/.carpeta_metadatos /directorio/carpeta_cifrada

Donde .carpeta_metadatos es una carpeta que contendrá información especial del cifrado de la carpeta_cifrada; en esta última, se guardará la información importante que queremos que esté oculta. Para la carpeta que se cree con los metadatos, es importante que lleve un punto al inicio para que quede “oculta”.

Otro punto importante a considerar, es que se tiene que poner la carpeta completa, es decir, con todos sus directorios padres referenciados como se verá más adelante en el ejemplo.

Muy bien, vamos a comenzar con el proceso. Voy a hacer la demostración creando incluso una carpeta oculta en mi memoria USB llamada MetalliUSB. Una vez que ya se instaló el encfs, vamos a proceder. Primero, después de conectar la memoria USB, hay que verificar que exista y mostramos su contenido:

orlando_olguin@ooo-laptop:/$ cd /media
orlando_olguin@ooo-laptop:/media$ ls
cdrom  cdrom0  MetalliUSB
orlando_olguin@ooo-laptop:/media$ cd MetalliUSB/
orlando_olguin@ooo-laptop:/media/MetalliUSB$ ls
orlando_olguin@ooo-laptop:/media/MetalliUSB$

Como se puede ver, mi memoria USB está vacía. Ahora vamos a crear nuestra carpeta cifrada, en este caso, usaré a .cifrado como mi carpeta de metadatos y la carpeta con los archivos importantes que estarán “invisibles”, se llamará datos_importantes:

orlando_olguin@ooo-laptop:/media/MetalliUSB$ pwd
/media/MetalliUSB
orlando_olguin@ooo-laptop:/media/MetalliUSB$ encfs /media/MetalliUSB/.cifrado /media/MetalliUSB/datos_importantes
The directory "/media/MetalliUSB/.cifrado/" does not exist. Should it be created? (y,n) y          <--- No existe la carpeta .cifrado
The directory "/media/MetalliUSB/datos_importantes" does not exist. Should it be created? (y,n) y  <--- No existe la carpeta datos_importantes
Creating new encrypted volume.
Please choose from one of the following options:
 enter "x" for expert configuration mode,
 enter "p" for pre-configured paranoia mode,
 anything else, or an empty line will select standard mode.
?> p <--- Aquí se elige el tipo de configuración, la p es suficiente.

Paranoia configuration selected.

Configuration finished.  The filesystem to be created has
the following properties:
Filesystem cipher: "ssl/aes", version 2:2:1
Filename encoding: "nameio/block", version 3:0:1
Key Size: 256 bits
Block Size: 1024 bytes, including 8 byte MAC header
Each file contains 8 byte header with unique IV data.
Filenames encoded using IV chaining mode.
File data IV is chained to filename IV.
File holes passed through to ciphertext.

-------------------------- WARNING --------------------------
The external initialization-vector chaining option has been
enabled.  This option disables the use of hard links on the
filesystem. Without hard links, some programs may not work.
The programs 'mutt' and 'procmail' are known to fail.  For
more information, please see the encfs mailing list.
If you would like to choose another configuration setting,
please press CTRL-C now to abort and start over.

Now you will need to enter a password for your filesystem.
You will need to remember this password, as there is absolutely
no recovery mechanism.  However, the password can be changed
later using encfsctl.

New Encfs Password: <--- Contraseña para la carpeta cifrada.
Verify Encfs Password: 

orlando_olguin@ooo-laptop:/media/MetalliUSB$

En este momento, ya se encuentran creadas la carpeta datos_importantes y .cifrado como se puede ver a continuación:

orlando_olguin@ooo-laptop:/media/MetalliUSB$ ls -la
total 20
drwx------ 5 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 .
drwxr-xr-x 4 root           root           4096 2011-06-07 11:47 ..
drwx------ 2 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 .cifrado
drwx------ 2 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 datos_importantes
drwx------ 2 orlando_olguin orlando_olguin 4096 2011-05-26 13:18 .disk
orlando_olguin@ooo-laptop:/media/MetalliUSB$ ls    <--- Con un simple ls, sólo se ve la carpeta cifrada
datos_importantes
orlando_olguin@ooo-laptop:/media/MetalliUSB$

Ahora, podemos ir a la carpeta de datos_importantes y guardar información. En este caso, para muestra, vaciaré el contenido del listado de la carpeta en un archivo llamado prueba.txt:

orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$ ls -la
total 8
drwx------ 2 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 .
drwx------ 5 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 ..
orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$ ls -la > prueba.txt  <-- Guardar información en prueba.txt
orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$ ls
prueba.txt
orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$ more prueba.txt   <--- Mostrando el contenido del archivo generado.
total 8
drwx------ 2 orlando_olguin orlando_olguin 4096 2011-06-07 11:55 .
drwx------ 5 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 ..
-rwxr-xr-x 1 orlando_olguin orlando_olguin    0 2011-06-07 11:55 prueba.txt
orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$

Suponiendo que ya depositamos los archivos importantes en la carpeta que creamos, y ya no requerimos usarla por el momento, entonces hay que desmontar la carpeta para que ya no se vea su contenido. Para eso, usamos el comando:

fusermount -u /directorio/carpeta_cifrada

En nuestro ejemplo, vamos a desmontar la carpeta archivos_importantes:

orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$ cd ..
orlando_olguin@ooo-laptop:/media/MetalliUSB$ ls
datos_importantes
orlando_olguin@ooo-laptop:/media/MetalliUSB$ fusermount -u /media/MetalliUSB/datos_importantes   <-- Desmontando la carpeta.
orlando_olguin@ooo-laptop:/media/MetalliUSB$ ls -la
total 20
drwx------ 5 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 .
drwxr-xr-x 4 root           root           4096 2011-06-07 11:47 ..
drwx------ 2 orlando_olguin orlando_olguin 4096 2011-06-07 11:55 .cifrado
drwx------ 2 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 datos_importantes   <-- Existe la carpeta
drwx------ 2 orlando_olguin orlando_olguin 4096 2011-05-26 13:18 .disk
orlando_olguin@ooo-laptop:/media/MetalliUSB$ cd datos_importantes
orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$ ls             <-- Pero ya "no hay" información en ella
orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$ ls -la
total 8
drwx------ 2 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 .
drwx------ 5 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 ..
orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$
_

En este momento, una vez desmontada la carpeta, ya no se ven los archivos y se puede incluso borrar ya de manera normal, no olviden de borrar también la carpeta cifrada que comienza con punto (.). Si se desea volver a habilitarla para lectura, hay que repetir el comando encfs pero ésta vez, sólo nos pedirá la contraseña para acceso:

orlando_olguin@ooo-laptop:/media/MetalliUSB$ encfs /media/MetalliUSB/.cifrado /media/MetalliUSB/datos_importantes
EncFS Password:                                                           <-- Sólo nos pide la contraseña
orlando_olguin@ooo-laptop:/media/MetalliUSB$ cd datos_importantes
orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$ ls         <-- Ya se ve nuevamente la información.
prueba.txt
orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$ more prueba.txt
total 8
drwx------ 2 orlando_olguin orlando_olguin 4096 2011-06-07 11:55 .
drwx------ 5 orlando_olguin orlando_olguin 4096 2011-06-07 11:54 ..
-rwxr-xr-x 1 orlando_olguin orlando_olguin    0 2011-06-07 11:55 prueba.txt
orlando_olguin@ooo-laptop:/media/MetalliUSB/datos_importantes$

Conclusiones

Espero les sea de utilidad esta herramienta de encfs, con ella podrán tener información sensible oculta de los demás.

Si la información de este post te ha sido de utilidad o quieres que agregue algo más, deja por favor un comentario, contestaré a la brevedad.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: