Protegiendo GRUB y Lilo

Y con esta entrada doy la bienvenida al primero de muchos posts (espero) de mi autoría, sin más comencemos.

Muchas veces por diversos motivos queremos proteger nuestro PC de extraños que sin consentimiento alguno puedan hacer uso de los sistemas operativos que tengamos instalados en nuestra máquina. La primer medida de seguridad que se debería de tomar en estos casos es proteger con contraseña la BIOS, de esta manera evitaríamos (entre otras cosas) la modificación del orden con que bootea el sistema bloqueando así la posibilidad de inicio de algún LiveCD o similares.

Habiendo hecho esto lo siguiente sería proteger también con contraseña nuestro gestor de arranque. En el caso de que usemos Lilo, lo más recomendado sería la “migración” inmediata a GRUB, ya que se ha comprobado que es posible romper la protección de este.

Es posible de que por medio parametros indicados al inicio de grub podamos iniciar un sistema Linux (GNU/Linux para los puristas) indicándole que no sea requerido ningún tipo de login para tener acceso a la shell. Cosa que no queremos, ¿verdad?  Entonces manos a la ubre. Estando dentro de nuestro sistema Linux abrimos una terminal y escribimos:

/sbin/grub-md5-crypt

Esto nos devolverá un hash que usaremos para especificarle al GRUB. ¿Cómo? Que al escribir te dice que no existe el archivo, aah! Entonces usemos OpenSSL:

openssl passwd -1 $1

Bastaría con escribir la contraseña y posteriormente verificarla y se nos generará un hash.  Teniendo el hash procedemos a indicarle a GRUB que nos bloquee las entradas con contraseña; abrimos el archivo /boot/grub/menu.lst con nuestro editor preferido, en mi caso:

sudo nano /boot/grub/menu.lst

Buscamos una línea que diga “password topsecret” y la reemplazamos por:

password –md5 {hash_anterior}

Escribiendo en donde dice {hash_anterior} el hash generado anteriormente. Con esto lograríamos bloquear todas las entradas listadas en el GRUB. En el caso de que quisieramos solo bloquear un determinado sistema operativo, realizariamos el proceso de generar el hash y buscaríamos la entrada que diga “title” con el sistema que queremos proteger. Por ejemplo en mi caso:

title           Debian Squeeze 2.6 Kernel
uuid            ……
kernel          ……
initrd          ……
password –md5 {hash_anterior}

Con esto ya tendríamos bloqueado con contraseña el sistema operativo que hayamos especificado. Ahora para evitar de que algún usuario pueda editar el archivo, le asignamos permiso para que solo pueda ser modificado por el usuario root:

sudo chmod 600 /boot/grub/menu.lst

En el caso de que tenga el boot en una partición aparte y definida como solo lectura debe montarla con permisos de escritura, editar el archivo y ahí sí se realizará el cambio.

sudo mount -o remount,rw /boot

Haciendo esto tendríamos configurado grub para que almenos cualquier novato no viole nuestra privacidad XD.

En el caso de Lilo…

Editamos el archivo /etc/lilo.conf y justo antes de la primer etiqueta “image” introducimos lo siguiente:

password={tu_contraseña}

De igual manera también podríamos proteger el archivo para que solo el usuario root pueda verlo y editarlo, como se indicó anteriormente. Recuerden que lo más recomendado es migrar a GRUB, ya que se ha comprobado que es posible burlar la seguridad de este y obtener la contraseña que lo “protege”.

Nota 1: La contraseña también se puede especificar en texto plano, aunque lo más recomendado para proveer un poco más de seguridad es especificarla en formato MD5, como se hizo en los anteriores ejemplos.

Nota 2: En caso de que no se haya podido generar el hash de ninguna de las dos maneras mencionadas arriba, se podría también usar el comando grub, y después en la shell interactiva escribir md5crypt y así generaríamos también el hash.

No Comments