Cómo desactivar el login root de los servidores que administramos

En la configuración predeterminada de soluciones avanzadas de alojamiento, como Servidores Cloud, Dedicados y VPS, se facilita el usuario root y la clave de acceso al servidor, de modo que se pueda realizar tareas de administración.  Sin embargo, una de las buenas prácticas para reforzar la seguridad de nuestros sistemas es limitar el acceso al servidor de manera directa con la cuenta root, algo que explicamos en este artículo.

Como comentábamos, los motivos de esta buena práctica son diversos, pero el fundamental es que vamos a impedir que cualquier posible atacante pueda llegar alguna vez a realizar login con el superusuario de nuestra máquina y permisos administrativos, lo que representa una traba adicional ante cualquier acción maliciosa.

Obviamente, antes de comenzar este proceso por el cual vamos a impedir el acceso por root, debemos asegurarnos de haber creado previamente una cuenta de usuario normal, que sea además capaz de adquirir permisos de administrador.

Editar la configuración de SSH

Para desactivar el permiso de inicio de sesión con el usuario root debemos editar la configuración del servicio SSH. El comando que realizaremos es el siguiente.

sudo nano /etc/ssh/sshd_config
  • Este comando se tiene que realizar por supuesto con permisos administrativos, para lo cual podemos perfectamente utilizar un usuario cualquiera del grupo de superusuarios sudo.
  • Puedes usar cualquier editor de textos de tu preferencia. Nano es uno bastante simple, aunque muchas personas prefieren vim.

Una vez abierto el archivo en el terminal, tenemos que hacer una búsqueda por una configuración llamada PermitRootLogin. Las búsquedas en el editor Nano se realizan mediante CTRL+w. Comprobaremos que la configuración actual en el archivo es yes, como se puede ver en la siguiente imagen.

Ten en cuenta que puedes localizar esta variable configuración en una línea comentada que empiece por #. Esa no es la que nos interesa. Tienes que encontrar la configuración sin comentar, o bien crearla tú mismo. El valor que debemos dejar en esta variable es no, de modo que no permitirá hacer login con root.

Salimos de Nano con CTRL+x y solicitamos que se sobreescriba el fichero.

Ahora, para que los cambios tengan efecto, debemos hacer el reinicio del servicio de SSH. Esto lo puedes ejecutar con el siguiente comando:

sudo systemctl reload ssh.service

Intento de acceso con el usuario Root

Por supuesto, ahora que hemos bloqueado el login con el usuario root, no te debería dejar realizarlo. Puedes comprobar esta configuración saliendo del servidor y ejecutando el login como habías realizado hasta ahora.

ssh root@0.0.0.0

Comprobarás que por mucho que coloques la clave de root, el servidor no te permite el acceso.

Por supuesto, esta operación es bastante delicada y no deberías realizarla si no tienes certeza de disponer de otro usuario ya establecido en tu máquina, capaz de adquirir permisos de administrador.