Cuando instalé Ubuntu 10.04 y, ahora, 10.10, me ofrecieron la opción de habilitar "LVM cifrado" para mi disco duro. Después de elegir esa opción, se me solicita mi contraseña durante el arranque para descifrar el LVM.
Ahora, estoy pensando en configurar un servidor sin cabeza que ejecute Linux (no necesariamente Ubuntu), pero me preocupa que, dado que el servidor no tiene cabeza, no pueda descifrarlo durante el inicio. ¿Podría ingresar SSH durante el arranque para ingresar mi contraseña para el LVM cifrado? Si es así, ¿cómo lo configuro? ¿O hay otra solución? Nuevamente, esta pregunta NO es específica de Ubuntu. Gracias.
zless /usr/share/doc/cryptsetup/README.remote.gz
Respuestas:
Para las versiones más nuevas de ubuntu, por ejemplo, 14.04, encontré una combinación de @dragly y las respuestas de este blog son muy útiles. Parafrasear:
(En el servidor) Instalar Dropbear
(En el servidor) Copie y asigne permisos para el inicio de sesión de clave pública / privada raíz
recuerde cambiar el usuario a su nombre de usuario en el servidor
(En el cliente) Obtener clave privada del servidor
(En el cliente) Agregue una entrada a ssh config
(En el servidor) Cree este archivo en
/etc/initramfs-tools/hooks/crypt_unlock.sh
(En el servidor) Hacer que ese archivo sea ejecutable
Actualiza los initramfs
Deshabilite el servicio dropbear en el arranque para que openssh se use después de descifrar la partición
Ya terminaste Pruébalo. Consulte la publicación del blog vinculada a arriba para obtener instrucciones sobre cómo configurar el servidor con una dirección IP estática si eso es algo que debe hacer.
fuente
/etc/initramfs-tools/root/.ssh/authorized_keys
, incluso si todavía se copia la clave privada de Dropbear, que se puede ignorar por completo. Seguir el resto de las instrucciones funciona para mí, lo que significa que esta debería ser la respuesta aceptada (una vez que refleja ese cambio), ya que solo usa claves públicas.En esta publicación de blog se muestra una guía para realizar dicha configuración con BusyBox y Dropbear . early-ssh no funcionó para mí y aparentemente ya no es necesario.
He resumido lo que debe hacer a continuación. Para más detalles, eche un vistazo a la publicación anterior:
Instale BusyBox y Dropbear en su servidor
Actualiza tus initramfs en el servidor
Copie la clave privada generada por dropbear en su máquina cliente. Es posible que deba copiar esto en un nuevo directorio y cambiar la propiedad para hacerlo. En su servidor haga lo siguiente:
Recuerde reemplazar el usuario con su nombre de usuario. Los inicios de sesión de contraseña no parecen funcionar.
Ahora puede transferir la clave privada con scp llamando a lo siguiente en su cliente :
Configure el archivo ~ / .ssh / config de su cliente para iniciar sesión fácilmente. Ábralo con un editor de texto y agregue lo siguiente:
Cambie el Host a lo que quiera y HostName al nombre de su servidor. Deje que el usuario sea root. Parece ser el único usuario aceptado en Dropbear. Guarde y cierre el archivo.
Reinicie su servidor y espere el mensaje de frase de contraseña. Dé a Dropbear unos segundos para detectar y configurar su conexión a Internet. Conéctese a su servidor con el siguiente comando en su cliente :
Cuando inicie sesión, emita el siguiente comando en su servidor . Vea la publicación del blog para más detalles:
Pasará algún tiempo (30 segundos) antes de que pueda escribir su frase de contraseña. Escríbalo cuando se le solicite.
Cierre la conexión escribiendo
Su servidor ahora debería haber desbloqueado su disco duro cifrado y arrancar normalmente.
(¡Muchas gracias al autor original de la publicación del blog!)
fuente
Creo que early-ssh proporciona lo que estás buscando:
Ya hay un paquete .deb disponible, por lo que probablemente estés bien con Ubuntu.
fuente
Eche un vistazo al archivo léame cryptsetup para esto en
/usr/share/doc/cryptsetup/README.remote.gz
(paquete de Ubuntucryptsetup
). En hay una guía completa para lograr esto. Es similar a la respuesta de dragly , pero creo que esto es un poco más elegante. (Teclas con formato Dropbear, pasando la frase de contraseña a través de un FIFO en lugar de un script de shell frágil, etc.)Gracias a jap por señalarme esto en un canal diferente.
fuente
read -s -p
.Si desea poder arrancar de manera desatendida y remota, también debe mirar Mandos (que yo y otros hemos escrito):
En resumen, el servidor de arranque obtiene la contraseña a través de la red, de manera segura. Ver el archivo README para más detalles.
fuente
Servidor sin cabeza? Si tiene un puerto serie, úselo.
GRUB se puede configurar para funcionar a través del puerto serie. Su núcleo también puede configurarse utilizando el puerto serie para enviar los mensajes de arranque iniciales, ingresar la contraseña para desbloquear sus unidades e iniciar sesión. (Si su servidor admite BIOS serie, habilítelo también. Entonces nunca tendrá que conectarse un monitor a la máquina en absoluto).
Siempre es una buena idea tener una forma "no de red" de entrar en un servidor sin cabeza.
fuente
En Arch Linux, hay un paquete AUR dropbear_initrd_encrypt que hace lo que quieres de la caja. Funciona bastante bien para interfaces cableadas. Tuve que hackearlo un poco para la conexión inalámbrica.
fuente
Desafortunadamente, ninguna de las respuestas anteriores funcionó para mí. Además, copiar una clave privada del servidor parece paradójico.
De todos modos, las siguientes instrucciones funcionaron:
Arranque su SERVIDOR conectando y desbloqueando la partición encriptada a través de su CLIENTE
Instalar paquetes obligatorios (en el SERVIDOR)
Agregue sus claves públicas deseadas en el archivo autorizado de claves del SERVIDOR
Simplemente copie y pegue sus claves públicas en
/etc/dropbear-initramfs/authorized_keys
el SERVIDORCrea el script de desbloqueo
Crear el siguiente script en
/etc/initramfs-tools/hooks/crypt_unlock.sh
Hazlo ejecutable:
Cree una IP estática (u omita este paso para usar DHCP)
Editar
/etc/initramfs-tools/initramfs.conf
para agregar (o cambiar) la línea:Actualizar initialramfs
Deshabilite el servicio dropbear en el arranque para que openssh se use después de descifrar la partición
Pruebas
ssh [email protected] [-i ~/.ssh/id_rsa]
fuente
En debian 9 (estable), esta solución estaba desactualizada. Durante la instalación, recibo una advertencia
dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!
y no pude encontrar las claves necesarias. Por cierto, este método es muy simple y me lo explicaron en el gran canal #debian (gracias de nuevo):En primer lugar asegurarse de que
busybox
,dropbear
ydropbear-initramfs
están instaladosluego agregue su clave pública (la mayoría de las veces
~/.ssh/id_rsa.pub
) en el archivo/etc/dropbear-initramfs/authorized_keys
.Actualice luego
initramfs
para tener en cuenta los cambios:: update-initramfs -u¡Eso es todo!
Tenga en cuenta que si desea evitar un choque entre las teclas entre
dropbear
yopenssh
(comparten la misma ip, pero usan una clave diferente), es posible que desee poner en su cliente~/.ssh/config
algo así:Luego, solo se conecta usando:
y una vez que reciba un mensaje, escriba como lo sugiere el mensaje de busybox:
y escriba su contraseña
¡Disfrutar!
fuente
Escribí un papel de Ansible que hace esto por ti. Simplemente obtenga el rol debops-contrib.dropbear_initramfs y ejecútelo. Consulte la documentación del rol para obtener más detalles.
fuente
He estado utilizando la técnica explicada por otros en esta página (SSH en initramfs con un
IP
parámetro de kernel para configurar la red) durante bastantes años para desbloquear de forma remota servidores Ubuntu Linux sin cabeza (12.02, 14.04, 16.04 y 18.04).Incluso llegué a desarrollar un programa Python (sistema de desbloqueo remoto ) que hace el desbloqueo real para mí, porque el proceso de hacerlo manualmente me pareció un poco frágil y comencé a temer reiniciar mis servidores, así que en el espíritu de "si le duele, vale la pena automatizarlo". Codifiqué mi conocimiento en Python 😇 (y esto ha hecho que sea mucho más fácil hacer reinicios regulares para aplicar actualizaciones de seguridad).
Desde entonces, también decidí compartir mis notas personales sobre el cifrado de disco raíz remoto con el mundo. La página vinculada contiene bastantes detalles sobre el procedimiento (también algunos consejos que no se mencionan aquí) y tengo la intención de mantenerlo actualizado.
fuente