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-xts-plain64 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/sdaXnone
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] sd 6:0:0:0: Attached scsi generic sg2 type 0[
1368.904999] sd 6:0:0:0: [sdb] 4122624 512-byte logical blocks:
(2.11 GB/1.96 GiB)[ 1368.906562] sd 6:0:0:0: [sdb] Write Protect is
off[ 1368.906572] sd 6:0:0:0: [sdb] Mode Sense: 03 00 00 00[
1368.907176] sd 6:0:0:0: [sdb] No Caching mode page present[
1368.907183] sd 6:0:0:0: [sdb] Assuming drive cache: write through[
1368.910295] sd 6:0:0:0: [sdb] No Caching mode page present[
1368.910303] sd 6:0:0:0: [sdb] Assuming drive cache: write through[
1369.174678] sdb: sdb1[ 1369.182877] sd 6:0:0:0: [sdb] No Caching
mode page present[ 1369.182886] sd 6:0:0:0: [sdb] Assuming drive
cache: write through[ 1369.182892] sd 6:0:0:0: [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
opcinluksOpen, 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-USBmount /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-usbcryptsetup luksOpen
/dev/sdb1 mi-usbmount /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.