GNU/Linux >> Tutoriales Linux >  >> Ubuntu

11 mejores formas de proteger su servidor SSH

SSH se refiere a Secure Shells que ayuda a operar servicios de red como el inicio de sesión remoto en el servidor, la transferencia de archivos y otras operaciones relacionadas con servidores de forma segura en una red insegura o segura.

La configuración predeterminada de SSH no es suficiente para fortalecer el canal SSH; necesitamos configurar la configuración adicional para mejorar su seguridad al máximo. En este artículo, vamos a aprender 11 métodos para asegurar su servidor ssh.

Deshabilitar el inicio de sesión raíz a través del servidor SSH

Como el usuario raíz tiene acceso a todos los servicios en el servidor, es mejor no arriesgarse a que el sistema permita el inicio de sesión raíz remoto. Podría ser demasiado vulnerable si la contraseña queda expuesta al usar un ataque de fuerza bruta u otra herramienta de piratería. Por lo tanto, es una buena práctica deshabilitar el inicio de sesión raíz remoto y seguir con el usuario normal.

Para deshabilitar el inicio de sesión raíz remoto, abra el archivo sshd_config.

$ sudo vim /etc/ssh/sshd_config

Luego, establezca "PermitRootLogin" en no

Deshabilite el inicio de sesión del usuario raíz ssh.

Desactivar contraseña vacía

Algunas distribuciones de Linux crearán usuarios sin contraseñas, por lo que podría ser vulnerable permitir la conexión ssh con contraseñas vacías para el acceso remoto. Entonces, para deshabilitar este servicio, debemos configurar "PermitEmptyPasswords" en no en el archivo sshd_config.

PermitEmptyPasswords no

Deshabilitar inicio de sesión con contraseña vacía.

Utilice la autenticación basada en clave pública en el protocolo SSH.

Se recomienda encarecidamente utilizar la autenticación basada en clave pública, ya que el servidor SSH admite diferentes procesos de autenticación. El pirata informático intenta diferentes herramientas de piratería para descifrar la contraseña utilizando varios métodos, como el ataque de fuerza bruta. Para evitar que suceda, utilizamos autenticación basada en clave pública.

Primero, necesitamos generar una clave pública y una clave privada usando el comando ssh-keygen. Para generar la clave ejecute el siguiente comando. En el proceso, se le preguntará dónde generar la clave ssh, presione enter si desea continuar con el valor predeterminado. Luego se le pedirá una frase de contraseña que se refiere a la contraseña de su clave ssh, utiliza una contraseña segura que es la composición de un carácter especial, alfabeto y números. Una vez que se establece la contraseña, su clave ssh se generará en el directorio .ssh en su directorio de inicio.

$ ssh-keygen -t rsa

Generando pares de claves ssh.

Antes de cargar la clave pública, asegúrese de tener el directorio .ssh en su servidor remoto, si no crea uno en su directorio de inicio, luego cargue su clave ssh pública en el servidor usando el siguiente comando.

$ cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

Subiendo la clave pública al servidor.

Ahora puede iniciar sesión como usuario ubuntu usando una clave pública sobre el protocolo ssh.

Autenticación basada en clave pública.

Deshabilitar autenticación de inicio de sesión SSH con contraseña

Se recomienda encarecidamente utilizar la autenticación de clave pública ssh para el acceso remoto al servidor, ya que las contraseñas pueden quedar expuestas a través de ataques de fuerza bruta si no se utiliza una contraseña segura. Para deshabilitar la autenticación de contraseña del servidor SSH, establezca el valor "PasswordAuthentication" en no.

ContraseñaAutenticación no

Cambiar puerto predeterminado SSH 22.

De forma predeterminada, SSH se ejecuta en el puerto 22 del sistema. Si cambiamos el puerto estándar SSH, podría agregar una capa adicional de seguridad al evitar el tráfico inusual al puerto abierto. Por lo tanto, para cambiar el puerto no es simple, abra el archivo sshd_config y configure su número de puerto no utilizado deseado en la sección del puerto. En el siguiente ejemplo, configuré el puerto en 454.

Cambiar el puerto predeterminado de ssh.

Limitar el acceso de inicio de sesión de los usuarios mediante SSH.

El servidor SSH permite que todos los usuarios accedan al servidor de forma remota, pero podemos anular la configuración predeterminada y configurar solo usuarios específicos para permitir o denegar el acceso remoto a través del protocolo SSH. De una manera simple, tener acceso remoto a todos los usuarios del sistema inicia sesión creando una posible forma para que el pirata informático acceda a nuestro sistema.

Para permitir que los usuarios específicos inicien sesión a través de SSH, agregue la siguiente línea en sshd_config.

Permitir usuarios usuario1 usuario2 ubuntu

Y de manera similar, puede restringir a un usuario específico y permitir que otros accedan a través de SSH agregando la siguiente línea de código.

Denegar Usuarios raíz usuario3 usuario4

Mejore el uso de contraseñas seguras para usuarios/claves SSH.

Por lo general, las personas suelen usar contraseñas simples para iniciar sesión como 123456, algo123, para que puedan recordar las contraseñas fácilmente. Esta es la razón por la que un ataque de fuerza bruta funciona perfectamente, ya que funciona según el diccionario para intentar verificar la contraseña. Entonces, para evitar eso, debemos usar una contraseña que contenga caracteres especiales, letras mayúsculas y minúsculas, números y una contraseña mínima de 8 caracteres.

Configurar intervalo de tiempo de espera inactivo

Los usuarios a menudo mantienen su conexión SSH inactiva durante un período más largo, por lo que será un alto riesgo si alguien intenta hacerse cargo de su sesión SSH y hacer lo que quiera cuando los usuarios no están presentes en ese momento. Por lo tanto, podemos configurar el tiempo de espera de nuestra sesión de inicio de sesión después de un cierto período de inactividad para que necesitemos volver a iniciar sesión en el tiempo de espera de la sesión. Para configurar el tiempo de espera inactivo, debemos configurar el valor "ClientAliveInterval" en el archivo sshd_config. En el siguiente ejemplo, establecí el valor de tiempo de espera 360, que es de 6 minutos.

ClientAliveInterval 360

Usar el protocolo SSH 2

SSH tiene dos variantes del protocolo SSH protocolo 1 y SSH protocolo 2, el protocolo 1 es el predeterminado del sistema que es menos seguro que el protocolo 2 ya que el protocolo 2 aplica cifrado masivo, algoritmos robustos y controles criptográficos. Para cambiar al protocolo 2, debemos agregar la siguiente línea en el archivo sshd_config.

Protocolo 2

Usando el protocolo ssh 2.

Configurar un límite para intentos de contraseña

Podemos limitar la cantidad de intentos de contraseña para el inicio de sesión ssh, por lo que después de un número limitado de intentos, la conexión se interrumpirá, lo que agregará una capa adicional de seguridad que evitará que el sistema sea atacado por bots. Para lograr esto, debemos establecer el valor de la directiva "MaxAuthTries". En el ejemplo, he establecido su límite para 4 intentos.

MaxAuthTries 3

Limite el intento de inicio de sesión ssh.

Desactivar tunelización y reenvío de puertos

Si no va a utilizar el servicio de tunelización y reenvío de puertos, es mejor mantenerlo desactivado, ya que un hacker podría utilizar estos servicios para acceder a su sistema. Para lograrlo, establezca el siguiente valor de directiva en no.

Permitir reenvío de agentes no

AllowTcpForwarding no

PermitTunnel no

Finalmente, después de que todo esté configurado, no olvide reiniciar su servidor ssh para aplicar los cambios

$ sudo systemctl restart ssh

Conclusión

En este artículo, aprendemos algunas formas comunes de fortalecer los servidores SSH que ayudan a evitar diferentes riesgos de seguridad. Espero que les guste este artículo.


Ubuntu
  1. 3 formas en que configuro SSH para la privacidad

  2. Inicio de sesión SSH en el servidor RHEL 7 sin contraseña

  3. Prácticas recomendadas de seguridad de OpenSSH

  4. Un script BASH simple para la instalación posterior del servidor Ubuntu

  5. Conéctese a un servidor usando SSH en Linux o Mac OS X

Cómo conectarse a su servidor a través de SSH

Cómo configurar la clave SSH en un servidor Plesk

Cómo agregar una clave pública SSH al servidor

10 consejos prácticos de fortalecimiento de SSH para proteger su servidor Linux

Cómo proteger SSH con Fail2Ban

5 prácticas recomendadas de seguridad SSH de Linux para proteger sus sistemas