Todo sobre Apple, Android, Juegos Apks y Sitios de Peliculas

Cómo (y por qué) deshabilitar el inicio de sesión raíz a través de SSH en Linux

Iniciar sesión como usuario root de Linux es una mala práctica. Iniciar sesión como root a través de una conexión SSH es aún peor. Te contamos por qué y te mostramos cómo prevenirlo.

La espada de dos filos

Necesita a alguien con autoridad para poseer y administrar aquellas partes de su sistema operativo que son demasiado importantes o demasiado sensibles para que las traten los usuarios habituales. Ahí es donde entra en juego root. root es el todopoderoso superusuario de los sistemas operativos Unix y Linux.

La cuenta de usuario root, como todas las cuentas, está protegida por una contraseña. Sin la contraseña del usuario root, nadie más puede acceder a esa cuenta. Eso significa que nadie más puede utilizar los privilegios y poderes de root. La otra cara es que la única defensa entre un usuario malintencionado y los poderes del root es esa contraseña. Las contraseñas, por supuesto, se pueden adivinar, deducir, encontrar escritas en algún lugar o forzarlas de forma bruta.

Si un atacante malintencionado descubre la contraseña de root, puede iniciar sesión y hacer lo que quiera en todo el sistema. Con los privilegios elevados de root no hay restricciones sobre lo que pueden hacer. Sería como si el usuario root se hubiera alejado de un terminal sin cerrar sesión, permitiendo un acceso oportunista a su cuenta.

Relacionado: Cómo arreglar el bucle de inicio de sesión de Ubuntu

Debido a estos riesgos, muchas distribuciones modernas de Linux no permiten que el root inicie sesión en la computadora localmente, y mucho menos a través de SSH. El usuario root existe, pero no tiene una contraseña establecida. Y, sin embargo, alguien tiene que poder administrar el sistema. La solución a ese enigma es la

 sudo  

dominio.

sudo permite a los usuarios nominados utilizar temporalmente privilegios de nivel raíz desde su propia cuenta de usuario. Debe autenticarse para usar sudo, lo cual se hace ingresando su propia contraseña. Esto le brinda acceso temporal a las capacidades de root.

Tus poderes de root mueren cuando cierras la ventana de la terminal en la que fueron utilizados. Si dejas la ventana de la terminal abierta, expirarán y automáticamente volverás al estado de usuario normal. Esto proporciona otro tipo de protección. Te protege de ti mismo.

Si habitualmente inicia sesión como root en lugar de como cuenta normal, cualquier error que cometa en la línea de comando podría ser catastrófico. Tener que usar sudo para realizar la administración significa que es más probable que estés concentrado y seas más cuidadoso con lo que escribes.

Permitir el inicio de sesión como root a través de SSH aumenta los riesgos porque los atacantes no tienen que ser locales; pueden intentar forzar su sistema de forma remota.

Relacionado: Cómo revisar el uso del comando sudo en Linux

El usuario root y el acceso SSH

Es más probable que se encuentre con este problema cuando administra sistemas para otras personas. Es posible que alguien haya decidido establecer una contraseña de root para poder iniciar sesión. Es necesario cambiar otras configuraciones para permitir que root inicie sesión a través de SSH.

Esto no sucederá por accidente. Pero lo pueden hacer personas que no comprenden los riesgos asociados. Si asume la administración de una computadora en ese estado, deberá informar a los propietarios por qué es una mala idea y luego hacer que el sistema vuelva a funcionar de forma segura. Si fue algo configurado por el administrador del sistema anterior, es posible que los propietarios no lo sepan.

Aquí hay un usuario en una computadora que ejecuta Fedora, haciendo una conexión SSH a una computadora con Ubuntu como usuario root de la computadora con Ubuntu.

ssh [email protected]

La computadora Ubuntu permite al usuario root iniciar sesión a través de SSH. En la computadora Ubuntu, podemos ver que se está realizando una conexión activa desde el usuario root.

who

Lo que no podemos ver es quién está usando esa sesión. No sabemos si la persona al otro lado de la conexión SSH es el usuario root o alguien que ha logrado obtener la contraseña de root.

Deshabilitar el acceso SSH para root

Para deshabilitar el acceso SSH para el usuario root, debemos realizar cambios en el archivo de configuración SSH. Este se encuentra en “/etc/ssh/sshd_config”. Necesitaremos usar sudo para escribir cambios.

sudo gedit /etc/ssh/sshd_config

Desplácese por el archivo o busque la cadena “PermitRootLogin”.

Establezca esto en “no” o comente la línea colocando una almohadilla “#” como primer carácter de la línea. Guarde sus cambios.

Necesitamos reiniciar el demonio SSH para que nuestros cambios entren en vigor.

sudo systemctl restart ssh

Si también desea evitar los inicios de sesión locales, desactive la contraseña de root. Estamos adoptando un enfoque de cinturón y tirantes y usando las opciones -l (bloquear) y -d (eliminar contraseña).

sudo passwd root -ld

Esto bloquea la cuenta y elimina la contraseña de la cuenta. Incluso si el usuario root está físicamente sentado frente a su computadora, no podrá iniciar sesión.

Una forma más segura de permitir el acceso raíz SSH

A veces encontrará resistencia administrativa a la hora de eliminar el acceso raíz a través de SSH. Si realmente no te escuchan, es posible que te encuentres en una posición en la que tengas que restablecerlo. Si este es el caso, debería poder comprometerse de una manera que reduzca el riesgo y aún permita inicios de sesión remotos desde el usuario root.

Relacionado: Cómo crear e instalar claves SSH desde el Shell de Linux

Usar claves SSH para establecer una conexión a través de SSH es mucho más seguro que usar contraseñas. Como no hay contraseñas involucradas, no se pueden forzar, adivinar ni descubrir de otro modo.

Antes de bloquear la cuenta raíz local, configure claves SSH en la computadora remota para que el usuario raíz pueda conectarse a su computadora local. Luego continúe, elimine su contraseña y bloquee su cuenta local.

También necesitaremos editar el archivo “sshd_config” una vez más.

sudo gedit /etc/ssh/sshd_config

Cambie la línea “PermitRootLogin” para que utilice la opción “prohibir contraseña”.

Guarde sus cambios y reinicie el demonio SSH.

sudo systemctl restart ssh

Ahora, incluso si alguien restablece la contraseña del usuario root, no podrá iniciar sesión a través de SSH usando una contraseña.

Cuando el usuario root remoto realiza una conexión SSH a su computadora local, las claves se intercambian y examinan. Si pasan la autenticación, el usuario root se conecta a su computadora local sin necesidad de una contraseña.

ssh [email protected]

No hay entrada

Rechazar conexiones remotas del usuario root es la mejor opción. Permitir que root se conecte usando claves SSH es la segunda mejor opción, pero sigue siendo mucho mejor que usar contraseñas.

Relacionado: Cómo controlar el acceso a sudo en Linux