Cifrando partición o disco duro con LVM Luks en Debian / Linux

Hace no mucho cambie el SSD después de las historia que tuve con el SSD crucial que iba peor que el sandisk, que si bien seguía siendo un SSD y que en condiciones normales iba relativamente bien, en algunas tareas pesadas se notaba una gran diferencia en el monitor de disco que uso en es escritorio y claro como no, en el uso real, se quedaba todo colgado.

En fin, nose por que digo todo eso, si el tema dice «cifrando disco duro con LVM Luks» pero el tema es sencillo, cuando hice el cambio aproveche y cambie a 64bits (si seguia en 32 después de mucho tiempo por una app que no tenia soporte aunque la deje de usar, todavía tengo el hueco de la app luego de meses en la barra de tareas:

Si ese que esta al lado de la calculadora, y volviendo al tema, luego del cambio no cifre el disco duro, pues eso, llevo meses preocupado, es una sensación extraña de todo va bien pero tienes ahí eso pendiente, no tienes el disco cifrado y todos los días piensas en ello y no estás tranquilo.

Pues bien, ahora como tengo tiempo he cifrado el disco y he podido dormir 8 horas en paz ( no es para tanto pero es algo así xD )

Pausa: si me dejo palabras pegadas es por que no funciona bien el espacio, no funciona desde que compre el ordenador, no le di mucha importacia por que siempre tengo teclado y monitor externo pero hoy si que le doy importancia aunque la garantia ya paso hace años… estoy metiendo mas relleno que algunos youtubers, pero al final de eso se trata escribo lo que me da la gana y no para ganar minutos, total no tengo ni publicidad

Volviendo altema por quita vez, cifrar el disco duro en Linux no tiene ningún misterio, es mucho más sencilla silo haces cuando instalas el sistema operativo, simplemente seleccionas la opción de cifrado y el instalador lo hace todo, la cosa se complica más cuando ya tienes todo instalado y funcionando, aunque tampoco se complica mucho más, al menos no en mi caso.

Yo siempre divido la pertición / de /home así que en este caso voy a cifrar solo /home total, es lo que me interesa tener cifrado que es donde estan mis datos, archivos todo

Ahora bien ¿ como cifrar sin perder nada ?

Para que esto salga bien, tenemos que:

Hacer un backup de /home, preferiblemente fuera de /home vamos en un disco externo y si hay espacio en otra partición que no se va a cifrar ni tocar ahí puede valer

En mi caso doble backup, en el ordenador de backups y:

cd /home
tar -cvf backup.tar *

Luego ese backup a un pendrive y borrar el backup.tar de home

Punto 2, requisito importante para tener que hacer lo menos posible, /home debe tener más espacio libre que ocupado

¿Por que? muy sencillo, la forma fácil de hacerlo es redimencionando /home en mi caso tenia unos 20 GB ocupados y 150 o más GB libres, con tener algunos GB más es suficiente para no tener que eliminar la partición completa.

La verdad no es que sea mas sencillo, es igual de sencillo, pero en mi caso prefiero mover de una partición a otra y como quiero la segunda partición no me importa, pero is no se quiere particionar es identico el procedimiento, solo que no se particiona y se restaura el backup desde el pendrive una vez montado todo.

La idea aquí es redimencionar la partición, mover los datos de una partición a otra y listo, es una forma de no eliminar la info el inconveniente es que eso deja dos particiones que luego habría que unir, en mi caso me viene bien así y así lo explicaré, aunque el procedimiento es el mismo, yo quería una partición de backups cifrada así que ahí la tengo, por no decir que se me olvido como unir dos particiones cifradas….

Pues ahí vamos, si quieres hacerlo con dos particiones como he hecho yo descargas gparted de este enlace , lo metes en un pendrive y arrancas desde el pendrive.

El procedimiento es muy sencillo, tomando en cuentaque tu pendrive / llave maya / USB Stick es /dev/sdb hacemos lo siguiente

Gparted desde un pendrive / USB

cp gparted-live-0.33.0-1-i686.iso /dev/sdb
sync


NOTA
Es posible que tu pendrive sea /dev/sdb1 pero debes quitar el 1 número, si tienes varios discos es posible que el pendrive sea /dev/sbc o cualquier otra cosa, asegurate de saber donde esta el pendrive o que lo tienes conectado si no vas a borrar todo lo que este tiene y si lo haces a otro disco también te lo cargas

En fin, con eso arrancas ya en el pendrive y re dimensionar la partición, el proceso es muy sencillo, si no sabes buscas en youtube un vídeo pero no tiene misterio, solo debes asegurarte de no redimiencionar la pertición incorrecta, como tenemos backup no nos preocupamos del aviso que te saldrá de que se puede perder información ( total la vamos a borrar posiblemente después )

Si no quieres dos particiones trabajas sobre la misma, eso ya será en modo single user como root y borrando todo o te buscas la vida en unir las dos particiones, no es complicado con LVM de las dos creas dos volúmenes y los unes

En mi caso quedo algo así

/dev/sda3 -> la partición donde es tan los datos
/dev/sda5 -> la partición nueva vacia sin formatear, desde gparted creamos la partición, es indiferente.

Ahora ya fuera de gparted en nuestra sesión de usuario normal, sobre decir que necesitamos root, instalamos cryptsetup se me olvido comentar este paso ya que lo tenia instalado hace mucho

Cifrar partición o disco duro entero con LVM LUKS en Linux y no morir en el intento

apt-get update
apt-get install cryptsetup

Ahora ciframos la partición, cabe mencionar que sabemos cual es, la mia era sda5, todo lo que tenga se borrará así que revisa bien que pongas la buena

cryptsetup luksFormat /dev/sda5

Yo conlas opciones default me conformo en este PC, ustedes pueden leer la docs y si huyen de la CIA pueden cifrar con alguna otra cosa más segura, que tardará mucho más y todo esa historia.

Este paso pedirá contraseña, es la contraseña que pedirá también al arrancar el ordenador o intentar acceder al disco, no pogan 12345, algo seguro, 10 caracteres o más, letras, números, símbolos algo complejo, si usan 12345 o el nombre de tu madre es mejor no cifrar nada.

Cabe mencionar que si pierden la clave están perdidos, no hay forma luego de recuperar nada, así que es mejor que recuerden los símbolos, letras y números que pongan.

Ahora mapeamos el nuevo volumen en LVM

cryptsetup open /dev/sda5 home

En la sentencia anterior home es el nombre que tendrá el volumen, se puede poner el que sea y luego cambiarlo si hace falta, o sea, es lo que vendrá luego de /dev/mapper

En mi caso:

/dev/mapper/home     134G    16G  111G  13% /home

Una vez hecho esto podemos formatear el volumen / crear un sistema de ficheros:

 mkfs.ext4 /dev/mapper/home

Con esto ya tenemos el volumen creado y con sistema de archivos,

NOTA pueden cambiar mkfs.ext4 por otro sistema de archivos, yo suelo usar btrfs también como verán mas abajo es la que he asignado a la partición de backups, aunque con ext4 debe ir bien por defecto para todas las necesidades

Si han escogido no hacer dos particiones ya lo tienen, omitan parte de la información siguiente monten el sistema en /home y restauren el backup, si han escogido dos particiones sigan las instrucciones

Ahora accedemos al volumen y montamos la partición

cryptsetup --type luks open /dev/sda5 home 

mkdir /home2

mount -t ext4 /dev/mapper/home /home2

Ahora tenemos el volumen montadoen /home2

Esto no es para otra cosa que para copiar los datos desde /home

rsync -av /home/ /home2

Así tenemos todo montado en /home2 casi listo para reiniciar, yo recomiendo seguir los siguientes pasos y reiniciar el PC y ver si todo funciona tanto en /home como en /home2 y luego montar /home2 en /home para el uso definitivo, eso no lo voy a explicar por que simplemente es modificar unos datos de la siguiente información que voy a comentar.

Ahora bien, para que la nueva partición /dev/sda5 se monte al inicio y pida la contraseña en el arranque tenemos que modificar el fstab y el crypttab, para eso tenemos que obtenerel nuevo luksUUID de la partición

Modificar /etc/crypttab y /etc/fstab para montar partición cifrada LVM Luks al arranque

El UUID lo sacamos con el propio cryptsetup:

cryptsetup luksUUID /dev/sda5
6581f85b-a59d-4b1c-b3e7-b6d3d6d2c7a2

Mi /etc/crypttab es el siguiente:

home UUID=6581f85b-a59d-4b1c-b3e7-b6d3d6d2c7a2 none luks
backup UUID=a01e2bac-2d8e-4840-a2ce-98cf7249d209 none luks

Es básicamente el nombre, el UUID none que indica que no especificamos contraseña y luks

Y el fstab es el siguiente:

/dev/mapper/home 	/home	        ext4	defaults	0	0
/dev/mapper/backup	/backup		btrfs 	defaults	0	0

NOTA: indiferentemente del nombre que hayan asignado al volumen al darlo de alta en pasos anteriores pueden cambiarlo en /etc/crypttab

O sea si antes asignaron home como nombre, debén poner home ahora aunque pueden poner otra cosa, ese sera el nombre en /dev/mapper y también aparecerá al reiniciar el PC cuando solicite la clave, lo IMPORTANTE es que el nombre del /etc/cyrpttab sea el mismo nombre que en el /etc/fstab por que si no no va arrancar.

En principio con esto debe funcionar todo bien, o sea ahora al reiniciar pedirá la contraseña para desencryptar /home y poder acceder a este sistema de archivos

La pregunta que se hacen muchos es ¿se puede hacer que no pida la clave ?

La respuesta es si, se puede hacer que no pida la clave, pero eso implica o bien dejar la clave en otra partición sin cifrar o modificando el grup, pero, esto hace que el cifrado yla seguridad se vaya al carajo, en mi caso cifro más que nada por si mi ordenador se pierde o me lo roban no tengan acceso a la información, haciendo que arranque sin clave es como no tener cifrado ya que el atacante arrancará el ordenador y luego tendrá que robar la clave de usuario, pero sabiendo que arranca sin contraseña esta debe estar en el ordenador, o sea, sacara el disco, buscará la clave ne la partición no cifrada y listo tendrá la clave del cifrado, robara nuestra informaición.

Por lo tanto si, se puede, pero no tiene sentido es como poner un candado muy grande y difícil de romper y dejar la llave atada al candando por que esta pesa mucho y no quieres cargar con ella.

Si quieres seguridad tendrás que meter la clave cuando el ordenador arranque, total para eso hemos cifrado el disco no ?

En fin, eso es todo, al final han sido 1900 palabras casi para explicar 5 comandos, igual la próxima no me enrollo tanto y solo pego los comandos, aparte de no se porque el corrector de firefox no esta funcionando bien y me marca todo como mal, así que ni se cuantas faltas tendré en este artículo.