Clicky

3 formas de asegurar un servidor SSH en Linux

Categoría: Internet (Tutoriales y trucos)
Visitas: 5402
SSH seguro

Deshabilitar contraseña de inicio de sesión o cambiar el puerto predeterminado

SSH es increíble, ya que nos permite obtener acceso a terminales para otras PC y servidores Linux a través de la red, ¡o incluso de Internet! Aún así, por increíble que sea esta tecnología, existen algunos evidentes problemas de seguridad que hacen que usarlo sea inseguro. Si eres un usuario promedio, no es realmente necesario instalar complicadas herramientas de seguridad SSH. En su lugar, considera seguir estos pasos básicos para asegurar un servidor SSH en Linux.

Cambiar el puerto de conexión predeterminado

Con mucho, la forma más rápida y sencilla de proteger un servidor SSH es cambiar el puerto que usa. Por defecto, el servidor SSH se ejecuta en el puerto 22. Para cambiarlo, abre una ventana de terminal. Dentro de la ventana de la terminal, conéctate por SSH a la PC remota que aloja el servidor SSH.

ssh usuario@direccion-ip-local

Una vez que hayas iniciado sesión, cambia de un usuario normal a Root. Si tienes la cuenta Root activada, es una buena opción iniciar sesión con su. De lo contrario, tendrás que obtener acceso con sudo.

su -

o

sudo -s

Ahora que tienes acceso de administrador, abre en Nano el archivo de configuración de SSH.

nano /etc/ssh/sshd_config

Desplázate por el archivo de configuración hasta "Port 22". Quita el # si hay uno, luego cambia "22" a otro número. Típicamente será suficiente un puerto por encima de 100, o incluso uno en el rango de 1.000. Después de cambiar el número de puerto, presiona la combinación de teclas Ctrl + O para guardar las ediciones. Luego, sal del editor presionando Ctrl + X.

La edición del archivo de configuración no cambiará inmediatamente tu servidor SSH al uso del puerto correcto. En cambio, deberás reiniciar manualmente el servicio.

systemctl restart sshd

Al ejecutar el comando systemctl, se debe reiniciar el daemon SSH y aplicar las nuevas configuraciones. Si reiniciar el daemon falla, otra opción es reiniciar su máquina servidor SSH:

reboot

Después de reiniciar el daemon (o la máquina), SSH no será accesible a través del puerto 22. Como resultado, la conexión a través de SSH requiere la especificación manual del puerto.

Nota: asegúrate de cambiar "1234" con el puerto configurado en el archivo de configuración SSH.

ssh -p 1234 usuario@direccion-ip-local

terminal Linux

Deshabilitar contraseña de inicio de sesión

Otra excelente forma de proteger un servidor SSH es eliminar el inicio de sesión con contraseña y, en su lugar, realizar la transición al inicio de sesión mediante las claves SSH. Al ir por la ruta de la clave SSH, se crea un círculo de confianza entre su servidor SSH y las máquinas remotas que tienen su clave. Es un archivo de contraseña encriptado que es difícil de descifrar.

Configura tu servidor con una clave SSH. Cuando hayas configurado las teclas, abre un terminal y abre el archivo de configuración SSH.

su -

o

sudo -s

Luego, abre la configuración en Nano con:

nano /etc/ssh/sshd_config

Por defecto, los servidores SSH manejan la autenticación a través de la contraseña del usuario. Si tienes una contraseña segura, esta es una buena forma de hacerlo, pero una clave SSH encriptada en máquinas de confianza es más rápida, más conveniente y segura. Para finalizar la transición al "inicio de sesión sin contraseña", busca en el archivo de configuración de SSH. Dentro de este archivo, desplázate y encuentra la entrada que dice "PasswordAuthentication".

Quite el símbolo # de delante de "PasswordAuthentication", y asegúrate de que tiene la palabra "no" delante de él. Si todo se ve bien, guarda las ediciones en la configuración SSH presionando Ctrl + O en el teclado.

Después de guardar la configuración, cierra Nano con Ctrl + X y reinicia SSHD para aplicar los cambios.

systemctl restart sshd

Si no usas systemd, intenta reiniciar SSH con este comando:

service ssh restart

La próxima vez que una máquina remota intente iniciar sesión en este servidor SSH, buscará las claves correctas y las dejará entrar, sin una contraseña.

Deshabilitar la cuenta raíz

Deshabilitar la cuenta raíz en tu servidor SSH es una forma de mitigar el daño que puede ocurrir cuando un usuario no autorizado obtiene acceso a través de SSH.

Para deshabilitar la cuenta raíz, es imperativo que al menos un usuario en tu servidor SSH pueda obtener Root a través de sudo. Esto asegurará que aún pueda obtener acceso a nivel del sistema si lo necesita, sin la contraseña de Root.

Nota: asegúrate de que los usuarios que pueden acceder a los privilegios de Root a través de sudo tengan una contraseña segura, o deshabilitar la cuenta de superusuario no tiene sentido.

Para deshabilitar Root, eleva los privilegios de terminal a superusuario:

sudo -s

El uso de sudo -s omite la necesidad de iniciar sesión con su y, en su lugar, concede un shell raíz a través del archivo sudoers. Ahora que el shell tiene acceso de superusuario, ejecuta el comando de contraseña y codifica la cuenta raíz con –lock.

passwd --lock root

La ejecución del comando anterior codifica la contraseña de la cuenta raíz para que no sea posible el inicio de sesión a través de su. A partir de ahora, los usuarios solo pueden SSH como usuario local, luego cambiar a una cuenta raíz a través de los privilegios sudo.