Desde siempre, Linux se ha considerado un sistema operativo mucho más seguro que Windows. Y no porque no tenga vulnerabilidades (que las tiene, como cualquier software), sino por su naturaleza a la hora de controlar los permisos de los usuarios y de los programas que se ejecutan, limitando mucho lo que puede hacer cualquier elemento si no tiene permisos. Sin embargo, igual que Windows tiene su propia cuenta de administrador, muchas distros Linux traen por defecto una cuenta de root habilitada. Y esto puede poner en jaque total nuestra seguridad.
Por defecto, un usuario estándar de una distro Linux tiene un control muy limitado sobre el sistema. En otras palabras, solo puede trabajar dentro de su directorio y usar los programas que tenga instalados, siempre y cuando no requieran permisos elevados.
Si queremos instalar programas, o realizar cambios en el sistema, necesitaremos tener permisos elevados. Y estos se pueden conseguir de dos formas diferentes. La primera de ellas, y la más utilizada, es invocar a sudo. Este programa lo que hace es permitir a un usuario cualquiera del sistema ejecutar un comando con el nivel de privilegios de seguridad de otro usuario. Generalmente se utiliza para ejecutar comandos con los permisos de «root». Y, la segunda de ellas es iniciar sesión en el sistema como «root» a través del comando «su».
La diferencia entre ambos comandos es que, cuando usamos «sudo», debemos introducir la contraseña para ejecutar el comando, pero los permisos de superusuario desaparecen una vez finaliza la ejecución del mismo. Sin embargo, con «su» nos mantenemos administradores en el terminal de forma indefinida, hasta que nosotros mismos dejamos de ser root usando el comando «exit» y volvemos a tener nuestros privilegios normales.
Por qué desactivar la cuenta de root
Como podemos ver, usar la cuenta de root puede parecer, a simple vista, algo más cómodo. Pero, en realidad, supone un peligro importante para nuestra seguridad. Además, es mucho más cómodo usar «sudo» que «su» debido a que, de esta manera, solo vamos a tener que recordar una contraseña maestra (la de nuestro usuario) en lugar de tener que recordar también la contraseña del usuario raíz.
Si hay varios usuarios registrados en el sistema, cada uno de ellos puede invocar a «sudo» usando su propia contraseña. Si esta contraseña se expone, bastará con cambiar dicha contraseña y los demás usuarios no tendrán ni que enterarse de que esto ha ocurrido. Por el contrario, si se expone la contraseña del usuario root, además de poner en peligro todo el sistema, habría que cambiarla y compartirla con todos los demás usuarios administradores que usaran esta cuenta. Y, cuantos más usuarios sepan una contraseña, más probabilidad habrá de que esta se exponga.
Preparar Linux para deshabilitar la cuenta de root
Generalmente, la mayoría de las distribuciones Linux permiten a los usuarios hacer uso de «sudo» para ejecutar, con el primer usuario que creamos, tareas con permisos elevados de super-administrador. Sin embargo, nunca está de más comprobar que esto es posible, y que no se han realizado algunos otros cambios que nos impidan hacer uso de ella, antes de continuar.
Simplemente debemos ejecutar un comando que requiera permisos elevados (como apt) precedido del comando «sudo» y comprobar si, efectivamente, nuestro usuario puede hacer uso de esta herramienta. Linux nos pedirá introducir la contraseña de nuestro usuario antes de ejecutar el comando con los privilegios elevados.
Si no tenemos sudo instalado, antes de nada, tendremos que instalarlo. Y para ello no nos va a quedar otra opción que hacer uso de «su» para realizar la tarea con los permisos del usuario root.
Y, por último, si queremos limitar los usuarios que pueden o no pueden hacer uso del comando «sudo» podemos usar la herramienta «visudo». Esta herramienta nos permite abrir una copia del fichero de configuración «/etc/sudoers», y solo permitirá guardar los cambios cuando se trate de una configuración válida.
Bloquear la cuenta de root
Llegados a este punto ya habremos comprobado que, efectivamente, nuestra cuenta de usuario puede usar el comando «sudo» para ejecutar tareas con privilegios elevados. Entonces, ha llegado el momento de desactivar la cuenta de root del sistema para evitar que nadie pueda utilizarla, ni para bien ni para mal.
Para ello, simplemente debemos abrir un terminal y ejecutar el siguiente comando:
sudo passwd -l root
Este comando lo que hace es bloquear al usuario root para que nadie pueda usar el comando «su» o inicia sesión directamente en un TTY usando al usuario «root» junto a su contraseña. Si ahora intentamos ejecutar «su» en el sistema, nos daremos cuenta de que Linux no nos lo permite. Ahora, nuestra distro es un poco más segura.
Otros consejos de seguridad para Linux
Aunque desactivar la cuenta raíz de Linux nos brinda un plus de seguridad, hay otros pequeños trucos y algunas configuraciones a las que podemos recurrir para que nuestro sistema sea mucho más seguro.
Por ejemplo, uno de los factores fundamentales para que nuestro sistema esté correctamente protegido es asegurarnos de tenerlo siempre actualizado. Además de los programas que tenemos instalados, también debemos asegurarnos de que el núcleo de Linux (el Kernel) también está siempre al día, así como todos los paquetes que forman parte del sistema operativo.
Otro punto importante que debemos cuidar a la hora de proteger nuestro Linux es tener controlados los permisos de todos los usuarios. Si algo caracteriza a Linux es el gran control que nos ofrece sobre todo esto. Podemos configurar al milímetro, gracias a los permisos de usuario y los grupos, qué es lo que puede hacer cada usuario, o cada programa, y qué no. También configurar los permisos de las carpetas, especificando quién puede entrar a ellas y leer sus datos y quién no.
Un aspecto más a tener en cuenta es deshabilitar todos los servicios innecesarios. Normalmente, Linux habilita una serie de protocolos para facilitar su administración remota, pero es muy probable que no los necesitemos. En ese caso, lo que tenemos que hacer es deshabilitar todo aquello que no usemos (por ejemplo, el FTP o el Telnet) para evitar que puedan usar esos protocolos para conectarse de forma remota a nuestro PC.
Por supuesto, también es esencial asegurarnos de usar contraseñas seguras para todos los usuarios. Y, su puede ser con un sistema 2FA, mucho mejor. De esta manera nos aseguraremos de que los piratas informáticos no puedan poner en peligro nuestras cuentas con distintas técnicas de ataque y que nuestro equipo está conectado a Internet de forma segura.