candado

Guardando nuestros datos en un entorno encriptado usando cryptsetup

Hola GUTLeros. Me he disculpado anteriormente por no ser tan activo redactando artículos para el sitio, hoy lo hago una vez más. En mi defensa, les comento que mi carrera es muy fuerte y exige muchísimo de mi tiempo, y este es mi último año.

Para redimirme, hoy les voy a hablar de una herramienta extremadamente útil y fantástica que desde que la conocí, ha formado parte de mi vida diaria. Este comando es muy utilizado para cifrar dispositivos de almacenamiento, ya sean memorias USB, disco duros externos e internos, e incluso particiones. Cuando encontré un artículo en la revista Linux Magazine hablando sobre este comando, le presté mucha atención, porque desde hace mucho tiempo estaba buscando una manera de encriptar carpetas, porque claro, cuando aquello todavía no tenía conocimiento de la existencia de cryptkeeper, una aplicación que está hecha con este objetivo, la cual se integra muy bien con ambientes gtk; les recomiendo que vean el artículo sobre cryptkeeper publicado recientemente en nuestro sitio amigo HumanOS. Cryptsetup no sirve para encriptar carpetas, pero fijándome en el artículo escrito en la   Linux Magazine, donde enseñaban a cifrar memorias USB, se me ocurrió una forma de crear una “carpeta cifrada” dentro de nuestro disco duro sin tener que hacer una partición para guardar nuestros datos sensibles (lo bueno es que la idea funcionó), parece un juego de palabras, pero en cuanto vayamos avanzando, sabrán de lo que hablo.

Creando nuestra “carpeta cifrada”

He venido poniendo la frase “carpeta cifrada” entre comillas porque en realidad nuestra carpeta va a ser un fichero(aunque todas las carpetas en realidad son como ficheros especiales, pero ese es otro tema ) el cual va a tener un tamaño que decidamos, esto es algo que van a entender muy rápido, y espero que no les resulte muy denso.

Entrando en materia, primero crearemos nuestro fichero, aunque ese fichero puede ser cualquiera, incluso una película, pero nosotros crearemos nuestro propio fichero vacío y de un tamaño que decidamos. Para nuestro ejemplo, usando el comando dd crearemos un fichero de 4GB, pero el tamaño que le den es decisión suya.

Para usar dd, en la opción bs especificaremos el tamaño del bloque en bytes, en count pondremos la cantidad de bloques a escribir, en  if lo que escribiremos en los bloques y en of el fichero que estamos creando. Por ejemplo, creemos un fichero vacío llamado ejemplo, de 4GB:

dd bs=$((1024*1024*1024)) count=4 if=/dev/zero of=ejemplo

Una vez creado nuestro fichero, lo cifraremos con  cryptsetup. Les dirá que los datos que esté en el fichero se sobrescribirán, y que si está seguro de lo que va a hacer, deben poner YES así en mayúsculas y le da ENTER, luego ponen la contraseña con la cual quieren cifrar ese fichero. El comando es el siguiente:

sudo cryptsetup luksFormat ejemplo

Observar que todo lo haremos como root. Luego lo abrimos, y especificamos el nombre con el que lo vamos a mapear(ya veremos para qué es esto). La opción luksOpen mapea el fichero en /dev/mapper, en este caso lo vamos a mapear como ejemplo1:

sudo cryptsetup luksOpen ejemplo ejemplo1

Ahora viene una de las partes más importantes e interesantes. Ese fichero además de estar cifrado, podemos formatearlo con el sistema de ficheros que deseemos. En este caso lo formatearemos en ext4, sistema de ficheros al que soy fiel. Para esto utilizaremos el comando mkfs.ext4, y le pondremos YYY como label, por ponerle algún nombre:

sudo mkfs.ext4 -L YYY /dev/mapper/ejemplo1

Luego de darle formato, lo cerramos poniendo el nombre con que mapeamos el fichero, en nuestro caso fue ejemplo1:

sudo cryptsetup luksClose ejemplo1

Después de eso, a partir de este momento, cada vez que “abramos” nuestro fichero con la opción luksOpen, aparecerá nuestro fichero en nuestro administrador de ficheros. Por ejemplo:

sudo cryptsetup luksOpen ejemplo ejemplo1

Observar que se ve nuestro fichero con el label que le pusimos cuando lo formateamos.

Observar que se ve nuestro fichero con el label que le pusimos cuando lo formateamos.

Luego le damos click a YYY(o equivalentemente, lo podemos montar desde la consola), y ya tenemos acceso a nuestra “carpeta cifrada” oculta(digo oculta porque nadie se podría imaginar ni por asomo la información que ahí ustedes tienen). Solo falta una cosa. Así como está todo, podemos acceder al fichero, pero no podemos copiar nada aún porque no tenemos los permisos. Para esto debemos ponerle a nuestro usuario como el owner, porque por defecto es el usuario y el grupo root el dueño. Para esto usaremos el comando chown sobre nuestro fichero montado(solo hay que hacerlo la primera vez):

sudo chown user:user /media/user/YYY/

Recuerden sustituir donde dice “user” por su nombre de usuario real. Cada vez que dejemos de usar nuestra fichero-carpeta cifrada y oculta, no se les olvide primero desmontarla y luego aplicamos nuestra mágica opción luksClose pasándole(recuerden esto) el nombre con el que lo mapearon, no se deben estar acordando de este nombre, porque se autocompleta:

sudo cryptsetup luksClose ejemplo1

En la siguiente imagen se ve nuestro fichero-carpeta cifrada con datos ya guardados dentro.

YYY1

Espero que no les haya parecido demasiado denso, porque una vez creado el fichero cumpliendo con todos los pasos aquí mencionados, el proceso de montaje es extremadamente fácil, como ya han podido ver, además de lo útil que es cryptsetup para asegurar nuestros datos.

Pensaba en mostrarles cómo sería el proceso con un dispositivo externo y con particiones del disco duro, pero creo que una vez visto este artículo, eso ya resulta bastante intuitivo, de todas formas, si no lo creen así, por favor díganme en los comentarios si desean otro artículo explicando cómo sería este proceso.

¿Te resultó interesante? Compártelo ...



Ph4nt0m

Publicado por Ph4nt0m

Forma parte de GUTL desde el 8 agosto, 2013. Mi primera distribución GNU/Linux fue un Knoppix cuando estaba en la secundaria. Hoy estudio Ciencias de la Computación (conocida como Cibernética) en la Universidad de La Habana.

Este artículo tiene 2 comentarios

  1. Me gustó mucho este artículo, hace unos días atrás pensé en escribir un post utilizando esta herramienta en un USB, el artículo estaba en Debian Planet. Ya había experimentado con el (en el pendrive) y es excelente. Encriptar un USB me parece una buena idea, ya que podemos evitar que alguien de nuestro entorno lo tome por error y borre información importante para nosotros.

    También solía utilizar EncFS, otra herramienta muy buena. Incluso le había creado un script para simplificar algunos pasos (no sé si será del todo seguro eso).

    Te agradezco esta entrada.

    Saludos

Los comentarios están cerrados.