Cómo proteger con contraseña el modo de usuario único en CentOS 7


En uno de nuestros artículos anteriores, describimos cómo arrancar en modo de usuario único en CentOS 7. También se conoce como "modo de mantenimiento", donde Linux solo inicia un puñado de servicios para que la funcionalidad básica permita que un solo usuario (normalmente un superusuario ) realizan ciertas tareas administrativas, como usar fsck para reparar sistemas de archivos dañados.

En el modo de usuario único, el sistema ejecuta un shell de usuario único donde puede ejecutar comandos sin ninguna credencial de inicio de sesión (nombre de usuario y contraseña), aterriza directamente en un shell limitado con acceso a todo el sistema de archivos.

Este es un agujero de seguridad masivo, ya que les da a los intrusos acceso directo a un shell (y posible acceso a todo el sistema de archivos). Por lo tanto, es importante proteger con contraseña el modo de usuario único en CentOS 7 como se explica a continuación.

En CentOS/RHEL 7, los objetivos de rescate y emergencia (que también son modos de usuario único) están protegidos con contraseña de forma predeterminada.

Por ejemplo, cuando intenta cambiar el objetivo (nivel de ejecución) a través de systemd a rescue.target (también Emergency.target), se le pedirá una contraseña de root como se muestra en la siguiente captura de pantalla.

# systemctl isolate rescue.target
OR
# systemctl isolate emergency.target

Sin embargo, si un intruso tiene acceso físico a un servidor, puede seleccionar un kernel para arrancar desde el elemento del menú grub presionando la tecla e para editar la primera opción de arranque.

En la línea del kernel que comienza con "linux16" , él/ella puede cambiar el argumento ro a "rw init u003d/sysroot/bin/sh" e inicie en modo de usuario único en CentOS 7 sin que el sistema solicite una contraseña de root, incluso si la línea SINGLE u003d/sbin/sushell se cambia a SINGLE u003d/sbin/sulogin en el archivo/etc/sysconfig/init.

Por lo tanto, la única forma de proteger con contraseña el modo de usuario único en CentOS 7 es proteger GRUB con contraseña usando las siguientes instrucciones.

Cómo proteger con contraseña Grub en CentOS 7

Primero cree una contraseña segura encriptada usando la utilidad grub2-setpassword como se muestra.

# grub2-setpassword

El hash para la contraseña se almacena en /boot/grub2/user.cfg & user, es decir, "root" se define en el archivo /boot/grub2/grub.cfg, puede ver la contraseña usando el comando cat como se muestra.

# cat /boot/grub2/user.cfg

Ahora abra el archivo /boot/grub2/grub.cfg y busque la entrada de inicio que desea proteger con contraseña, comienza con menuentry . Una vez que se encuentra la entrada, elimine el parámetro --unrestricted de ella.

Guarde el archivo y cierre, ahora intente reiniciar el sistema CentOS 7 y modifique las entradas de inicio presionando la tecla e , se le pedirá que proporcione las credenciales como se muestra.

Eso es. Ha protegido con contraseña su menú GRUB de CentOS 7.