El proceso de arranque de un sistema operativo es una fase crítica en la que se cargan los componentes esenciales del sistema.
Bastionar el arranque de Ubuntu Server consiste en aplicar configuraciones y medidas de seguridad que garanticen la integridad, confidencialidad y autenticidad del sistema desde el momento en que se enciende el equipo.

El objetivo de esta guía es proporcionar una base técnica y estructurada para asegurar el arranque de Ubuntu, reduciendo riesgos de manipulación o acceso no autorizado durante las fases iniciales del sistema.

Autor: Abel García Domínguez

En esta práctica se realizará la instalación y configuración segura de Ubuntu Server 24.04.3 LTS (minimized), aplicando medidas de seguridad desde el proceso de instalación.
El bastionado comienza en el propio instalador, donde definiremos una estructura de particiones cifradas y configuraciones de arranque seguras.

Requisitos previos

Antes de comenzar, asegúrate de contar con los siguientes elementos:

Medida de seguridad inicial: adaptador de red activo hasta el mirror

Paso 1: Iniciar la instalación

  1. Inicia la máquina virtual utilizando la ISO: ubuntu-24.04.3-live-server-amd64.iso. Selecciona la opción Omitir la instalación desatendida
  2. En el menú inicial, selecciona la opción: Try or Install Ubuntu Server

Imagen1

  1. Elige el idioma de instalación y pulsa Enter

Imagen2

  1. Configura el diseño de teclado según corresponda.

Imagen3

  1. En la pantalla "Choose the type of installation", selecciona: Ubuntu Server (minimized)

Imagen4

Paso 2: Configuración de red, proxy y mirror

Durante la instalación, se presentan tres apartados relacionados con la conectividad y descarga de paquetes:

En nuestro caso, omitiremos su configuración manual por motivos de seguridad y control de entorno.

Paso 3: Configuración del almacenamiento

En este apartado se definirá el esquema de particiones del sistema.
El objetivo es crear una estructura segura y cifrada, protegiendo los datos desde el arranque.

  1. En la pantalla "Guided storage configuration", selecciona: Custom storage layout

Imagen5

Esta opción permite definir manualmente las particiones del sistema, garantizando un mayor control sobre su estructura y posibilitando la aplicación de cifrado en los volúmenes de datos.

  1. Aparecerá la interfaz "Storage configuration", donde se mostrará el disco disponible. Desde esta interfaz se crearán:

Imagen6

Estructura de particionado recomendada

Punto de montaje

Tamaño aproximado

Cifrado

Descripción

/boot

1 GB

No

Contiene el kernel y archivos de arranque

Espacio restante

Todo el disco

Volumen LUKS cifrado con LVM

Pasos de configuración del disco

  1. Crear partición /boot (1 GB) sin cifrar.
  2. Crear una segunda partición con el resto del espacio sin formato.
  3. Crear un grupo de volúmenes LVM sobre esa partición.
  4. Activar cifrado LUKS y establecer una contraseña segura.
  5. Crear los siguientes volúmenes lógicos dentro del grupo cifrado:

Volumen

Punto de montaje

Tamaño aprox.

root

(/)

10 GB

home

(/home)

6 GB

var

(/var)

4 GB

tmp

(/tmp)

1.5 GB

swap

2 GB

Esta estructura segmenta el sistema en diferentes áreas protegidas y evita que fallos en una partición afecten a las demás.

Paso 4: Finalización de la instalación

  1. Crear el usuario administrador y establecer la contraseña.

Imagen7

  1. Omitir Ubuntu Pro y SSH durante la instalación.

Imagen8

  1. Una vez completada, reiniciar el sistema.

Imagen9

  1. Iniciar sesión y verificar las particiones:

Imagen10

Una vez finalizada la instalación del sistema, se procederá a aplicar medidas de seguridad adicionales sobre el arranque, el kernel y los puntos de montaje.
El objetivo de este apartado es reforzar la integridad del sistema frente a accesos no autorizados o manipulaciones en las fases iniciales del arranque.

Paso 5: Reactivar el adaptador de red e instalar utilidades

Antes de continuar con la configuración del GRUB, es necesario reactivar el adaptador de red para poder instalar las herramientas requeridas. Actualizar los repositorios e instalar el editor 'nano'.

Paso 6: Configuración segura del gestor de arranque (GRUB)

El gestor de arranque GRUB será protegido mediante una contraseña cifrada, impidiendo el acceso no autorizado al menú de arranque o la modificación de parámetros críticos del sistema.

6.1 Generar el hash PBKDF2

Ejecuta el siguiente comando para generar el hash de la contraseña del GRUB: sudo grub-mkpasswd-pbkdf2

Imagen11

6.2 Crear una copia de seguridad y configurar el archivo /etc/grub.d/40_custom

Imagen12

El usuario admin se define como superusuario del GRUB y usará el hash PBKDF2 para autenticación.

6.3 Actualizar GRUB y aplicar permisos

Actualizar la configuración del GRUB y restringir permisos:

Imagen13

Estos permisos garantizan que solo root pueda leer o modificar la configuración crítica del gestor de arranque.

6.4 Ocultar el menú del GRUB

El sistema arrancará directamente sin mostrar el menú del GRUB, evitando accesos no autorizados al gestor de arranque.

Paso 7: Restringir permisos del kernel

Aplicar permisos restrictivos sobre los binarios y archivos del kernel ubicados en /boot a través de los siguientes comandos:

Imagen14

Con el objetivo de prevenir lecturas o modificaciones no autorizadas de los artefactos críticos del kernel, protegiendo así la integridad del sistema.

Paso 8: Configuración de montajes seguros en /etc/fstab

El archivo /etc/fstab define cómo se montan las particiones del sistema. Aplicar opciones restrictivas reduce el riesgo de ejecución de código malicioso o de escaladas de privilegios.

8.1 Crear copia de seguridad y editar /etc/fstab

Imagen15

Opciones de seguridad:

8.2 Aplicar las nuevas opciones de montaje

Imagen16

Mediante las configuraciones aplicadas se ha logrado:

Estas medidas fortalecen el bastionado del arranque de Ubuntu Server, garantizando un entorno más robusto frente a accesos no autorizados.