LinuxParty
Los servidores que ejecutan SSH suelen ser un objetivo 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 .
Deshabilite la autenticación de contraseña SSH y habilite la autenticación de clave SSH
El método de autenticación predeterminado para SSH es la 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 claves 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
Establezca el parámetro PasswordAuthentication no
como se muestra.
PasswordAuthenticationno
Deshabilitar la autenticación de contraseña SSH
Luego guarde el archivo y vuelva a cargar SSH para aplicar los cambios.
$ sudo systemctl reload ssh
Implementar la herramienta de prevención de intrusiones Fail2ban
Escrito en Python , Fail2ban es un marco de prevención de intrusiones de código abierto que escanea los archivos de registro de los servicios en busca de fallas de autenticación y prohíbe las IP que fallan repetidamente en las verificaciones de autenticación de contraseña durante un período de tiempo específico.
Fail2ban monitorea constantemente los archivos de registro del servidor en busca de intentos de intrusión y otras actividades nefastas. Después de una cantidad predefinida de fallas de autenticación (en la mayoría de los casos, 3 intentos de inicio de sesión fallidos), Fail2ban bloquea automáticamente el acceso del host remoto al servidor y el host se mantiene en un ' Cárcel ' por 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.
Limite el número máximo de intentos de autenticación SSH
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, está configurado en 3 , pero si por casualidad está configurado 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, establezca el parámetro MaxAuthTries en 3 como se muestra
MaxAuthTries = 3
Una vez más, guarde los cambios y vuelva a cargar el servicio SSH.
$ sudo systemctl reload ssh
Implemente contenedores TCP para limitar el acceso SSH de los clientes
TCP wrappers es una biblioteca que proporciona una lista de control de acceso ( ACL ) basada en host 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 contenedores TCP utilizan los archivos de configuración /etc/hosts.allow y /etc/hosts.deny (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 dado se colocan en el archivo /etc/hosts.allow y tienen prioridad sobre las reglas en el archivo /etc/hosts.deny .
Las mejores prácticas recomiendan bloquear todas las conexiones entrantes. Por lo tanto, abra el archivo /etc/hosts.deny .
$ sudo vim /etc/hosts.deny
Agregue la siguiente línea.
ALL: ALL
Guarde los cambios y salga del archivo.
Luego acceda al archivo /etc/hosts.allow .
$ 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, permitimos que solo dos hosts remotos se conecten al servidor ( 173.82.227.89 y 173.82.255.55 ) y denegamos el resto.
sshd: 173.82.227.89 173.82.255.55 sshd: ALL: DENY
Limite el acceso SSH a los clientes
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 Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo..7
kex_exchange_identification: lectura: conexión restablecida por pares
Restablecimiento de conexión por 173.82.235.7 puerto 22
conexión perdida
Implementar la autenticación de dos factores SSH
La autenticación de dos factores proporciona una capa de seguridad adicional a la autenticación de contraseña, lo que hace que su servidor sea más seguro frente a los ataques de fuerza bruta. Una solución de autenticación de dos factores ampliamente utilizada es la aplicación Google Authenticator y tenemos una guía bien documentada sobre cómo puede configurar la autenticación de dos factores .
Conclusión
Este fue un resumen de las 5 mejores prácticas que puede implementar para evitar ataques de inicio de sesión de SSH Brute Force y garantizar la seguridad de su servidor. También puede leer Cómo proteger y fortalecer el servidor OpenSSH.
-
Seguridad
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros