KEMBAR78
Blog de Iván López: Truecrypt
Mostrando entradas con la etiqueta Truecrypt. Mostrar todas las entradas
Mostrando entradas con la etiqueta Truecrypt. Mostrar todas las entradas

domingo, 7 de marzo de 2010

Backups off-site cifrados truecrypt

   En todos los proyectos hay distintas etapas. Primero te das cuenta de que la forma de realizar los backups es poco óptima y segura y decides que sería mejor tener un raid 1 para protegerte de los fallos en disco. Un tiempo después empiezas a pensar que eso está muy bien, pero qué ocurre si te roban el ordenador (con sus 2 discos del raid), se incendia, inunda o viene un tornado y te quedas sin casa. Pues que has perdido todos tus preciados datos. En ese momento piensas en un backup off-site, es decir, fuera de tu casa. Hay muchos servicios online, pero cuando tienes cientos de gigas de información que almacenar, pueden suponer muchos euros al mes.
Al final, una solución puede ser hacer el backup a un disco externo y llevar ese disco a otro sitio: la oficina, la casa de tus padres,... y cada cierto tiempo traerlo a casa, sincronizar los datos pendientes y volverlo a llevar. Pero, ¿qué ocurre si ese disco externo se pierde o roban en casa de tus padres?, que todo el mundo vería tu información. La solución para esto, el cifrado.

   Así es cómo lo voy a hacer. Tengo un disco duro de 120 GB que usaba antes de ampliar el raid y que ahora tengo en una caja externa usb. Para el cifrado, utilizo Truecrypt, del que ya he hablado varias veces y que me parece una solución estupenda.
  • Creamos el dispositivo cifrado. En lugar de crear un archivo .tc voy a cifrar toda la partición. Nos pedirá que seleccionemos los algoritmos, que introduzcamos una clave y que "aporreemos" el teclado para generar las claves con cierta aleatoriedad. No elegimos sistema de archivos puesto que sólo podemos escoger FAT y nosotros formatearemos posteriormente a ext3. Este proceso puede durar mucho tiempo en función del tamaño del disco, en mi caso fueron unas dos horas.
    shian:~# truecrypt -c /dev/sda1
  • Una vez finalizado el proceso, montamos el volumen cifrado indicando que no tiene filesystem.
    shian:~# truecrypt --filesystem=none /dev/sda1 /mnt/ext_backup
  • Vemos dónde se ha mapeado el dispositivo y lo formateamos. Ojo no hay que elegir /dev/sda1 puesto que sino sobreescribiríamos el volumen cifrado y tendríamos que empezar de nuevo.
    shian:~# truecrypt -l   
    1: /dev/sda1 /dev/mapper/truecrypt1

    shian:~# mkfs.ext3 /dev/mapper/truecrypt1
  • Desmontamos el volumen y lo montamos en su ubicación definitiva con el sistema de archivos ya creado. Ahora ya podríamos empezar a copiar todos nuestros datos en él.
    shian:~# truecrypt -d /dev/sda1

    shian:~# trucrypt /dev/sda1 /mnt/ext_backup

    shian:~# df -h
    S.ficheros Tamaño Usado Disp Uso% Montado en
    /dev/mapper/truecrypt1 113G 17G 91G 16% /mnt/ext_backup
  • Para la sincronización he hecho un script muy sencillo con rsync que copia los datos de la partición del raid donde los deja el proceso de backup al volumen cifrado. Sólo muestro dos directorios, pero el comando es el mismo para todos.
    #!/bin/bash
    echo "Asegurate de que esté montado el volumen cifrado!!!!"
    echo "CTRL+C para cancelar"
    read

    DATA_HOME=/mnt/raid/datos/doraemon/current
    BACKUP_DST=/mnt/ext_backup
    LOG_FILE=/root/log_externalBackup/$(date +%Y%m%d_%H%M)_externalBackup.log
    FINAL_LOG_DST=/mnt/ext_backup/logs

    rsync -avpz --stats "$DATA_HOME/media/sda2/Fotos" $BACKUP_DST > $LOG_FILE
    rsync -avpz --stats "$DATA_HOME/media/sda2/Musica" $BACKUP_DST >> $LOG_FILE

    cp $LOG_FILE $FILE_LOG_DST/
  •    Y listo, con esto estaría todo terminado. Ya sólo hay que lanzar el script y esperar a la sincronización. La primera vez tardará varias horas en función del volumen de datos, pero posteriormente la copia no debería tardar demasiado.

       Tal vez esta solución no sea la más limpia y elegante, puesto que los datos no están al día, hay que acordarse de traer y llevar el disco externo (con un par de notas en Google Calendar se soluciona), pero sin duda es más barata y tienes más control de tus datos :-P

    martes, 6 de octubre de 2009

    Resolviendo los problemas con los juegos de caracteres y Truecrypt en linux

    Ya hablé hace mucho de truecrypt y de lo útil que resulta para llevar información sensible en un pendrive sin miedo a que se pueda perder. El otro día estaba consultando desde linux algunos archivos del volumen cifrado que llevo en mi pendrive y me di cuenta que los caracteres especiales no se veían correctamente:
    ivan@doraemon:/media/truecrypt3/B&S$ ls -l
    total 20
    -rwx------ 1 ivan ivan 4351 2009-07-03 09:11 Ana.png
    -rwx------ 1 ivan ivan 11567 2009-07-03 09:10 Iv?n.png
    -rwx------ 1 ivan ivan 0 2009-08-23 20:42 ??????.txt

    ivan@doraemon:~$ mount | grep /media/truecrypt
    /dev/mapper/truecrypt3 on /media/truecrypt3 type vfat (rw,uid=1000,gid=1000,umask=077)


       La solución es tan sencilla como indicar en las opciones de montaje en truecrypt, en el menú Settings -> Preferences; Tab "Mount Options", que lo monte como utf8.

    Ahora montamos de nuevo el volumen y comprobamos que está como utf8:
    ivan@doraemon:~$ mount | grep /media/truecrypt
    /dev/mapper/truecrypt3 on /media/truecrypt3 type vfat (rw,uid=1000,gid=1000,umask=077,utf8)

    Y que podemos ver sin problemas los nombres de los archivos:
    ivan@doraemon:/media/truecrypt3/B&S$ ls -l
    total 20
    -rwx------ 1 ivan ivan 0 2009-08-23 20:42 áéíóúñ.txt
    -rwx------ 1 ivan ivan 4351 2009-07-03 09:11 Ana.png
    -rwx------ 1 ivan ivan 11567 2009-07-03 09:10 Iván.png



       Ahora ya nada nos impide utilizar nuestro volumen cifrado independientemente del sistema operativo con el que trabajemos y sin los problemas de los juegos de caracteres.

    lunes, 28 de enero de 2008

    Truecrypt en Linux con kernel 2.6.23

       Para el que no lo conozca, Truecrypt es una mágnifica utilidad libre y de código abierto multiplataforma para windows y linux que permite entre otras muchas opciones crear discos virtuales cifrados para poder almacenar nuestra información confidencial de manera segura. Además, proporciona un modo de funcionamiento traveller en el que no es necesario tener nada instalado y que podemos ejecutar desde un pendrive. Así, podemos llevar toda la información de nuestro pendrive cifrada y descifrarla al vuelo y en cualquier ordenador en el momento en que la necesitemos.

       En la web existen numerosos tutoriales sobre cómo crear volúmenes cifrados, las distintas opciones, elegir el algoritmo de cifrado,... Además el apartado de documentación de la web oficial es muy completo y extenso. En este artículo lo que quiero contar es cómo compilar truecrypt en linux utilizando un kernel superior a 2.6.23.

       Lo primero de todo es descargarlo. Existen binarios compilados para unas cuantas distribuciones (OpenSuSE 10.2, OpenSuSE 10.3 y algunas versiones de Ubuntu), pero en mi caso no me servían porque están pensados para el kernel estándar y yo trabajo con una versión compilada por mi del kernel. Así, me descargué el código fuente y me dispuse a compilarlo e instalarlo. Enseguida encontré el primer problema porque nada más empezar la compilación aparecía un error:
    ivan@doraemon:~$ tar zxf truecrypt-4.3a-source-code.tar.gz
    ivan@doraemon:~$ cd truecrypt-4.3a-source-code/Linux
    ivan@doraemon:~/truecrypt-4.3a-source-code/Linux$ sudo ./build.sh
    Checking build requirements...
    Building kernel module... /home/ivan/truecrypt-4.3a-source-code/Linux/Kernel/Dm-target.c: In function `dm_truecrypt_init´:
    /home/ivan/truecrypt-4.3a-source-code/Linux/Kernel/Dm-target.c:659: error: too many arguments to function `kmem_cache_create´
    make[2]: *** [/home/ivan/truecrypt-4.3a-source-code/Linux/Kernel/Dm-target.o] Error 1
    make[1]: *** [_module_/home/ivan/truecrypt-4.3a-source-code/Linux/Kernel] Error 2
    make: *** [truecrypt] Error 2
    Error: Failed to build kernel module

       Buscando un poco de información por la red encontré este post en un foro de Fedora en el que cuentan una solución. Todo pasa por editar el archivo Dm-target.c y en la línea 659 quitar el último NULL.
    //bio_ctx_cache = kmem_cache_create ("truecrypt-bioctx", sizeof (struct bio_ctx), 0, 0, NULL, NULL);
    bio_ctx_cache = kmem_cache_create ("truecrypt-bioctx", sizeof (struct bio_ctx), 0, 0, NULL);

    Ahora, compilando de nuevo:
    ivan@doraemon:~/truecrypt-4.3a-source-code/Linux$ sudo ./build.sh
    Checking build requirements...
    Building kernel module... Done.
    Building truecrypt... Done.

    Instalamos
    ivan@doraemon:~/truecrypt-4.3a-source-code/Linux$ sudo ./install.sh
    Checking installation requirements...
    Testing truecrypt... Done.

    Install binaries to [/usr/bin]:
    Install man page to [/usr/share/man]:
    Install user guide and kernel module to [/usr/share/truecrypt]:
    Installing kernel module...
    Done.
    Installing truecrypt to /usr/bin... Done.
    Installing man page to /usr/share/man/man1... Done.
    Installing user guide to /usr/share/truecrypt/doc... Done.
    Installing backup kernel module to /usr/share/truecrypt/kernel... Done.

       Espero que le pueda servir a alguien porque yo estuve un buen rato buscando hasta que encontré la solución. Ahora ya podemos utilizar esta magnífica herramienta para cifrar toda nuestra información sensible tanto en linux como en windows en nuestro pendrive.

       Como nota final diré que hace unos días han publicado en HowtoForge un artículo con una GUI para el Truecrypt de Linux y unos sencillos pasos para configurarlo y dejarlo todo a punto.