====== [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 }