Está en la página 1de 12

Cifrado de particiones con LUKS.

Introduccin.

LUKS (Linux Unified Key Setup-on-disk-format) es una implementacin muy sencilla de utilizar para
la gestin de particiones y unidades de almacenamiento cifradas en GNU/Linux. Se recomienda su uso
en dispositivos mviles, computadoras porttiles y dispositivos de almacenamiento cuya informacin
se desee proteger en caso de extravo o robo.
Las particiones o unidades de almacenamiento externo cifradas con LUKS, pueden ser utilizadas desde
Windows utilizando FreeOTFE.
Este documento describe los procedimientos para cifrar una particin de disco duro, asignada al punto
de montaje /datos. Cabe sealar que el procedimiento har que todos los datos de esta particin se
pierdan. Si la particin contiene datos de algn tipo, se debe respaldar todo antes de proceder y
verificar que el respaldo est completo e integro, para luego restaurar estos datos despus de terminar el
procedimiento.
Equipamiento lgico necesario.
En CentOS, Fedora y Red Hat Enterprise Linux.

Por lo general el paquete cryptsetup-luks viene instalado de manera predeterminada. Puede instalar el
paquete correspondiente ejecutando lo siguiente:
yum -y install cryptsetup-luks

En openSUSE y SUSE Linux Enterprise.

Por lo general el paquete cryptsetup viene instalado de manera predeterminada. Puede instalar el
paquete correspondiente ejecutando lo siguiente:
yast -i cryptsetup

Procedimientos.

A fin de evitar contratiempos, conviene realizar todos los procedimientos desde el nivel de ejecucin 1
(mono usuario). Como root ejecute:
init 1

Antes de proceder, es muy importante cerciorarse de qu dispositivo se va a utilizar para el


procedimiento. De ser necesario y s acaso estuviese montada, ejecute df para determinar que
dispositivo corresponde a la particin que se desea cifrar.
df -h

Respalde todos los datos de la particin que necesite cifrar. Copie o mueva, los datos hacia otro
dispositivo de almacenamiento. El procedimiento eliminar, de manera inevitable, todo el
contenido actual de dicha particin.
mkdir -p /var/respaldo/datos/
tar cpf /var/respaldo/datos.tar /datos/

Antes de continuar ser una buena idea que verifique y compruebe que el respaldo es confiable.

Cifrado de una particin existente en CentOS, Fedora y Red Hat Enterprise


Linux.

El algoritmo de ciframiento utilizado de modo predeterminado por LUKS es aes-cbc-essiv:sha256 y el


tamao de la firma es de 256 bits. El algoritmo de ciframiento utilizado por Anaconda el programa
de instalacin de CentOS, Fedofra;trade; y Red Hat Enterprise Linux para LUKS es aes-xtsplain64 y el tamao de la firma es de 512 bits es decir se utilizan las opciones --cipher con el valor
aes-xts-plain64:sha512 y --key-size con el valor 512.
Salvo que se realice el procedimiento desde la instalacin del sistema operativo donde slo se
requiere habilitar la casilla de Cifrar particin estas distribuciones carecen de una herramienta para
hacer el procedimiento fcil. Es necesario hacer uso del intrprete de mandatos.
Una vez hecho el respaldo y que haya verificado que el respaldo es confiable, desmonte la particin
que se pretende cifrar:
umount /datos

El siguiente paso es opcional, pero se recomienda llevarlo a cabo, pues mejora el cifrado al llenar
previamente la particin con datos aleatorios. Debe tomarse en consideracin que
&mdahs;dependiendo del tamao de la particin sto puede demorar varias horas o incluso das.
dd if=/dev/urandom of=/dev/sdaX bs=4096

La particin a utilizar se debe preparar ejecutando cryptsetup, con las opciones --verbose (para
obtener una salida ms descriptiva en caso de problemas), --verify-passphase (para asignar una frase
de acceso o bien una contrasea), luksFormat para dar formato en LUKS y el nombre del dispositivo.
cryptsetup --verbose --verify-passphrase luksFormat /dev/sdaX

Lo anterior requerir responder explcitamente con YES, en maysculas, que se desea proceder y que
se est consciente que se perdern todos los datos actuales de la particin. A continuacin, se pulsa la
tecla ENTER y se ingresa la nueva frase o bien la nueva contrasea, que se pretenda asignar.
Una vez realizado lo anterior y para poder hacer uso de la nueva particin cifrada, ejecute cryptsetup
con la opcin luksOpen, indicando el dispositivo que corresponde a la particin que se acaba de cifrar
y el nombre que se quiera asignar a sta en el planificador de dispositivos (device mapper).
cryptsetup luksOpen /dev/sdaX datos

Lo anterior crea un nuevo dispositivo denominado /dev/mapper/datos.


Para que el sistema operativo pueda utilizarlo, este nuevo dispositivo requiere ser formateado. En el
siguiente ejemplo se da formato en ext4 a /dev/mapper/datos:
mkfs.ext4 /dev/mapper/datos

A fin de que el sistema solicite automticamente la frase de acceso o bien la contrasea, al volver
iniciar el sistema, se crea o edita el archivo /etc/crypttab:
vim /etc/crypttab

Dentro de ste se define en el primer campo el nombre que se quiera utilizar para el planificador de
dispositivos (device mapper), en el segundo campo se define el nombre del dispositivo que se cifr y en

el tercer campo se define none. De manera opcional, aunque poco recomendado, se puede especificar
la frase de acceso o bien la contrasea o bien un archivo que contenga sta, en lugar de none para que
el sistema inicie sin necesidad de que el administrador ingrese la frase de acceso o bien la contrasea.
datos

/dev/sdaX

none

Edite el archivo /etc/fstab:


vim /etc/fstab

Aada lo siguiente o bien se reemplaza el nombre del dispositivo anterior (UUID=xxxxxxxxxxxx,


/dev/sdaX o LABEL=/datos, dependiendo de la versin del sistema operativo) como
/dev/mapper/datos para que el sistema operativo utilice automticamente el dispositivo con el
siguiente reinicio:
/dev/mapper/datos

/datos

ext4

defaults,noatime,nodiratime

1 2

Ejecute lo siguiente para montar la particin cifrada:


mount /datos

Restaure los datos que respald previamente.


tar xvf /var/respaldo/datos.tar -C /

Restaure los atributos y contextos de SELinux del directorio involucrado.


restorecon -R /datos

Desmonte la particin:
umount /datos

Desconecte el dispositivo ejecutando cryptsetup, con la opcin luksClose y el nombre del dispositivo,
de acuerdo a como lo vea el planificador de dispositivos:
cryptsetup luksClose /dev/mapper/datos

El archivo initramfs de ALDOS, CentOS, Fedora y Red Hat Enterprise Linux ya incluye los
mdulos para cifrado con LUKS y el mapa de dispositivos. Si lo considera pertinente o bien porque el
sistema est utilizando un archivo initramfs distinto al que originalmente vena con el paquete kernel,
puede regenerar la imagen de disco RAM que utiliza el ncleo del sistema para cargar los controladores
necesarios, ejecutando dracut con la opcin -f para forzar la operacin y el archivo del archivo
initramfs correspondiente como argumento, la versin del ncleo utilizado, la opcin -a para aadir
mdulos de dracut y los nombres de los mdulos dm y crypt como argumentos. El siguiente ejemplo
detecta automticamente el nombre del archivo initramfs y la versin del ncleo que corresponda:
dracut -f /boot/initramfs-`uname -r`.img `uname -r` -a dm crypt

Reinicie el sistema. En adelante, para poder iniciar el sistema y as acceder a la particin cifrada, se
solicitar la contrasea o frase de acceso definida durante el procedimiento.
Cifrado de una particin existente en openSUSE y SUSE Linux Enterprise.

El algoritmo de ciframiento utilizado de modo predeterminado por LUKS es aes-cbc-essiv:sha256 y el


tamao de la firma es de 256 bits.

Realice un respaldo de toda la informacin contenida en la particin que se quiera cifrar. Recuerde que
el procedimiento requiere destruir toda la informacin existente en dicha particin.
Ejecute yast con disk como argumento para utilizar el mdulo de YaST para gestin de discos y
particiones.

El sistema le advertir que slo se debe utilizar este mdulo de YaST si se entiende perfectamente el
concepto de particiones. Responda Yes o Si. Slo siga las siguientes instrucciones. El ejemplo descrito
a continuacin considera que se tiene una particin /dev/sdb1 y que actualmente se utiliza con el
directorio /datos como punto de montaje.
Use la tecla TAB hasta seleccionar la particin que requiera cifrar.

Pulse la tecla ENTER. Aparecer un resumen informativo de la particin seleccionada. Seleccione


Edit o Editar.

Aparecern las opciones que se pueden aplicar a la particin.

Seleccione las casillas de las opciones Format partition (o bien Formatear particin) y Encrypt
partition (o bien Cifrar particin).

Use la tecla TAB hasta seleccionar Next o Siguiente y pulse la tecla ENTER.

Utilice la tecla TAB y defina una buena contrasea con confirmacin. Recuerde que si olvida o extrava
esta contrasea, la informacin ser irrecuperable. Al terminar, utilice la tecla TAB para seleccionar
Finish o Finalizar y pulse la tecla ENTER.

Regresar a la pantalla con el resumen de la particin seleccionada. Use la tecla TAB para seleccionar
Next o Siguiente y pulse la tecla ENTER.

Se mostrar una pantalla con el resumen de los procedimientos que realizar YaST. Use la tecla TAB
para seleccionar Finish o Finalizar y pulse la tecla ENTER o bien slo pulse la tecla F10.

El sistema realizar todos los procedimientos y cambios necesarios en el sistema indicando el avance
de stos con barras de progreso.

Al terminar, YaST finalizar y lo devolver al intrprete de mandatos.

YaST se encarga de generar automticamente la imagen de disco RAM utilizada por el ncleo del
sistema para cargar los controladores necesarios y a fin de aadir el soporte necesario para gestor de
dispositivos.
Reinicie el sistema ejecutando reboot:

Se har una pausa con un dilogo para solicitar la contrasea necesaria para poder desbloquear el
dispositivo cifrado cuando inicie de nuevo el sistema.

El sistema deber continuar el inicio de manera normal luego de ingresar la contrasea.


Restaure los datos correspondientes a partir del respaldo que debi realizar previamente.

Cifrado de una unidad de almacenamiento externo USB.

El procedimiento asume que ya se ha realizado un respaldo de los datos de la unidad de


almacenamiento externo USB, pues el procedimiento implica la destruccin de los datos existentes en
sta.
Conecte el dispositivo USB y ejecute dmesg del siguiente modo para determinar que particin que
corresponda al dispositivo.
dmesg |grep sd

Lo anterior debe devolver algo similar a lo siguiente.


[
[
[
[
[
[
[
[
[
[
[
[

1368.902764]
1368.904999]
1368.906562]
1368.906572]
1368.907176]
1368.907183]
1368.910295]
1368.910303]
1369.174678]
1369.182877]
1369.182886]
1369.182892]

sd 6:0:0:0:
sd 6:0:0:0:
sd 6:0:0:0:
sd 6:0:0:0:
sd 6:0:0:0:
sd 6:0:0:0:
sd 6:0:0:0:
sd 6:0:0:0:
sdb: sdb1
sd 6:0:0:0:
sd 6:0:0:0:
sd 6:0:0:0:

Attached scsi generic sg2 type 0


[sdb] 4122624 512-byte logical blocks: (2.11 GB/1.96 GiB)
[sdb] Write Protect is off
[sdb] Mode Sense: 03 00 00 00
[sdb] No Caching mode page present
[sdb] Assuming drive cache: write through
[sdb] No Caching mode page present
[sdb] Assuming drive cache: write through
[sdb] No Caching mode page present
[sdb] Assuming drive cache: write through
[sdb] Attached SCSI removable disk

Si el sistema realiz el montaje automtico de la unidad de almacenamiento externo, determine el punto


de montaje y dispositivo asignado ejecutando df sin argumentos.
df

Asumiendo que el sistema asign el directorio /media/MI-USB como punto de montaje, desmonte la
unidad ejecutando lo siguiente:
umount /media/MI-USB

Asumiendo que la particin de la unidad de almacenamiento externo corresponde al dispositivo


/dev/sdb1, ejecute cryptsetup, con las opciones --verbose (para obtener una salida ms descriptiva en
caso de problemas), --verify-passphase (para asignar una frase de acceso o bien una contrasea),
luksFormat para dar formato en LUKS y el nombre del dispositivo.
cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb1

Lo anterior requerir responder explcitamente con YES, en maysculas, que se desea proceder y que
se est consciente que se perdern todos los datos actuales de la particin. A continuacin, se pulsa la
tecla ENTER y se ingresa la nueva frase o bien la nueva contrasea, que se pretenda asignar.
Una vez realizado lo anterior, para poder hacer uso de la nueva particin cifrada en la unidad de
almacenamiento externo USB, ejecute cryptsetup con la opcin luksOpen, indicando el dispositivo
que corresponde a la particin que se acaba de cifrar y el nombre que se quiera asignar a sta en el
planificador de dispositivos (device mapper).
cryptsetup luksOpen /dev/sdb1 MI-USB

Lo anterior crea un nuevo dispositivo denominado /dev/mapper/MI-USB.


Para que el sistema operativo pueda utilizarlo, este nuevo dispositivo requiere un formato que pueda ser
utilizado en cualquier sistema operativo. En el siguiente ejemplo se da formato en FAT32 a
/dev/mapper/MI-USB:

mkfs.vfat /dev/mapper/MI-USB

Monte la particin de la unidad de almacenamiento externo en /media/MI-USB:


mkdir /media/MI-USB
mount /dev/mapper/MI-USB /media/MI-USB

Restaure o copie los datos que requiera utilizar en esta unidad de almacenamiento.
Desmonte la unidad.
umount /media/MI-USB

Desconecte el dispositivo cifrado:


cryptsetup luksClose /dev/mapper/MI-USB

Para utilizar en lo sucesivo la unidad de almacenamiento externo USB desde modo terminal, sin
escritorio activo, se sigue el siguiente procedimiento:
mkdir /mnt/mi-usb
cryptsetup luksOpen /dev/sdb1 mi-usb
mount /dev/mapper/mi-usb /mnt/mi-usb

Para utilizar la unidad de almacenamiento externo USB cifrada con LUKS desde el escritorio de
GNOME o KDE, se inserta sta en cualquier puerto USB, dejando que el administrador de archivos se
encargue de gestionar lo necesario y mostrar el dialogo para ingresar la clave o frase de acceso
necesaria.
Para utilizar la unidad de almacenamiento externo USB cifrada con LUKS desde el escritorio
Windows, slo hay que instalar FreeOTFE, insertar la unidad a cualquier puerto USB, permitiendo
que FreeOTFE se encargue de gestionar lo necesario y mostrar el dialogo para ingresar la clave o frase
de acceso necesaria. Sin FreeOTFE, Windows solo vera una unidad de almacenamiento externo USB
sin formato, mostrando un dialogo para dar formato a sta.