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.

6 comentarios:

Vicente Navarro dijo...

Muy interesante y útil.

Yo también me encontré con ese problema y llegué a la misma solución en algún foro o lista de correo, aunque creo que no es el mismo sitio que apuntas tú...

Gracias

Iván dijo...

Hola Super coco, me alegro que de que haya gustado.

Muchas gracias por el comentario.

Saludos, Iván.

bytecoders dijo...

Ostras, esto está muy bien.
Ya se acerca el fin de semana y hay que probarlo.

Muy buena.
Ya té contaré que tal me va.
Gracias :)

Iván dijo...

Bytecoders, pruébalo y verás que no te defrauda. Es muy potente y tiene muchas posibilidades a parte del disco virtual para la información más sensible.
Ya nos dirás qué tal todo...

Saludos, Iván.

bytecoders dijo...

Bueno, ya lo tengo funcionando :)
Tan solo siguiendo las instrucciones, funcionó a la primera. La verdad es que ha dado de sí el fin de semana.
Saludos y gracias

Iván dijo...

Gracias a ti bytecoders por contárnoslo a todos. De todas formas creo que con la versión 5.0 de truecrypt ya no hay estos problemas de cambiar el kernel y tener que recompilar el truecrypt.

A mi no me ha dado tanto de sí el finde y no lo he podido probar.

Saludos, Iván.

Publicar un comentario