19 de octubre de 2010

BackTrack4 persistente en un USB cifrado: Modificaciones en el arranque

Anteriormente hemos creado las particiones, las hemos cifrado y utilizados con LVM para crear volúmenes lógicos e instalado el sistema operativo. En esta última entrada paso a describir las modificaciones necesarias para que arranque desde la unidad USB y pueda acceder a la información cifrada que contiene.

Es necesario conocer el UUID de la partición cifrada y guardarlo (en un documento de texto, en otra consola, el portapapeles...)

vol_id /dev/sdb5
[...]
ID_FS_UUID=550e8400-e29b-41d4-a716-446655440000
[...]

Lo siguiente que vamos a hacer es montar las particiones y enjaularlas con chroot para poder actualizar el sistema, editar los archivos de configuración o realizar cualquier otra modificación. Inicialmente creamos la carpeta donde montar el sistema.

mkdir /mnt/backtrack4
# Montamos el volumen lógico raíz
mount /dev/mapper/vg-root /mnt/backtrack4
# Montamos la partición /boot
mount /dev/sdb1 /mnt/backtrack4/boot

Ahora nos enjaulamos en el sistema con el siguiente comando; podemos notar que hemos accedido dado que se modifica el pront de la consola, pasando de la almohadilla (#) a la raíz (/).

chroot /mnt/backtrack4

Una vez dentro de la jaula, montamos el sistema de archivos proc y sys con los comandos:

mount -t proc proc /proc
mount -t sysfs sys /sys

Actualizamos la lista de paquetes y los paquetes obsoletos:

aptitude update
aptitude safe-upgrade

Instalamos los paquetes hashalot y lvm2 dado que anteriormente los hemos instalado en el sistema live pero no en el recién instalado en la memoria USB.

aptitude install hashalot lvm2

Ahora necesitamos una serie de scripts con los que poder ejecutar la partición cifrada en el arranque del dispositivo. Accedemos al directorio /etc/initramfs-tools/hooks y descargamos el script hooks-pvcrypt* y le damos permisos de ejecución. Este script copiará los archivos necesarios a la imagen initrd.

cd /etc/initramfs-tools/hooks
wget -O pvcrypt http://www.infosecramblings.com/hooks-pvcrypt
chmod +x pvcrypt

Hacemos lo mismo en el directorio /etc/initramfs-tools/scripts/local-top para el script local-top-pvcrypt*. Este script abrirá la partición cifrada solicitando previamente la frase de paso.

cd /etc/initramfs-tools/scripts/local-top
wget -O pvcrypt http://www.infosecramblings.com/local-top-pvcrypt
chmod +x pvcrypt

Editamos el script para indicarle el UUID que anteriormente hemos guardado, podemos utilizar el editor de texto con el que trabajemos mejor.... Al final del script aparece el comando para abrir el contenedor cifrado pvcrypt:

/sbin/cryptsetup luksOpen /dev/disk/by-uuid/UUID pvcrypt

Modificamos "UUID" por el de la partición quedando de la siguiente manera:

/sbin/cryptsetup luksOpen /dev/disk/by-uuid/550e8400-e29b-41d4-a716-446655440000 pvcrypt

Modificamos el archivo /etc/initramfs-tools/modules para añadir al kernel los módulos criptográficos aes y xts:

vim /etc/initramfs-tools/modules
[...]
aes_i586
xts
[...]

y actualizamos (reconstruimos) la imagen de inicio RAM para que se cargen los scripts descargados y los módulos del kernel anteriores.

update-initramfs -u

Ejecutamos el comando fix-splash que nos creará un nuevo archivo con las opciones de arranque, menu.lst, con los comandos:

cd /etc/initramfs-tools/scripts/local-top
fix-splash

Ahora arrancamos desde la unidad USB para comprobar que todo funciona correctamente y nos loguemos en el sistema como root con la pass toor

shutdown -r now

Un saludo, Brixton Cat ;).

No hay comentarios:

Publicar un comentario

Bienvenid= si quieres dejar un comentario