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:
- Imagen ISO de Ubuntu Server 24.04.3 LTS: ubuntu-24.04.3-live-server-amd64.iso
- Máquina virtual o equipo físico preparado para la instalación.
Medida de seguridad inicial: adaptador de red activo hasta el mirror
- Antes de iniciar la instalación, se debe mantener el adaptador de red activado para permitir que el instalador configure correctamente los componentes de red del sistema y detecte los recursos necesarios al finalizar la instalación.
- Una vez alcanzado el paso del mirror (Ubuntu archive mirror), se procederá a desactivar el adaptador de red para evitar la descarga de paquetes desde fuentes externas no verificadas.
- El adaptador de red se volverá a activar una vez completada la instalación, justo antes de la configuración del GRUB.
Paso 1: Iniciar la instalación
- 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
- En el menú inicial, selecciona la opción: Try or Install Ubuntu Server

- Elige el idioma de instalación y pulsa Enter

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

- En la pantalla "Choose the type of installation", selecciona: Ubuntu Server (minimized)
- Esta opción instala un sistema base reducido, más seguro y sin paquetes innecesarios.

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:
- Configuración de red (Network connections)
- Proxy
- Mirror del repositorio (Ubuntu archive mirror)
En nuestro caso, omitiremos su configuración manual por motivos de seguridad y control de entorno.
- Al llegar al paso del mirror, se debe desactivar el adaptador de red.
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.
- En la pantalla "Guided storage configuration", selecciona: Custom storage layout

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.
- Aparecerá la interfaz "Storage configuration", donde se mostrará el disco disponible. Desde esta interfaz se crearán:

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
| Sí
| Volumen LUKS cifrado con LVM
|
Pasos de configuración del disco
- Crear partición
/boot (1 GB) sin cifrar.
- Crear una segunda partición con el resto del espacio sin formato.
- Crear un grupo de volúmenes LVM sobre esa partición.
- Activar cifrado LUKS y establecer una contraseña segura.
- 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
- Crear el usuario administrador y establecer la contraseña.

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

- Una vez completada, reiniciar el sistema.

- Iniciar sesión y verificar las particiones:

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

6.2 Crear una copia de seguridad y configurar el archivo /etc/grub.d/40_custom
- Antes de modificar el archivo, realiza una copia de seguridad para poder restaurarlo en caso de error: sudo cp /etc/grub.d/40_custom /etc/grub.d/40_custom.bak
- Abrir y editar el archivo personalizado del GRUB: sudo nano /etc/grub.d/40_custom
- Añadir el siguiente comando: set superusers="grubadmin" password_pbkdf2 grubadmin grub.pbkdf2.sha512.100000.[HASH_GENERADO]

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:
- sudo update-grub
- sudo chmod 600 /boot/grub/grub.cfg
- sudo chown root:root /boot/grub/grub.cfg
- sudo chmod 700 /etc/grub.d/40_custom

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
- Editar el archivo de configuración por defecto con el comando: sudo nano /etc/default/grub
- Modificar la variable GRUB_TIMEOUT=0 para que el menú del GRUB no aparezca durante el arranque.
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:

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
- Antes de editar el archivo realiza una copia de seguridad: sudo cp /etc/fstab /etc/fstab.bak
- Abrir el archivo con privilegios de administrador: sudo nano /etc/fstab.
- Editar el archivo de la siguiente forma:

Opciones de seguridad:
- "nodev: evita el uso de dispositivos especiales."
- "nosuid: bloquea la ejecución con privilegios elevados (SUID/SGID)."
- "noexec: impide ejecutar binarios desde ese sistema de archivos."
- "ro: monta el sistema de solo lectura (aplicable a /boot)."
8.2 Aplicar las nuevas opciones de montaje

Mediante las configuraciones aplicadas se ha logrado:
- Proteger el gestor de arranque GRUB con contraseña cifrada y permisos restringidos.
- Asegurar la integridad del kernel mediante permisos seguros sobre los binarios del sistema.
- Implementar montajes seguros que previenen la ejecución o manipulación indebida de archivos en directorios sensibles.
- Incorporar copias de seguridad preventivas antes de modificar archivos críticos, garantizando la capacidad de recuperación ante errores de configuración.
Estas medidas fortalecen el bastionado del arranque de Ubuntu Server, garantizando un entorno más robusto frente a accesos no autorizados.