Bloquear ataques de fuerza bruta al puerto SSH

Bloquear ataques de fuerza bruta al puerto SSH.

Los ataques de fuerza bruta conocidos como brute force attack, son la pesadilla de servidores y sitios web. Todos sufrimos en mayor o menor medida estos intentos de intrusión, y si hay algo goloso para un lamer es obtener acceso a un servidor vía SSH.

OJO!!!, no debemos confundir los ataques de fuerza bruta con los que intentan una denegación de servicio (DDos),son diferentes, el DDos nos inunda a peticiones hasta que cae el servicio, y el de fuerza bruta intenta averiguar nuestro password a base de probar y probar. Es recomendable usar contraseñas seguras, en un anterior articulo vimos un script bash generador de passwords.

Tal vez no seas consciente de la cantidad de intentos de intrusión que se producen al cabo del día, yo te aseguro que son muchos. Nosotros reportamos automáticamente cada intento de ataque o intrusión a la base de datos de Abuseipdb, no solo de sololinux, de todos nuestros servidores.

Brute Force SSH AbuseIpDb

Brute Force SSH Abuseipdb

 

Bloquear ataques de fuerza bruta al puerto SSH

La tarea de bloquear ataques de fuerza bruta al puerto SSH es sencilla si hacemos uso de las reglas de iptables. Vamos a implantar unas reglas que obligaran a iptables o nftables a bloquear cualquier ip, que haya intentado acceder a nuestro sistema vía ssh en un periodo de tiempo definido; a nosotros nos gusta 3 intentos en un tiempo máximo de 30 segundos, pero tu puedes poner el que quieras, por ejemplo 5 intentos en un minuto (60 segundos).

Supongo que tienes el puerto ssh abierto?, si no es el 22 modifica las reglas.

iptables -A INPUT  -p tcp --dport 22 -m state --state NEW -j ACCEPT

Insertamos las tres reglas en nuestra terminal linux (una por una):
iptables -A INPUT  -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH

iptables -A INPUT  -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 30 --hitcount 3 --rttl --name SSH -j LOG --log-prefix 'SSH-HIT-RATE: '
 '
iptables -A INPUT  -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 30 --hitcount 3 --rttl --name SSH -j DROP

Opciones que puedes modificar:
  • –dport: por defecto 22, puedes modificarlo.
  • –seconds: tiempo definido en segundos.
  • –hitcount: intentos de acceso máximos permitidos en el tiempo definido.

Si te quieres asegurar que las reglas se implantaron correctamente, puedes ejecutar el siguiente comando y revisar iptables o nftables.

iptables -L

Las nuevas reglas generaran registros fácilmente identificables, todos tienen el prefijo <SSH-HIT-RATE>.

Los podemos visualizar con el comando less:

less +F /var/log/messages

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

 

4 Comentarios

  1. Gonzalo
    24/12/2019
    • Sergio G.B.
      24/12/2019
  2. Miguel
    26/04/2020
    • Sergio G.B.
      26/04/2020

Agregar comentario