30 oct 2012

Proteger el GRUB: GRUB II (Parte II de II)

La semana anterior hablamos de como proteger el GRUB en su versión 1. Se utilizaba una contraseña maestra para bloquear la ejecución de las entradas, o al menos una contraseña por línea. GRUB 2 es realmente mucho más flexible, ya que incorpora la posibilidad de utilizar dos roles de usuarios y con distintas características.

Roles

Se dispone de dos tipos de roles, uno es el rol de superusuario y otro el de usuario normal. Se puede definir un solo superusuario el cual dispondrá de permisos para acceder tanto a la edición de la línea del GRUB como a los sistemas operativos que se encuentran disponibles en el equipo. Para definir los usuarios debemos ir al fichero /etc/grub.d/40_custom, y como se puede visualizar en la siguiente imagen declarar los usuarios.

Para entender bien como se declaran los usuarios debemos entender lo siguiente:

  • Para declarar el superusuario se especifica el nombre con la orden set superusers="nombre_usuario". Para asignarle una contraseña se debe utilizar la directiva password o password_pbkdf2 si se utilizará un hash que evite la lectura en plano de la contraseña. Después de indicar la directiva se debe indicar a que usuario se asigna y por último la contraseña.
  • Los usuarios normales, que pueden ser más de uno, se especifican directamente con la contraseña. Se puede utilizar la directiva password o password_pbkdf2, dependiendo de si va en plano o con hash.
Para crear un hash pbkdf2 se utiliza la herramienta grub-mkpasswd-pbkfd2, como se puede visualizar en la siguiente imagen.

De esta manera, definiendo el superusuario tenemos protegida la edición de la línea de comandos del GRUB, por lo que no podrán levantar una shell de root a través de la línea de comandos del GRUB. Ahora vamos a ver como proteger el arranque de los sistemas operativos. Podemos especificar que usuarios pueden arrancar un sistema operativo en concreto, para ello debemos entender que existen unos archivos para cada tipo de sistema operativo. Nos puede interesar proteger Linux y Windows, pero no la aplicación de test de memoria RAM. El sistema operativo Linux y su entrada se configura en el fichero 10_Linux que se encuentra en la ruta /etc/grub.d. Mientras que Windows se prepara en el fichero 30_os-prober. Para protegerlos hay que editar el fichero y buscar la palabra "menuentry", como se puede visualizar en la siguiente imagen.

Como podéis ver no es difícil proteger el GRUB en sus distintas versiones. Es más flexible y potente el GRUB en su nueva versión, la gestión de usuarios le permite al administrador ofrecer una jerarquía de seguridad realmente interesante.

1 comentario:

  1. [...] La semana anterior hablamos de como proteger el GRUB en su versión 1. Se utilizaba una contraseña maestra para bloquear la ejecución de las entradas, o al menos una contraseña por línea.  [...]

    ResponderEliminar