Cifrado completo de S.O con Ubuntu 7.04 Feisty, Dm-crypt y luks
En el presente artículo se explicará como instalar y configurar Ubuntu 7.04 para que el sistema esté completamente cifrado mediante el uso de dm-crypt y Luks.
El entorno empleado es el siguiente:
Vmware 5.5.0.
Disco virtual de 8 GB.
S.O: Ubuntu 7.04
Las pruebas también se realizaron en el siguiente entorno:
Paralells Desktop 3 build 4128,
384mb ram, 8gb de disco, y tipo Linux / other 2.6 kernel
Importante: se formateará el disco por lo que se perderá toda la información que contenga, es necesario hacer backup o copia de seguridad a un disco externo o a otro sistema, todo lo que no sea copiado en dicho backup se perderá esto implica todos los datos. El proceso indicado en este artículo podría no funcionar en otros entornos por lo tanto no hay garantía de éxito y su sistema podría quedar inoperativo.
En alguno de los pasos de instalación en memoria el proceso puede parecer que se ha quedado parado, habrá que tener un poco de paciencia y esperar. De la misma manera sucede con alguna de las actualizaciones (update) que tardará en función de nuestro ancho de banda.
Comenzamos la instalación mediante el sistema Live y creamos una configuración inicial siguiendo los siguientes pasos:
PASO 1. COMENZANDO EL PROCESO
Arrancamos el LiveCD y configurar las opciones de idioma y teclado correctamente.
Seleccionamos el idioma con F2. Posteriormente Iniciar o Instalar Ubuntu.

En este punto comenzará el proceso de instalación de LiveCd, es decir su carga en memoria.
PASO 2. PREPARANDO LA INSTALACIÓN A DISCO
Una vez finalizada la instalación en memoria, ejecutaremos en un terminal el siguiente comando:
#sudo -i

de esta forma obtendremos privilegios de root.
Editamos el fichero /etc/apt/sources.list para descomentar el repositorio universe.
El fichero modificado deberá quedar como se ve en la siguiente imagen:

Guardamos los cambios y salimos.
PASO 3. ACTUALIZACIÓN DEL SISTEMA E INSTALACIÓN DE HERRAMIENTAS NECESARIAS
En este paso ejecutaremos el siguiente comando
# aptitude update && aptitude install cryptsetup gparted
Este comando permitirá actualizar el sistema e instalar cryptsetup (para cifrado) y gparted para realizar las particiones.

Una vez finalizada la ejecución de dicho comando pasaremos al siguiente paso para comenzar el particionado del disco.
PASO 4 - CREACIÓN DE PARTICIONES
La distribución de particiones será la siguiente, una partición de boot que no irá cifrada que servirá para arrancar el sistema, una partición de swap y una tercera partición con el resto del disco duro para la instalación del sistema cifrado. A veces es interesante crear una partición para montar /home, en este documento este proceso no se realiza.
Para comenzar el proceso de creación de particiones ejecutaremos gparted y particionar el disco de la siguiente forma:
- 100 MB para /boot (sin formato)
- El doble de RAM para la SWAP, en este caso figuran 400 MB de ram luego serán 800 MB (formato linux-swap)
- Partición para /root (sin formato)
PASO 5 - INSTALACIÓN DE MODULOS DE CIFRADO Y LUKS
Primero se cargarán los módulos necesarios mediante el comando:
# for mod in dm_crypt sha256 aes_i586; do modprobe $mod; done
A continuación ejecutaremos el siguiente comando para configurar el cifrado de la partición /root:
# cryptsetup –-verify-passphrase –-verbose –-hash=sha256 –-cipher=aes-cbc-essiv:sha256 -–key-size=128 luksFormat /dev/sda3
Para confirmar este comando teclearemos YES en mayusculas.
En este momento se nos pedira que introduzcamos dos veces la contraseña, esta contraseña será la que utilizaremos para cargar las particiones por lo que no se nos podrá olvidar.

A continuación teclearemos el siguiente comando:
# cryptsetup luksOpen /dev/sda3 root
Nos pedirá la contraseña que hemos generado.
PASO 6 - INSTALACIÓN EN EL DISCO DE LA DISTRIBUCIÓN
Formatearemos la partición de root ubicada en /dev/mapper/root
para ello ejecutaremos el siguiente comando:
# mkfs.ext3 /dev/mapper/root

Arrancamos la instalación a disco seleccionando el icono del escritorio Instalar.
- Seleccionamos el IDIOMA.
- Seleccionamos la Región y Zona horaria.
- Seleccionamos el tipo de teclado en este caso Spain / Spain.
Una vez seleccionado el tipo de teclado se presentará la pantalla de Particionado, seleccionaremos Manual.
Se nos presentará una pantalla con el estado actual de las particiones, la configuración que realizaremos será la siguiente:
/dev/mapper/root en / (ext3) y formatear
/dev/sda1 la marcaremos como ext3, activa y formatear y será montada en /boot
/dev/sda3 no montada
Dejar la partición de la swap como swap.
A continuación se nos ofrecerá la opción de migrar documentos y configuraciones, en nuestro caso seleccionaremos que no.
- Crearemos un usuario con sus distintas opciones:

Una vez creado el usuario, para comenzar la instalación se pedirá confirmación en una pantalla como la siguiente:

IMPORTANTE: Al finalizar el proceso de instalación el sistema nos preguntará si queremos reiniciar el sistema, elegiremos CONTINUAR TRABAJANDO CON EL LIVECD.

PASO 7: MONTAJE DE PARTICIONES, CHROOT Y ACTUALIZACIÓN.
En un terminal ejecutaremos los siguientes comandos, primero ejecutaremos
#sudo -i
para que los comandos se ejecuten como root.
A continuación la siguiente serie de comandos:
# mount /dev/mapper/root /target
# mount /dev/sda1 /target/boot
# for dir in proc dev sys; do mount –-bind /$dir /target/$dir; done
# cd /dev; MAKEDEV generic
# chroot /target
# aptitude update
El resultado de estos comandos puede verse en la siguiente imagen:

Una vez finaliza el proceso de actualización pasamos a actualizar la distribución con el siguiente comando:
# aptitude –y dist-upgrade

Y a continuación ejecutaremos el siguiente comando:
# aptitude install cryptsetup

PASO 8: ESTABLECIENDO EL MONTAJE DE PARTICIONES DEFINITIVO
Modificar el fichero /etc/crypttab, el resultado debe ser el siguiente:
#
swap /dev/sda2 /dev/urandom /swap
root /dev/sda3 none luks
Editar el fichero /etc/fstab.
Comentar la línea donde aparece la palabra swap:
#UUID=9fe467bd-7b40-4921-9c2c-3f0c9ab3a0ce none /dev/mapper/swap sw 0 0
E incluir la siguiente línea:
/dev/mapper/swap none swap sw 0 0
Para agilizar la carga de los módulos crearemos el siguiente alias en el fichero /etc/modprobe.d/aliases
#alias aes aes_i586

PASO 9: CONFIGURACIÓN DEL GESTOR DE ARRANQUE GRUB
Actualizamos GRUB para que actualice los cambios realizados en los puntos anteriores mediante los siguientes comandos:
#update-grub

#update-initramfs -u

Editamos el grub en menu.lst para que el grub al iniciarse muestre por pantalla los posibles mensajes de error, quitando "quiet splash" así en el caso de que falle podremos solventar los problemas que se encuentren.
Una vez iniciado el sistema si no hemos identificado errores podemos volver a restaurar la configuración original de grub incluyendo de nuevo "quiet splash".
PASO 10: FIN DEL PROCESO
Para finalizar el proceso ejecutaremos los siguientes comandos:
#exit
#umount /target/{proc,dev,sys,boot}
#umount /target (falla al desmontar)
#reboot
Enlaces relacionados:
http://luks.endorphin.org/dm-crypt
Agradecimientos:
Pablo Catalina.
Juan de la Fuente Costa.
Hacktimes Staff.


Comentarios
Actualmente esta configuración sería mucho más simple si utilizásemos para ello una de las instalaciones alternate de Ubuntu, http://www.ubuntu.com/GetUbuntu/downloadmirrors#alternate básicamente sería seguir los pasos del instalador e indicar que se quiere cifrar el sistema completo.
Añadir comentario