Instalar Debian GNU/Linux

1 Inicialización

  • Conectar cable de red
  • Encender
  • Presionar o (other boot options)
  • Presionar Ctrl+b
  • Ingresar dhcp
  • Ingresar chain https://boot.netboot.xyz
  • Cuando aparezca el menú, ir a Linux Network Installs (64-bit) -> Debian -> Debian 11 -> Graphical based install (instalación basada en texto fallará, en ese caso necesitarías bootear de un CD o USB)
  • Presiona <Enter> para seleccionar modo de video
  • Selecciona el modo c (1280x768x32)

2 Instalación

Selecciona:

  • Lenguaje: Spanish - Español
  • País: Chile
  • Teclado: Inglés estadounidense (el primero de la lista)

Luego continúa con la instalación hasta que pregunte por el "particionado de discos".

Acá - a menos que tengas otros requerimientos - deberás escoger entre dos esquemas de particionado:

  1. Guiado - Utilizar todo el disco para un particionado no encriptado.
  2. Guiado - Utilizar todo el disco y configurar LVM cifrado para un disco encriptado.

Luego continúa con la instalación conforme a tus preferencias.

IMPORTANTE: Si deseas una encriptación completa del disco (incluyendo /boot) la contraseña de cifrado que setees en el instalador no será la misma que ingreses al bootear tu sistema (salvo en su primer reinicio), sino solo para recuperar tus archivos en caso de fallas o alguna otra emergencia, ¡guardala en un lugar seguro!

Antes de finalizar la instalación te preguntará si deseas instalar GRUB, debes instalarlo.

3 Encriptado de /boot

Por defecto el instalador de Debian no encripta completamente el disco, dejando la partición /boot vulnerable a espionaje y alteración. Esto es suficientemente seguro para proteger tu información ante hurtos, pero no para ataques presenciales más sofisticados. Puedes proteger tu sistema siguiendo los pasos a continuación.

Una vez terminada la instalación y reiniciado tu equipo, abre una consola e inicia sesión como root por medio de un terminal en framebuffer (<Ctrl>+<Alt>+<F2>), o ejecutando su - en una sesión de usuario.

3.1 Preparación

Primero que nada creemos un directorio donde guardar secretos:

mkdir -p -m 700 /var/safe

Copia los contenidos en /boot a un lugar temporal:

cp -r /boot /var/safe/boot

Desmonta la partición:

umount /boot

Opcionalmente, pero muy recomendado es borrar la información previamente contenida en la partición llenándola con datos aleatorios. Tomará un tiempo, esperar hasta recibir el error "no space left on device".

cryptsetup open --type plain -d /dev/urandom /dev/sdX1 to_wipe
dd if=/dev/zero of=/dev/mapper/to_wipe status=progress
cryptsetup close to_wipe # luego de "no space left on device"

3.2 Creación de unidad encriptada

Creamos una unidad con encriptación LUKS1 para /boot.

cryptsetup -v --type luks1 luksFormat /dev/sdX1
cryptsetup open /dev/sdX1 cryptboot
mkfs.ext2 /dev/mapper/cryptboot

3.3 Montaje automático

Añade una llave que permitirá el montaje automático de /boot:

dd bs=1 count=512 if=/dev/random of=/var/safe/cryptboot.keyfile iflag=fullblock
chmod 600 /var/safe/cryptboot.keyfile
cryptsetup -v luksAddKey /dev/sdX1 /var/safe/cryptboot.keyfile

Añade /boot a /etc/cryptab

uuid="$(blkid -o value -s UUID /dev/sdX1)"
echo "cryptboot UUID=$uuid /var/safe/cryptboot.keyfile" >> /etc/crypttab

3.4 Restauración de contenidos

Restaura los contenidos de /boot

mount /dev/mapper/cryptboot /boot
mv /var/safe/boot/* /boot/
rmdir /var/safe/boot

Encuentra /boot en /etc/fstab y reemplaza su UUID por el resultado de findmnt -no UUID /boot.

3.5 GRUB

Añade GRUB_ENABLE_CRYPTODISK=y a /etc/default/grub. Luego actualiza con update-grub && grub-install /dev/sdX.

3.6 Ingresar solo una contraseña

Debido a que tenemos 2 particiones encriptadas, usualmente tendríamos que ingresar 2 contraseñas para poder bootear nuestro sistema. Podemos conseguir que solo nos solicite la contraseña de /boot si dejamos una llave para el acceso a la partición root en initramfs.

En /etc/crypttab reemplaza none por /var/safe/cryptroot.keyfile en la línea que indica sdX5_crypt.

Crea el archivo llave y añádelo como llave de tu partición root encriptada en la imagen initramfs:

dd bs=1 count=512 if=/dev/random of=/var/safe/cryptroot.keyfile iflag=fullblock
chmod 600 /var/safe/cryptroot.keyfile
cryptsetup -v luksAddKey /dev/sdX5 /var/safe/cryptroot.keyfile
echo 'KEYFILE_PATTERN="/var/safe/cryptroot.keyfile"' >> /etc/cryptsetup-initramfs/conf-hook
echo UMASK=0077 >> /etc/initramfs-tools/initramfs.conf
update-initramfs -u

4 Hackware-boot tool

Tu instalación ya está completamente encriptada. La encriptación del almacenamiento interno de un equipo protege ante ataques fuera de línea, como el acceso a la información por medio de la sutracción de un equipo o sus medios de almacenamiento. Sin embargo existe el riesgo de un tipo de ataque más sofisticado conocido como evil-maid.

Para protegerse ante este tipo de ataques se recomiendan estas medidas:

  • Usar una contraseña diferente para /boot y /.
  • Proteger el acceso a la configuración de la BIOS y el booteo de medios no apropiadamente identificados con una contraseña.
  • Hacer el sistema tamper-evident, por medio de la verificación de los archivos cargados en el inicio temprano del sistema.

Para configurar fácilmente las últimas dos puedes usar la herramienta hwbtool.

  • Instala el paquete flashrom.
  • Copia el binario compilado de la utilidad de coreboot, cbfstool (desde coreboot/util/cbfstool) a /usr/local/sbin/.
  • Copia hwbtool a /usr/local/sbin/.

Reinicia agregando el parámetro del kernel iomem=relaxed a la línea de arranque de GRUB en tu sistema Debian GNU/Linux:

  1. Prende o reinicia tu equipo.
  2. Selecciona [u] Unlock encrypted boot o espera 2 segundos luego de que aparece el menú de GRUB.
  3. Ingresa tu contraseña de /boot.
  4. Espera unos segundos.
  5. Verás el menú de booteo de Debian. Presiona e.
  6. En la línea que comienza con linux, dirígete al final de ella e ingresa iomem=relaxed.
  7. Presiona <F10> para bootear Debian.
  8. Espera que cargue, luego verás la pantalla de inicio de sesión.
  9. Presiona <Ctrl>+<Alt>+<F2> para acceder a una terminal.
  10. Inicia sesión con el usuario root.

Ahora podrás ejecutar hwbtool --grub y seguir las instrucciones.

5 Optimizaciones

5.1 thermald y tlp

Mejoran el consumo energético y la vida útil de la batería. TLP es incompatible con power-profiles-daemon, que viene activado por defecto en GNOME y tal vez algunos otros sistemas, por lo que probablemente debas deshabilitarlo.

5.1.1 Configuración recomendada Thinkpad

cat << EOF > /etc/tlp.d/10-battery.conf
START_CHARGE_THRESH_BAT0=67
STOP_CHARGE_THRESH_BAT0=100
EOF

Fuente

6 Licencia

CC0. Este documento es libre de copyright.