Instalación personalizada encriptada

21

Mi computadora ejecuta Ubuntu. Quiero instalar Ubuntu en otro medio. Deseo habilitar el cifrado, pero como las opciones predeterminadas del instalador de ubuntu (borrar / junto / etc ...) solo se refieren a la unidad predeterminada, tengo que elegir "algo más" y crear las particiones en la otra unidad manualmente, creo ~ 128mb parte para el arranque, entonces estoy perdido, si hago una partición encriptada con el resto del espacio no puedo dividirla, así que no tengo intercambio; si, en cambio, creo dos particiones cifradas, no parece correcto porque quiere configurar dos contraseñas diferentes ...

¿Cómo puedo configurar el intercambio entonces? (Durante o después de la instalación).

Yvain
fuente

Respuestas:

29

Cómo lograr esto con LVM y una única partición encriptada

Advertencia

En primer lugar, 128M es demasiado pequeño para arrancar. Yo uso 1G. De lo contrario, lo que seguramente sucederá es que puede olvidarse de eliminar los núcleos antiguos y / boot se llenará, y tendrá que lidiar con el dolor de tratar de eliminar los núcleos antiguos del sistema para que pueda obtener apto apt-gettrabajar de nuevo. Incluso con 1G, asegúrese de eliminar los núcleos viejos de vez en cuando.

Los siguientes pasos no están destinados a usuarios novatos.
ACTUALIZACIÓN: ¡He creado un script que realizará las siguientes operaciones para usted y más! Todo lo que tiene que hacer es ejecutarlo desde Live OS antes de la instalación. Puedes encontrar una reseña en mi blog .


Preinstalación desde el sistema operativo en vivo

¡Desea configurar LUKS y LVM mientras particiona manualmente! Probé esto en Ubuntu 16.04.2

Inicie Ubuntu desde un sistema operativo en vivo y seleccione la opción para probar Ubuntu sin instalar. Siga los pasos que he descrito a continuación. Supongamos que está instalando en / dev / sdb.

  1. Particione el disco con su herramienta de elección: utilicé fdisk para configurar el mío en una tabla de partición msdos de la siguiente manera:
    • otras particiones: sistemas operativos existentes: no nos importan estos
    • sdb1: / boot (1G)
    • sdb2: partición LUKS (el resto del disco)
  2. Configurar LUKS
    • sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sdb2
    • sudo cryptsetup luksOpen /dev/sdb2 CryptDisk
    • Si bien no es necesario, es una buena idea llenar su partición LUKS con ceros para que la partición, en un estado encriptado, se llene de datos aleatorios. sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M ¡CUIDADO, esto podría tomar mucho tiempo!
  3. Configurar LVM en / dev / mapper / CryptDisk
    • sudo pvcreate /dev/mapper/CryptDisk
    • sudo vgcreate vg0 /dev/mapper/CryptDisk
    • sudo lvcreate -n swap -L 2G vg0
    • sudo lvcreate -n root -L 10G vg0
    • sudo lvcreate -n home -l +100%FREE vg0

Instalación desde sistema operativo en vivo

  1. Ahora estás listo para instalar. Cuando llegue a la parte "Tipo de instalación" de la instalación, elija la opción "Algo más". Luego, asigne manualmente las particiones / dev / mapper / vg0- * como le gustaría configurarlas. No olvide configurar / dev / sdb1 como / boot. la partición / boot no debe estar encriptada. Si es así, no podremos arrancar. Cambie el "Dispositivo para la instalación del cargador de arranque" a / dev / sdb, y continúe con la instalación.
  2. Cuando finalice la instalación, ¡no reinicie ! Elija la opción "Continuar con las pruebas".

Configuración posterior a la instalación desde el sistema operativo en vivo

¡Este bit es realmente importante si quieres que tu sistema arranque! Pasé bastante tiempo investigando esto para descubrir estos pasos posteriores a la instalación. En mi caso, lo estaba haciendo porque quería personalizar el tamaño de / boot on / dev / sda, pero todo ese trabajo también debería trasladarse a su situación.

  1. En una terminal, escriba lo siguiente y busque el UUID de / dev / sdb2. Tome nota de ese UUID para más tarde.
    • sudo blkid | grep LUKS
    • La línea importante en mi máquina lee /dev/sdb2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"
  2. A continuación, vuelva a montar el sistema recién instalado para que podamos hacer algunos cambios más.

    • sudo mount /dev/vg0/root /mnt
    • sudo mount /dev/vg0/home /mnt/home # esto probablemente no sea necesario
    • sudo mount /dev/sdb1 /mnt/boot
    • sudo mount --bind /dev /mnt/dev # No estoy completamente seguro de que esto sea necesario
    • sudo mount --bind /run/lvm /mnt/run/lvm
    • (Solo si está utilizando EFI): sudo mount /dev/sd*/your/efi/partition /mnt/boot/efi
  3. Ahora ejecuta sudo chroot /mntpara acceder al sistema instalado

  4. Desde el chroot, monta un par de cosas más
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts
  5. Configurar crypttab. Usando su editor de texto favorito, cree el archivo / etc / crypttab y agregue la siguiente línea, cambiando el UUID con el UUID de su disco.
    • CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard
  6. Por último, reconstruya algunos archivos de arranque.
    • update-initramfs -k all -c
    • update-grub
  7. Reinicie, y el sistema debe solicitar una contraseña para descifrar en el arranque.

Un agradecimiento especial para Martin Eve , EGIDIO DOCILE y la gente de blog.botux.fr por los tutoriales que publicaron. Al extraer piezas de sus publicaciones y resolver problemas un poco más, finalmente pude resolver esto.

Lo intenté varias veces y fallé una y otra vez. El bit que tuve que resolver por mí mismo basado en mensajes de error fuesudo mount --bind /run/lvm /mnt/run/lvm

b_laoshi
fuente
Muchas gracias, pero estoy atrapado al principio donde necesito configurar la partición de luks. No se puede encontrar dentro de fdisk -L de salida.
Yvain
Y cuando intento configurar la cripta me sale un error: no se pudieron eliminar los encabezados
Yvain
Veo que marcó esto como una solución. ¿Lo hiciste funcionar? Si no, ¿qué herramienta usaste para crear tus particiones? Primero debe particionar el disco con una herramienta como Gparted o fdisk, haciendo una partición para / boot y otra para el cifrado (EFI requeriría una tercera partición no cifrada). No estaba usando EFI en mi configuración. Solo después de haber creado la partición para el cifrado puede ejecutar el cryptsetup luksFormatcomando para cifrarla. Al crear / dev / sdb2, puede formatearlo con un sistema de archivos o no. cryptsetupborrará cualquier sistema de archivos existente.
b_laoshi
1
@ Yvain - Creo que esto está mal. Sha1 ya no se considera seguro. Algo más seguro (como la opción sha512 sugerida) definitivamente debería usarse.
mike
1
+1 @b_laoshi Muchas gracias por la respuesta, me está ayudando mucho :)
Tummala Dhanvi
3

Cómo lograr estas particiones encriptadas múltiples y sin LVM

Debido a que mi respuesta anterior fue muy larga, estoy publicando una segunda respuesta que adopta un enfoque diferente si no desea utilizar LVM.

Puede crear múltiples particiones encriptadas y usar el script decrypt_derived para que solo necesite ingresar la contraseña una vez. Consulte esta publicación de blog para obtener instrucciones paso a paso. El autor utiliza un archivo de claves, pero la secuencia de comandos LUKS decrypt_derived también sería suficiente.

b_laoshi
fuente
Terminé desconectando la unidad principal, las instalaciones asistidas están disponibles para mi sd :) lol
Yvain
0

Esta es la respuesta para aquellos que siguen tropezando con esta pregunta que desean cambiar ligeramente la partición predeterminada de Ubuntu. Por ejemplo, elimine la swappartición y aumente el /boottamaño. Creo que muchas personas se desanimarían a seguir las instrucciones de b_laoshi, debido a la cantidad de pasos requeridos.

Entonces, para una partición personalizada simple con cifrado, sugiero usar "Borrar disco e instalar Ubuntu" con la opción "Cifrar la nueva instalación de Ubuntu por seguridad". Lo que cambiaremos es la configuración para esta partición predeterminada.

Estas configuraciones están contenidas en /lib/partman/recipes[-arch]/. Por mi parte, he estado cambiando /lib/partman/recipes-amd64-efi/30atomic. Para obtener 538M para efi, 1024M para /booty el resto para/ ext4, el archivo a

538 538 538 fat32
    $iflabel{ gpt }
    $reusemethod{ }
    method{ efi }
    format{ } .

1024 1024 1024 ext4
    $defaultignore{ }
    $lvmignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext4 }
    mountpoint{ /boot } .    

900 10000 -1 ext4
    $lvmok{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext4 }
    mountpoint{ / } .

Tenga en cuenta que una vez que elija el disco para borrar en el instalador, le solicitará el resumen de la partición, para que pueda verificar si el truco funcionó y está obteniendo la partición deseada. Ver también /ubuntu//a/678074/47073 .

Yrogirg
fuente