Como desbloquear raiz LUKS por SSH

De GiLUG
Dreceres ràpides: navegació, cerca

Català - Castellano - English


Introducción: Esta es una guía simple para dar acceso a la red, para que se introduzca remotamente la frase de paso (contraseña) en el arranque de un sistema ya encriptado incluyendo la raíz. De esta manera no es imprescindible acudir presencialmente a escribirla con el teclado.

Notas:

  • Comprobado con Debian GNU/Linux 7 (wheezy), aunque el método debería funcionar con versiones anteriores y otras distribuciones de GNU con Linux.
  • Es importante considerar que, tener el núcleo con el desencriptador en una partición sin encriptar, es un punto débil. El método más seguro es tener TODO el disco duro encriptado, y pues arrancar presencialmente con una memoria externa (como /boot en una memoria USB) y, al haber desbloqueado el sistema, llevarnos esa memoria con el software intacto en nuestras manos.

Preparar el desbloqueo LUKS remoto

Desde el sistema cifrado

  • Instale el software para el servicio SSH y de intérprete de comandos Shell:
apt-get install dropbear busybox
  • Configure la red para la etapa de arranque del núcleo, estableciendo esta variable en el fichero /etc/default/grub
GRUB_CMDLINE_LINUX="ip=192.168.1.33::192.168.1.1:255.255.255.0::eth0:none"

(Ejemplo para una dirección IP 192.168.1.33, puerta de enlace 192.168.1.1 y dispositivo de red eth0)

  • Actualice el gestor de arranque con los nuevos datos para el núcleo:
update-grub
  • Copie el certificado especial de entrada al equipo remoto, desde donde pedirá el desbloqueo:
scp -P 22 /etc/initramfs-tools/root/.ssh/initramfs_rsa UsuarioRemoto@EquipoRemoto:/home/UsuarioRemoto/cifrado.example.net_initramfs-rsa

(Ejemplo con UsuarioRemoto de la IP EquipoRemoto y etiquetando el servidor como cifrado.example.net)

En el sistema remoto

(equipo desde donde quiere enviar la orden de desbloqueo)

  • (opcional) Por seguridad, mover el certificado al perfil de superusuario (root):
mkdir -p /root/.ssh
mv ~/*_initramfs-rsa /root/.ssh/
  • Instrucción a dar (con los datos de ejemplo) cuando el sistema encriptado espera la frase de paso (línea larga):
ssh -o "UserKnownHostsFile=/root/.ssh/known_hosts.initramfs" -i "/root/.ssh/cifrado.example.net_initramfs-rsa" root@cifrado.example.net "echo -ne \"1234\" >/lib/cryptsetup/passfifo ; ip addr flush dev eth0 &"

(Ejemplo con contraseña 1234, y que desconfigura la red del sistema encriptado para que no interfiera en el sistema normal)

Otras fuentes