====== [FORT] Práctica 1: Fortificación del arranque de Linux ======
menuentry Entrada
setroot=(hd0,msdos1)
linux /vmlinux root=/dev/sda1
initrd /boot/initrd.img-6.1.0-30-amd64
===== 1. Interrumpir el booteo y conseguir la forma cifrada de la contraseña de root =====
Para empezar pulsaremos c durante el arranque e introduciremos los siguientes comandos en la consola de Root:
set root=hd0,msdos1
ls /
cat /etc/shadow
Con Cat podremos ver las contraseñas cifradas, incluida la de Root:
{{:master_cs:fortificacion:pasted:20250204-154216.png}}
===== 2. Conseguir Root editando los parámetros pasados al kernel cuando se bootea =====
Ya sea desde línea de comandos o editando el menú
Hay que cambiar el init de arranque por /bin/bash, haciendo que se arranque directamente el terminal en modo Root.
ls #Para ver las particiones
set root=hd0,msdos3
linux /boot/vmlinux-amd64
initrd /boot/initrd.img-6.1.0-30-amd64 root=/bin/bash
boot
{{:master_cs:fortificacion:pasted:20250204-154738.png}}
===== 3. Definir dos superusuarios de grub y establecer contraseñas para ellos =====
//2 en texto plano y 2 cifradas de forma que todavía existan cuando la configuración de Grub se actualiza//
Primero creamos dos contraseñas almacenadas en texto plano y, tras eso, para cifrar las contraseñas se usa el comando:
grub-mkpasswd-pbkdf2
{{:master_cs:fortificacion:pasted:20250204-150807.png}}
Tras eso se procede a modificar el archivo /etc/grub.d/40_custom y se añade dentro los super usuarios, en este caso tendremos user1 y user2 con contraseña segura y user3 y user4 con contraseña insegura:
{{:master_cs:fortificacion:pasted:20250204-151124.png}}
Tras eso actualizamos la configuración de grub:
{{:master_cs:fortificacion:pasted:20250204-153703.png}}
===== 4. Verificar que solo el superuser de grub pueda acceder a la línea de comadnos del grub =====
Podemos observar que al reiniciar se nos solicita nombre y usuario para poder acceder a la terminal de grub:
{{:master_cs:fortificacion:pasted:20250204-153819.png}}
===== 5. Añade 2 entradas llamadas UserOnly y AlwaysAvailable =====
* AlwaysAvailable: Puede ser arrancada por cualquiera
* UserOnly: solo puede ser booteada por los usuarios
* Solo los superusuarios pueden bootear las entradas restantes
Para crear las entradas debemos crear unas "menuentry" en /etc/grub.d/40_custom con las siguientes características:
menuentry "AlwaysAvaliable"{
set root=(hd0,msdos1)
linux /boot/vmlinux-amd64 root=/dev/sda1
initrd /boot/initrd.img-6.1.0-30-amd64
boot
}
menuentry "UserOnly"{
set root=(hd0,msdos2)
linux /boot/vmlinux-amd64 root=/dev/sda1
initrd /boot/initrd.img-6.1.0-30-amd64
password usuario3 1234
boot
}