Proteger GRUB con Contraseña

Es una buena medida de seguridad configurar una contraseña al servicio de grub para que ningún atacante pueda modificar la configuración de boot durante el reboot de un servidor.

A continuación, lo vamos a hacer en Linux RedHat 8.

Configurar la contraseña en grub

Para establecer una contraseña en grub, ejecutaremos el comando grub2-setpassword.

[root@localhost ~]# grub2-setpassword
Enter password: 
Confirm password: 
[root@localhost ~]# 

El comando anterior genera el fichero de seguridad para grub /etc/grub.d/01_users con el siguiente contenido:

[root@localhost grub.d]# cat 01_users 
#!/bin/sh -e
cat << EOF
if [ -f \${prefix}/user.cfg ]; then
  source \${prefix}/user.cfg
  if [ -n "\${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root \${GRUB2_PASSWORD}
  fi
fi
EOF
[root@localhost grub.d]#

Como podemos observar, las tres últimas directivas están diciendo que solamente el usuario root puede editar la configuración de grub durante el arranque del sistema.

Esta sección también debe existir dentro del fichero /boot/grub2/grub.cfg, de lo contrario, no funcionará la solicitud de contraseña.

Configuracion grub.cfg para la solicitud de contraseña

A continuación eliminamos la siguiente línea del fichero /etc/grub.d/10_linux:

[root@localhost ~]# cat /etc/grub.d/10_linux |grep -i restri
CLASS="--class gnu-linux --class gnu --class os --unrestricted"
[root@localhost ~]# 

Aplicar la nueva configuración de grub

Una vez que ya hemos configurado grub, tenemos que aplicar la nueva contraseña. Dependiendo de si nuestro sistema usa BIOS o UEFI, el comando a ejecutar será uno o otro. Veamos un ejemplo:

  • BIOS:
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ...
done
[root@localhost ~]#
  • UEFI: Con UEFI apuntaremos a otro path distinto:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

Comprobar que se ha establecido correctamente la contraseña de grub

Para comprobar que la configuración aplicada es correcta, vamos a rebotar nuestro sistema e intentar editar la configuración de arranque:

Establecer contraseña a grub

Como vemos, nos ha pedido la contraseña.

Eliminar la contraseña de Grub

Para eliminar la contraseña de grub, tendremos que eliminar el fichero 01_users y volver a aplicar la configuración de grub.

[root@localhost grub.d]# rm 01_users 
rm: remove regular file '01_users'? y
[root@localhost grub.d]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done
[root@localhost grub.d]# 

Te puede interesar

COMPÁRTEME

2 comentarios en «Proteger GRUB con Contraseña»

  1. Muy interezante todo lo de Linux RedHat.
    Puedo instalar RedHat Linux en una laptop LENOVO T460s, que quiero usar con linux? Y si es asi, de donde se puede bajar el redhat?

    Gracias

    Responder

Deja un comentario