![Apple iOS 11 está causando problemas masivos de descarga de batería](/f/978aef11fd28018ad8ae7cdc6366010a.jpg?width=100&height=100)
Servidores en ejecución SSH suelen ser un blanco fácil para los ataques de fuerza bruta. Los piratas informáticos crean constantemente herramientas de software innovadoras y bots para automatizar ataques de fuerza bruta que aumentan aún más el riesgo de intrusión.
En esta guía, exploramos algunos de los consejos que puede implementar para proteger sus servidores SSH de ataques de fuerza bruta en Distribuciones de Linux basadas en RHEL y Derivados de Debian.
El método de autenticación predeterminado para SSH es autenticación de nombre de usuario/contraseña. Pero como hemos visto, la autenticación de contraseña es propensa a ataques de fuerza bruta. Para estar seguro, se recomienda implementar la autenticación SSH basada en claves donde la autenticación es posible mediante pares de claves SSH públicas y privadas. La clave privada permanece en la PC del cliente mientras que la clave pública se copia en el servidor.
Durante la autenticación de clave SSH, el servidor verifica si la PC cliente posee la clave privada. Si la verificación tiene éxito, se crea una sesión de shell o el comando enviado al servidor remoto se ejecuta con éxito. Tenemos una guía completa sobre cómo configurar la autenticación basada en clave SSH.
Incluso después de configurar la autenticación basada en claves, su servidor aún es susceptible a ataques de fuerza bruta por la sencilla razón de que la autenticación con contraseña aún está activa. Esto necesita ser deshabilitado.
Por lo tanto, edite el archivo de configuración de SSH predeterminado.
$ sudo vim /etc/ssh/sshd_config.
Selecciona el ContraseñaAutenticación parámetro a No
como se muestra.
Contraseña Número de autenticación
Luego guarde el archivo y vuelva a cargar SSH para aplicar los cambios.
$ sudo systemctl recargar ssh.
Escrito en Pitón, Fail2ban es un marco de prevención de intrusiones de código abierto que analiza los archivos de registro de los servicios para la autenticación fallas y prohibiciones IP que fallan repetidamente las verificaciones de autenticación de contraseña para una cantidad específica de tiempo.
Fail2ban supervisa constantemente los archivos de registro del servidor en busca de intentos de intrusión y otras actividades nefastas, después de un número predefinido de autenticación fallas: en la mayoría de los casos, 3 intentos de inicio de sesión fallidos: Fail2ban bloquea automáticamente el host remoto para que no acceda al servidor, y el host es guardado en un 'Celda' durante un período de tiempo específico.
Al hacerlo, Fail2ban reduce significativamente la tasa de intentos de autenticación de contraseña incorrectos. Consulte nuestra guía sobre cómo puede instalar y configurar Fail2ban en Linux para proteger su servidor de ataques de fuerza bruta.
Otra forma sencilla de proteger su servidor de los ataques de fuerza bruta es limitar el número de intentos de inicio de sesión SSH. De forma predeterminada, esto está configurado para 3, pero si por casualidad se establece en un valor más alto, configúrelo en 3 intentos de conexión como máximo.
Por ejemplo, para establecer el número máximo de intentos de conexión en 3, configure el MaxAuthTries parámetro a 3 como se muestra
MaxAuthTries = 3.
Una vez más, guarde los cambios y vuelva a cargar el servicio SSH.
$ sudo systemctl recargar ssh.
TCP wrappers es una biblioteca que proporciona un servidor basado Lista de control de acceso (LCA) que restringe el acceso a los servicios TCP por parte de clientes remotos en función de sus direcciones IP
Hosts remotos de acceder a los servicios en el sistema. Los envoltorios TCP utilizan el /etc/hosts.allow y /etc/hosts.deny archivos de configuración (en ese orden) para determinar si el cliente remoto puede acceder a un servicio específico o no.
Por lo general, estos archivos están comentados y todos los hosts pueden pasar por la capa de contenedores TCP. Las reglas para permitir el acceso a un servicio determinado se encuentran en el /etc/hosts.allow archivo y tienen prioridad sobre las reglas en el /etc/hosts.denegar archivo.
Las mejores prácticas recomiendan bloquear todas las conexiones entrantes. Por lo tanto, abra la /etc/hosts.deny archivo.
$ sudo vim /etc/hosts.deny.
Agregue la siguiente línea.
TODO TODO.
Guarde los cambios y salga del archivo.
Luego acceda a la /etc/hosts.allow archivo.
$ sudo vim /etc/hosts.allow.
Configure los hosts o dominios que pueden conectarse al servidor a través de SSH como se muestra. En este ejemplo, estamos permitiendo que solo dos hosts remotos se conecten al servidor (173.82.227.89 y 173.82.255.55) y negar el resto.
sshd: 173.82.227.89 173.82.255.55. sshd: TODOS: DENEGAR.
Guarde los cambios y salga del archivo de configuración.
Para probarlo, intente conectarse al servidor desde un host que no se encuentre entre aquellos a los que ha permitido el acceso. Debería obtener un error de permiso como se muestra.
$ ssh [correo electrónico protegido] kex_exchange_identification: lectura: conexión restablecida por pares. Restablecimiento de conexión por 173.82.235.7 puerto 22. conexión perdida.
Autenticación de dos factores proporciona una capa de seguridad adicional para la autenticación de contraseñas, lo que hace que su servidor sea más seguro frente a los ataques de fuerza bruta. Un ampliamente utilizado Autenticación de dos factores la solución es Aplicación de autenticación de Google y tenemos una guía bien documentada sobre cómo puede configurar la autenticación de dos factores.
Este fue un resumen de 5 mejores prácticas que puede implementar para prevenir Fuerza bruta SSH ataques de inicio de sesión y garantizar la seguridad de su servidor. También puedes leer Cómo proteger y fortalecer el servidor OpenSSH.