Saltar al contenido

El uso de Linux como sistema operativo en nuestros equipos o servidores es un signo de seguridad por sí mismo. El uso de contraseñas en Linux es el método más popular y sencillo para agregar seguridad a cualquier equipo, siempre y cuando se sigan las medidas básicas de seguridad como la longitud y la inclusión de caracteres especiales. Al instalar un sistema operativo Linux, se crean dos tipos de usuarios: el administrador, que tiene más permisos que un usuario regular, y el usuario root, con el cual hay que tener mucho cuidado ya que tiene todos los permisos para realizar acciones en el sistema, como crear, editar o eliminar usuarios y aplicaciones. Si no tenemos experiencia en el manejo del usuario root, es recomendable aprender más sobre él, ya que tomar decisiones incorrectas con los permisos de este usuario puede dejar inutilizables ciertos dispositivos.

Por lo tanto, es crucial que los usuarios root sean especialmente responsables. Si por alguna razón deseamos acceder a Linux con la cuenta root y hemos olvidado la contraseña (lo cual ocurre más frecuentemente de lo que se piensa), debemos seguir los pasos y consejos que se ofrecen aquí para recuperarla, cambiarla o eliminarla sin problemas. Con la cuenta de root, es más fácil ejecutar tareas de soporte y administración en el sistema sin necesidad de usar el comando «sudo».

¿Qué es el GRUB y para qué sirve en Linux?

GRUB (GRand Unified Bootloader) es el gestor de arranque desarrollado por el proyecto GNU que permite seleccionar qué sistema operativo debe iniciar en una computadora o servidor. Normalmente se utiliza en sistemas operativos basados en GNU/Linux, pero también puede arrancar sistemas operativos Windows sin problemas. Algunas características interesantes de GRUB son que admite comandos de configuración, puede cargar una configuración predeterminada, ofrece una interfaz de menú y una línea de comandos para ejecutar diversos comandos, y es compatible con todos los sistemas de archivos utilizados actualmente, como Btrfs, EXT, FAT, NTFS, ZFS, entre otros. Además, puede acceder a datos en cualquier dispositivo instalado y admite el direccionamiento de bloque lógico (LBA) y el arranque en red.

GRUB es lo primero que se carga durante el arranque del sistema. La BIOS o UEFI busca un dispositivo de inicio, como un disco duro o un SSD, y carga el MBR con GRUB en su interior. En la primera fase, se carga el GRUB básico, que a su vez carga el GRUB completo, ubicado en cualquier parte del disco. Cuando se haya cargado completamente, se muestra al usuario un menú de inicio desde donde se puede seleccionar el kernel o el sistema operativo deseado.

¿Qué hacer si olvidamos la contraseña de root en un servidor Linux?

La contraseña del usuario administrador o root en un servidor con sistema operativo Linux nunca debe ser olvidada. Sin embargo, si de alguna manera la olvidamos o alguien la cambió sin nuestro conocimiento, siempre podemos modificarla o eliminarla directamente desde el GRUB de arranque de nuestro sistema operativo. La contraseña de root se guarda localmente en un archivo específico para poder autenticarnos durante el inicio del sistema operativo para poder acceder a él.

La ventaja de utilizar GRUB para «recuperar» la contraseña es que es la forma más limpia de hacerlo, sin tener que formatear nuestro servidor y empezar desde cero. Además, es la forma más rápida de recuperarla sin pérdida de información. La desventaja de este método es que cualquier usuario con acceso físico al servidor podría también restablecer o borrar la contraseña de root del sistema operativo. Para evitar este tipo de problemas, es recomendable y necesario por seguridad que GRUB también tenga una contraseña de acceso, lo cual previene posibles problemas de seguridad y evita que alguien con acceso físico al servidor pueda modificar nuestra contraseña de acceso.

Otras funciones de GRUB

GRUB cuenta con diversas funciones que lo convierten en uno de los mejores gestores de arranque para la arquitectura x86. A continuación, mencionaremos algunas de las más importantes.

  • GRUB nos brinda un entorno basado en comandos: esta característica nos proporciona una gran flexibilidad para cargar el sistema con opciones específicas o recopilar información sobre el sistema. Durante mucho tiempo, las arquitecturas que eran diferentes a x86 también utilizaban entornos previos al sistema operativo para realizar el arranque a través de una línea de comandos.
  • Soporta el modo de Direccionamiento Lógico de Bloques (LBA): este modo permite la conversión del direccionamiento utilizado para buscar archivos en las unidades de disco duro. Antes del LBA, estos gestores de arranque tenían limitaciones en las que la BIOS no podía encontrar archivos. Pero con el LBA, GRUB puede arrancar los sistemas operativos directamente desde particiones. Sin embargo, es necesario que la BIOS admita este sistema. En la actualidad, la mayoría de las BIOS pueden reconocer y admitir este sistema.
  • Puede leer particiones EXT2: esto permite que GRUB acceda a los archivos de configuración cada vez que el sistema se inicia, eliminando la necesidad de que el usuario escriba una versión de la primera etapa del gestor de arranque en el MBR. En caso de realizar cambios en la configuración, es necesario reinstalar GRUB en el MBR si la partición de arranque se mueve de disco.

Además, GRUB cuenta con una terminología muy importante, relacionada con dispositivos como discos duros y particiones en los mismos. Esta terminología es esencial para configurar GRUB de manera que se puedan arrancar varios sistemas operativos.

Seguridad de GRUB

Una de las características de seguridad más relevantes de GRUB es la capacidad de configurar una contraseña de arranque. Esto evita que usuarios no autorizados accedan al sistema sin la contraseña correcta. Si alguien intenta iniciar sesión sin la contraseña, el sistema no permitirá el acceso y mostrará un mensaje de error.

Otra función de seguridad importante es la capacidad de verificar la integridad del sistema antes de iniciar el arranque. Esto se logra a través de la verificación de la suma de comprobación, que verifica que los archivos críticos del sistema no hayan sido modificados desde la última vez que se verificaron. Si se detecta una modificación, se emite una alerta y el sistema se bloquea para evitar la ejecución de código malicioso. Además, GRUB también proporciona una función de autenticación de firmware segura (SFA), que ayuda a proteger el sistema de arranque contra ataques de firmware maliciosos. Esta función verifica la integridad de todo el firmware utilizado en el proceso de arranque, garantizando que no haya sido comprometido por malware o virus.

Además, GRUB ofrece una función de ocultación del menú de arranque, que oculta el menú de selección de sistema operativo para evitar que usuarios no autorizados accedan a sistemas operativos o configuraciones a las que no deberían tener acceso. Esto ayuda a proteger el sistema contra ataques maliciosos y aumenta la privacidad del usuario. Por último, GRUB también permite la capacidad de cifrar el disco duro, lo que protege los datos almacenados en el disco contra el acceso no autorizado. Esto es especialmente útil en entornos empresariales o gubernamentales donde se requiere proteger la información confidencial en todo momento, proporcionando una capa adicional de seguridad a nuestro sistema.

Cómo modificar o borrar la contraseña de root desde GRUB

Si deseamos recuperar o restablecer la contraseña de root, debemos encender o reiniciar el sistema para acceder a la consola inicial de GRUB, que nos permitirá iniciar el proceso de recuperación de contraseña. Al acceder a esta consola, se ofrecen las siguientes opciones:

En este caso, seleccionamos la opción inicial o ingresamos a los diferentes kernels instalados.

Al presionar la tecla «e», accederemos al editor de GRUB, que se mostrará de la siguiente manera. Utilizamos las flechas de desplazamiento del teclado para ubicar la línea que comienza con «Linux» y al final de ella se encuentra el término «ro single». Debemos cambiar la cadena «ro single» por «rw init=/bin/bash». También debemos recordar eliminar el término «single», que en la captura anterior está incluido en caso de haber seleccionado el kernel en modo de recuperación.

En la actualidad, es necesario utilizar las combinaciones de teclas Ctrl + X o F10 para iniciar el modo de usuario simple (single-user). Una vez en la línea de consola, ejecutamos el siguiente comando:

Este comando nos permitirá cargar el terminal bash en modo de lectura y escritura, lo que nos dará la capacidad de restablecer la contraseña de root. Al hacer esto, habilitaremos los permisos de escritura en el gestor de inicio del sistema y podremos realizar modificaciones en el sistema operativo.

En este punto, tendremos la opción de cambiar o eliminar la contraseña de root. Si deseamos cambiarla, simplemente escribimos la nueva contraseña y la confirmamos. Si queremos eliminarla, no ingresamos ningún texto y confirmamos. Así, la contraseña será eliminada y ya no será solicitada al ingresar al usuario root.

Una vez realizado este proceso, podemos reiniciar Linux y acceder al usuario root utilizando la contraseña que hemos establecido previamente, o ingresar directamente si la hemos eliminado.

Con estos sencillos pasos, lograremos cambiar o eliminar la contraseña de root. Solo debemos prestar atención a las opciones que elegimos en los pasos intermedios, ya que son la parte más complicada de este método. Los demás pasos son simples y en pocos minutos podremos tener nuestra contraseña root cambiada o eliminada. Sin embargo, te recomendamos encarecidamente cambiarla, ya que eliminarla puede ser altamente peligroso y no es recomendable en absoluto.

¿Cómo proteger el GRUB?

Hoy en día, la seguridad es de vital importancia, tanto en entornos domésticos como laborales. Sin embargo, en entornos laborales es especialmente crucial. Aunque siempre es bienvenida una mejora en la seguridad, hay situaciones en las que se debe prestar especial atención a este tema. Estas situaciones incluyen:

  • Entornos laborales y profesionales.
  • Equipos compartidos por diferentes usuarios.
  • Portátiles que no se encuentran permanentemente en casa.
  • Equipos que son utilizados frecuentemente por otros usuarios y quedan desatendidos en ocasiones.

Existen diferentes métodos para proteger el GRUB, mediante el uso de contraseñas, y podemos aplicar varios pasos para lograrlo:

  • Bloquear el acceso a la línea de comandos del GRUB.
  • Impedir la edición de las entradas del GRUB.
  • Evitar la ejecución de las entradas del GRUB.

Es recomendable tomar precauciones y realizar una copia de seguridad para tener un punto de retorno en caso de cometer algún error que afecte al funcionamiento del equipo. Además, debemos definir los usuarios y sus contraseñas, incluidos aquellos que tendrán la capacidad de realizar modificaciones en el Grub. Esta acción debe ir acompañada de un sistema de cifrado de contraseñas. Una vez hecho esto, procedemos a actualizar el Grub, donde podremos establecer bloqueos para la ejecución o edición de las entradas de esta función.

En esta etapa final, tenemos cierta libertad para manejar permisos y reglas diferentes. Sin embargo, la complejidad puede ser alta y se requerirá cierto nivel de conocimientos, sobre todo si creamos reglas complejas con permisos de alto nivel. Por lo general, esto se realiza en entornos profesionales, y la facilidad o dificultad dependerá de la cantidad de usuarios que requieran diferentes niveles de permisos.

¿Podemos considerar esto como un fallo de seguridad en Linux?

Si bien el método pareciera sencillo, es importante tener en cuenta que se requiere acceso físico a la computadora o servidor, o al menos una interfaz de administración con acceso físico al equipo, para poder acceder como root. No es posible hacerlo de forma remota a través de protocolos como SSH o Telnet, únicamente se puede lograr con acceso físico.

Si deseas evitar que alguien utilice este método para cambiar o eliminar la clave de root, debes incorporar una contraseña de autenticación en el GRUB. Sin esta contraseña, no será posible iniciar el GRUB y proceder con el paso mencionado. Otra opción es cifrar completamente la partición del sistema operativo con LUKS o herramientas similares, de esta manera, no será posible acceder ni cambiar el sistema operativo sin conocer la contraseña correspondiente.

Artículos relacionados