3 formas de proteger un servidor SSH en Linux

SSH es increíble, ya que nos permite obtener acceso de terminal a otras PC y servidores Linux a través de la red, ¡o incluso a Internet! Aún así, por sorprendente que sea esta tecnología, existen algunos problemas de seguridad evidentes que hacen que su uso sea inseguro. Si es un usuario medio, no es necesario instalar complicadas herramientas de seguridad SSH. En su lugar, considere seguir estos pasos básicos para proteger 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 utiliza. De forma predeterminada, el servidor SSH se ejecuta en el puerto 22. Para cambiarlo, abra una ventana de terminal. Dentro de la ventana de la terminal, SSH a la PC remota que aloja el servidor SSH.

ssh user@local-ip-address

Una vez que haya iniciado sesión, pase de un usuario normal a Root. Si tiene la cuenta Root activada, iniciar sesión con su es una buena opción. De lo contrario, deberá obtener acceso con sudo.

su -

o

sudo -s

Ahora que tiene acceso de administrador, abra el archivo de configuración SSH en Nano.

nano /etc/ssh/sshd_config

Desplácese por el archivo de configuración para «Puerto 22». Quite el # si hay uno, luego cambie «22» por otro número. Normalmente, un puerto por encima de 100, o incluso uno en el rango de 1000 será suficiente. Después de cambiar el número de puerto, presione la combinación de teclado Ctrl + O para guardar las ediciones. Luego, sal del editor presionando Ctrl + X.

  Cómo comprimir imágenes en Linux rápidamente con ImCompressor

La edición del archivo de configuración no va a cambiar inmediatamente su servidor SSH para usar el puerto correcto. En su lugar, deberá reiniciar manualmente el servicio.

systemctl restart sshd

La ejecución del comando systemctl debería reiniciar el demonio SSH y aplicar la nueva configuración. Si el reinicio del demonio falla, otra opción es reiniciar la máquina del servidor SSH:

reboot

Después de reiniciar el demonio (o la máquina), no se podrá acceder a SSH a través del puerto 22. Como resultado, la conexión a través de SSH requiere especificar manualmente el puerto.

Nota: asegúrese de cambiar “1234” con el puerto configurado en el archivo de configuración SSH.

ssh -p 1234 user@local-ip-address

Desactivar el inicio de sesión con contraseña

Otra excelente manera de proteger un servidor SSH es eliminar el inicio de sesión con contraseña y, en su lugar, pasar al inicio de sesión mediante claves SSH. Seguir la ruta de la clave SSH 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 cifrado que es difícil de descifrar.

  Cómo hacer un túnel SSH en Linux

Configure con una clave SSH en su servidor. Cuando haya configurado las claves, abra una terminal y abra el archivo de configuración SSH.

su -

o

sudo -s

Luego, abra la configuración en Nano con:

nano /etc/ssh/sshd_config

De forma predeterminada, los servidores SSH manejan la autenticación a través de la contraseña del usuario. Si tiene una contraseña segura, esta es una buena forma de hacerlo, pero una clave SSH encriptada en máquinas confiables es más rápida, conveniente y segura. Para finalizar la transición al «inicio de sesión sin contraseña», busque en el archivo de configuración SSH. Dentro de este archivo, desplácese y busque la entrada que dice «PasswordAuthentication».

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

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

systemctl restart sshd

Si no usa systemd, intente reiniciar SSH con este comando en su lugar:

service ssh restart

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

Deshabilitar cuenta raíz

Deshabilitar la cuenta raíz en su 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 Root, es imperativo que al menos un usuario en su servidor SSH pueda obtener Root a través de sudo. Esto asegurará que aún pueda obtener acceso a nivel de sistema si lo necesita, sin la contraseña de root.

  Cómo leer manga japonés en Linux

Nota: asegúrese 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, eleve el terminal a privilegios de superusuario:

sudo -s

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

passwd --lock root

Al ejecutar el comando anterior, se codifica la contraseña de la cuenta raíz para que sea imposible iniciar sesión a través de su. A partir de ahora, los usuarios solo pueden ingresar por SSH como un usuario local y luego cambiar a una cuenta Root a través de los privilegios de sudo.