Jump to content

Sistema totalmente encriptado y con LVM


Recommended Posts

No creo ser el único que en su disco duro tenga información que puede no ser valiosa para terceros, pero para nosotros vale millones y nos gustaría mantenerla segura, sobre todo cuando usamos laptops y existe el riesgo de que te la roben o asdf. Es por eso que hace un tiempo, me puse a investigar sobre la encriptación de nuestros sistemas en Linux y he encontrado bastantes maneras de poder hacerlo, así que me gustaría compartir con los warianos lo que para mi ha sido lo más cómodo y fácil de hacer hasta el momento, que es encriptar una partición sobre el disco y crear un LVM sobre esta.

 

Para los que no saben, LVM (Logical Volume Management, algo así como Administración de Volúmenes Lógicos), es un sistema que nos permite abstraer una o más particiones o dispositivos físicos para que nuestro sistema lo reconozca como uno solo. Esto a graaaaaandes rasgos, si quieren saber más al respecto, tienen todo internet disponible, pero los grandes puntos por los que me he inclinado a usarlo hace ya como un año, es que permite gestionar nuestras particiones "en caliente", es decir, no es necesario tener desmontadas las particiones para poder redimensionarlas o trabajar en ellas, así que, por ejemplo, si me quedo sin espacio en mi partición para /tmp y tengo de sobra en /home, puedo quitarle espacio a la última para poder agrandar la primera sin necesidad de reiniciar y usar un Live CD, o agregarle espacio usando una memoria USB normal. Son muchísimas las ventajas de usar LVM, así que, los invito a aprender más sobre el sistema. A lo que la guía refiere, les voy a dejar los comandos necesarios para dejar todo funcionando.

 

A lo nuestro. Lo primero que hay que hacer es verificar que en la distro que queramos instalar vengan los paquetes necesarios, que son gparted, lvm2 y cryptsetup. Puede que no vengan por defecto, pero de seguro están en los repositorios, así que, si non están, los instalan. He probado este método en Fedora, Archlinux y Linux Mint, y sólo en la última es que hace falta instalar lvm2. GParted es opcional, pueden ocupar el gestor de particiones que más les acomode. A mi me gusta fdisk, pero para la guía uso el primero porque es más fácil de explicar ;)

 

IMPORTANTE: Cuando una partición o disco se encripta, todo lo que estaba contenido ahí dentro se pierde de manera irrecuperable, así que, por favor respalden sus datos antes de continuar. Es más seguro que respalden en un dispositivo diferente al que van a encriptar. Después no digan que no les dije ;)

 

Ya con nuestros datos respaldados y sabemos que los paquetes ya están instalados, a meter mano.

 

Nota: Para la guía, vamos a usar el disco entero. SI tienen instalado Windows u otra distro, tengan cuidado y estén bien atentos a qué partición corresponde a qué.

 

1.- Abrimos GParted y borramos todas las particiones. Luego creamos una partición de 200MB con formato ext4, y en el espacio restante dejamos una partición SIN FORMATO. La primera partición es para /boot, así que con 200MB alcanza. Obviamente ustedes pueden darle el tamaño que se les antoje. La segunda partición es la que vamos a encriptar y crear nuestro LVM.

 

OJO: /boot debe SI O SI estar en una partición aparte, ya que ahí dentro están los módulos que permite que el kernel lea discos encriptados o LVM.

 

Aplicamos los cambios, nos aseguramos de que en el disco queden dos particiones: una de 200MB en ext4 para boot y una segunda sin formato y cerramos GParted.

 

2.- Abrimos una consola y nos logueamos como root. Dependiendo de la distro, puede ser con su o sudo su.

 

3.- Si hicimos bien el paso 1, si usamos el comando fdisk -l nos debería mostrar dos particiones: /dev/sda1 y /dev/sda2. sda1 es boot, y sda2 es a que vamos a encriptar. Esto puede variar dependiendo de si ustedes dejaron o no más particiones, así que ojo con eso. Para la guía, vamos a encriptar /dev/sda2.

 

4.- A encriptar:

cryptsetup luksFormat /dev/sda2

 

Les va a preguntar si están seguros. Tecleen YES, tal cual, es decir, con mayúsculas. Puede que les pregunte en español si lo tienen configurado así. La verdad es que no sé, pero ahí ven ustedes :rolleyes:

 

Ingresas tu clave y la confirmas. Esta clave se les va a pedir cada vez que inicien el sistema. Si no la dan, simplemente las particiones no se montan, y por ende, el sistema no parte. No está demás decir que usen una clave que no se les vaya a olvidar, o anotarla en algún lugar seguro en caso de falla neuronal :notonto:

 

5.- Ahora que la partición está encriptada, la abrimos para crear nuestro LVM:

cryptsetup luksOpen /dev/sda2 crypted

 

Ingresan la clave y la partición está desbloqueada, lo que quiere decir que está accesible, no montada ni nada. "crypted" es el nombre con el que vamos a acceder a nuestra partición más tarde. Pueden ponerle el nombre que quieran, pero manténganlo corto :tontogay:

 

6.- Crear un LVM consta de 3 pasos: Crear el volumen físico o PV (le decimos a LVM qué dispositivo o partición vamos a usar), crear un grupo de volúmenes o VG (algo así como una canasta de huevos) y crear los volúmenes lógicos o LV (los huevos de la canasta). Los comandos deben ser ingresados de a uno y en el mismo orden que les muestro. Si no hay errores, continúan con el comando siguiente.

pvcreate /dev/mapper/crypted
vgcreate vg0 /dev/mapper/crypted    # vg0 es el nombre del grupo, lo pueden cambiar
lvcreate -L 2G -n lv_swap vg0    # 2GB para swap
lvcreate -L 10G -n lv_root vg0    # 10GB para /
lvcreate -l 100%FREE -n lv_home vg0    # todo lo que queda para /home

 

Con el comando lvcreate es con el que se crean las particiones. Pueden poner las que ustedes quieran, obviamente los tamaños los eligen ustedes.

 

7.- Le damos formato a nuestros volúmenes lógicos. Para la guía, vamos a darle formato ext4 a / y XFS a /home para dar un ejemplo, pero pueden usar el que más les acomode:

mkfs.ext4 -L root /dev/mapper/vg0-lv_root
mkfs.xfs -L home /dev/mapper/vg0-lv_home
mkswap /dev/mapper/vg0-lv_swap

 

Le di formato XFS a home porque es más cómodo con archivos más grandes, pero tiene el inconveniente de que este formato sólo puede crecer y NO achicarse si es que les sobra mucho espacio. Son algunas de las cosas que hay que tomar en cuenta.

 

Y LISTO!! Ahora cuando vayan a instalar su distro favorita, usan el particionador manual y editan de a una las particiones eligiendo el punto de montaje que corresponda.

 

 

En Arch hacen falta un par de modificaciones para que funcione. Estas modificaciones se hacen al final de la instalación, cuando editamos los archivos de configuración.

 

* /etc/rc.conf

Donde dice USELVM="no" le ponemos USELVM="yes"

 

* /etc/mkinitcpio.conf

Debemos agregar encrypt y lvm2 antes de filesystems y en ese orden a los HOOKS, es decir, debe quedar algo como esto:

HOOKS="base udev autodetect pata scsi sata encrypt lvm2 filesystems"

 

* /boot/grub/menu.lst

Acá debemos modificar los argumentos del kernel de "Arch Linux" y "Arch Linux Fallback". Entre root=... y ro agregamos:

cryptdevice=/dev/sda2:vg0

 

 

 

La razón por la que dejé swap dentro de la partición encriptada es porque a veces se guarda información que puede ser delicada dentro de esta partición y en formato plano, es decir, es muy fácil de leer. Esto es sólo para paranoicos como yo, pero pueden dejarla fuera de la partición encriptada y del LVM.

 

Puede parecer engorroso y complicado, pero en realidad no lo es tanto. De todas maneras les recomendaría hacerlo en una máquina virtual para que se vayan acostumbrando antes de lanzarse a hacerlo en su disco duro.

 

Esta guía es en su totalidad creada por mí y para ChileComparte, así que, cualquier duda, la dejan acá no más. Ojalá les sirva :banana:

 

Saludos!! :linux:

Edited by AlldнaM
Link to comment
Share on other sites

  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...