20/4/09

Contraseñas en GRUB

El gestor de arranque GRUB (GRand Unifier Bootloader) viene preinstalado en la mayoría de las distribuciones de GNU/Linux modernas, entre ellas Debian, Ubuntu y sus derivadas. Anteriormente, el gestor de arranque más usado era LILO.

Los errores en las modificaciones de GRUB pueden llevar a problemas con el arranque. Por esto es recomendable hacer una copia de seguridad del archivo menu.lst antes de realizar algún cambio, para eso hacemos:
$ sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.backup
Luego, para restaurar la copia de seguridad, hacemos lo siguiente:
$ sudo cp /boot/grub/menu.lst.backup /boot/grub/menu.lst

Proteger con contraseña:
Para que ningún usuario no autorizado pueda modificar los valores de GRUB en tiempo de ejecución, podemos establecer una contraseña, de esta forma sólo pulsando la tecla 'p' e introduciendo la contraseña se podrán cambiar los parámetros del programa.

Editamos el archivo de configuración del menú de arranque de GRUB:
$ sudo gedit /boot/grub/menu.lst
Buscamos la siguiente línea:
#password topsecret
Borramos el numeral (#) de la línea, haciendo esto la descomentaremos. Debe quedar así:
password topsecret
Ahora la contraseña es topsecret, se puede cambiar e introducir la que se desee, guardamos el archivo y cerramos el editor.


Encriptar la contraseña:
Como no es buena política almacenar las contraseñas en texto limpio, lo mejor es añadir la opción `--md5' y poner una contraseña cifrada md5. Para obtener el valor cifrado de la contraseña podemos usar la orden `md5crypt' en un shell de grub. Para eso ejecutamos:
# grub
y nos aparece:
grub>
Ahora ejecutamos la orden md5crypt e introducimos la contraseña cuando la pida:
grub> md5crypt
Password: ****
Encrypted: $1$VrTfp0$XIHnjm/6MAUPrOzCPHJZ30
grub>
con esto tenemos la contraseña cifrada con md5. En este caso la contraseña es "hola". Ahora sólo tenemos que cortar y pegar:
password --md5 $1$VrTfp0$XIHnjm/6MAUPrOzCPHJZ30
Es posible también indicar un fichero de configuración como argumento de password. Este fichero será el que se cargue como fichero de configuración cuando proporcionemos una contraseña válida. Por ejemplo:
password hola /boot/grub/menu-admin.lst

lock: bloquear arranques
:
En una máquina podemos tener varios sistemas operativos instalados, pero no queremos que todo el mundo pueda utilizarlos todos, queremos que para acceder a cierto sistema haya que introducir una contraseña.
title Boot DOS
lock
rootnoverify (hd0,1)
makeactive
chainload +1
Debemos poner lock justo tras title, ya que un usuario podría ejecutar órdenes de una opción del menú hasta encontrar lock.


Arranque con contraseña:
Cuando poníamos lock estábamos utilizando la contraseña global de grub, pero también existe la posibilidad de agregar "password" a un arranque concreto. En este caso el comportamiento es distinto, se solicita esa contraseña para realizar el arranque. Así podemos tener una contraseña para cada uno de los sistemas operativos que tengamos instalados. Por ejemplo:
title Ubuntu, kernel 2.6.15-26-386 (recovery mode)
password --md5 $1$ddTCc1$8v3fWFR4m5kDfuRG5LUHo/
root (hd1,0)
kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/hdb1 ro single
initrd /boot/initrd.img-2.6.15-26-386
boot

No hay comentarios.: