MikroTik Fail2Ban (Bloqueo de ataques de BruteForce)

Various options to protect against BruteForce attacks on MikroTik devices (MikroTik Fail2Ban), for Winbox, Web or SSH connections using MikroTik Firewall. Simple blocking of the attacker’s IP address after the first wrong password attempt or blocking of the IP address after multiple password attempts. Tested on RouterOS 7 version.

Seleccione la opción Fail2Ban según el método de inicio de sesión utilizado, no es necesario utilizar todos los métodos de inicio de sesión disponibles en el dispositivo MikroTik (solo uso Winbox).

En este artículo, utilizo cadenas Jump en MikroTik Firewall porque consumen menos CPU y el método de bloqueo utilizado en el artículo es fácil de adaptar y ampliar.

MikroTik Fail2Ban - Bloqueo de ataques de BruteForce: SSH, Web, Winbox. (MHelp.pro)
Un ejemplo de reglas de MikroTik Firewall para proteger contra ataques de BruteForce en conexiones SSH, Web y Winbox.

✏️ Atención: Dado que un ataque de Brute Force en un dispositivo puede provenir de una red interna confiable (es muy importante averiguarlo a tiempo), de acuerdo con las reglas especificadas, todas las direcciones IP atacantes se ingresan en la BlackList.

Otros idiomas:

Fail2Ban Winbox

Proteger MikroTik de un ataque de fuerza bruta cuando se conecta a través de Winbox (dirección IP) usando MikroTik Firewall. Por cada intento de contraseña incorrecto a través de Winbox, MikroTik devuelve el texto sin formato «invalid user name or password» .

Información:

  • Chain: output
  • Protocol: 6 (tcp)
  • Src. Port: 8291
  • Content: invalid user name or password

1 intento

Bloqueo después de un intento de contraseña incorrecto:

/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=output comment="F2B Winbox: Login Failure -> BlackList" content="invalid user name or password" protocol=tcp src-port=8291

3 intentos

Bloqueo de la dirección IP de destino después de tres intentos de contraseña incorrectos.

Descripción:

  • Si el paquete cumple las condiciones, el procesamiento del paquete se envía a la cadena Fail2Ban-Destination-IP;
  • Si la dirección IP de destino ya está en la lista LoginFailure02, la dirección IP de destino se agrega a la BlackList durante 10 minutos;
  • Si la dirección IP de destino ya está en la lista LoginFailure01, la dirección IP de destino se agrega a la lista LoginFailure02 durante 2 minutos;
  • La dirección IP de destino se agrega a la lista LoginFailure01, durante 1 minuto.

Reglas:

/ip firewall filter add action=jump chain=output comment="F2B Winbox: Jump to Fail2Ban-Destination-IP chain" content="invalid user name or password" jump-target=Fail2Ban-Destination-IP protocol=tcp src-port=8291
/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=Fail2Ban-Destination-IP comment="3 Attempt --> BlackList" dst-address-list=LoginFailure02
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure02 address-list-timeout=2m chain=Fail2Ban-Destination-IP comment="2 Attempt --> LoginFailure02" dst-address-list=LoginFailure01
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure01 address-list-timeout=1m chain=Fail2Ban-Destination-IP comment="1 Attempt --> LoginFailure01"

Fail2Ban Web

Proteger MikroTik de la contraseña BruteForce cuando se conecta a través de la interfaz web usando MikroTik Firewall. En un intento de acceso no válido, MikroTik envía un mensaje de respuesta que contiene el texto sin formato «Error 403» .

80 es el puerto predeterminado de la interfaz web de MikroTik, recomiendo cambiarlo. En el ejemplo, se especifica un puerto no estándar: 90. En el artículo Protección MikroTik (configuración básica de seguridad del dispositivo), el puerto TCP 80 se usa como una trampa para bloquear el escáner de puertos.

Información:

  • Chain: output
  • Protocol: 6 (tcp)
  • Scr. Port: Web port (ejemplo: 90)
  • Content: Error 403

1 intento

Bloqueo después de un intento de contraseña incorrecto:

/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=output comment="F2B Web: Login Failure -> BlackList" connection-state=established content="Error 403" protocol=tcp src-port=90

3 intentos

Bloqueo de la dirección IP de destino después de tres intentos de contraseña incorrectos.

Descripción:

  • Si el paquete cumple las condiciones, el procesamiento del paquete se envía a la cadena Fail2Ban-Destination-IP;
  • Si la dirección IP de destino ya está en la lista LoginFailure02, la dirección IP de destino se agrega a BlackList durante 10 minutos;
  • Si la dirección IP de destino ya está en la lista LoginFailure01, la dirección IP de destino se agrega a la lista LoginFailure02 durante 2 minutos;
  • La dirección IP de destino se agrega a la lista LoginFailure01, durante 1 minuto.

Reglas:

/ip firewall filter add action=jump chain=output comment="F2B Web: Jump to Fail2Ban-Destination-IP chain" connection-state=established content="Error 403" jump-target=Fail2Ban-Destination-IP protocol=tcp src-port=90
/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=Fail2Ban-Destination-IP comment="3 Attempt --> BlackList" dst-address-list=LoginFailure02
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure02 address-list-timeout=2m chain=Fail2Ban-Destination-IP comment="2 Attempt --> LoginFailure02" dst-address-list=LoginFailure01
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure01 address-list-timeout=1m chain=Fail2Ban-Destination-IP comment="1 Attempt --> LoginFailure01"

Fail2Ban SSH

Proteger MikroTik (Fail2Ban) de ataques de BruteForce en la conexión SSH usando MikroTik Firewall. Para solicitar una contraseña a través de SSH, el dispositivo MikroTik envía un paquete de 304 bytes a la dirección de destino, rastreamos la cantidad de paquetes enviados a una dirección IP específica.

✏️ Bloquear los ataques de BruteForce usando el estado de conexión New no es confiable (a menudo veo esta recomendación en Internet). El estado New se asigna a una conexión cuando se conecta a un dispositivo, pero el número de posibles intentos de contraseña depende del programa. Al ingresar el inicio de sesión del usuario, un atacante puede ingresar de 3 a 7 opciones de contraseña diferentes antes de que finalice la conexión.

PuTTY interrumpe la conexión SSH después de 7 intentos de contraseña incorrectos
7 intentos de adivinar la contraseña SSH en PuTTY antes de desconectarse

Información:

  • Chain: input
  • Protocol: 6 (tcp)
  • Dst. Port: 22
  • Connection State: estabished
  • Packet Size: 304
  • TCP Flags: psh, ack

1 intento

Bloqueo después de un intento de contraseña incorrecto:

/ip firewall filter add action=add-src-to-address-list address-list=BlackList address-list-timeout=10m chain=input comment="F2B SSH: Login Failure -> BlackList" connection-state=established dst-port=22 packet-size=304 protocol=tcp

3 intentos

Bloqueo de la dirección IP de origen después de tres intentos de contraseña incorrectos.

Descripción:

  • Si el paquete cumple las condiciones, el procesamiento del paquete se envía a la cadena Fail2Ban-Source-IP;
  • Si la dirección IP de origen está en la lista LoginFailure02, la dirección IP de origen se agrega a BlackList durante 10 minutos;
  • Si la dirección IP de origen está en la lista LoginFailure01, la dirección IP de origen se agrega a la lista LoginFailure02 durante 2 minutos;
  • La dirección IP de origen se agrega a la lista LoginFailure01 durante 1 minuto.

Reglas:

/ip firewall filter add action=jump chain=input comment="F2B SSH: Jump to Fail2Ban-Source-IP chain" connection-state=established dst-port=22 jump-target=Fail2Ban-Source-IP packet-size=304 protocol=tcp
/ip firewall filter add action=add-src-to-address-list address-list=BlackList address-list-timeout=10m chain=Fail2Ban-Source-IP comment="3 Attempt --> BlackList" src-address-list=LoginFailure02
/ip firewall filter add action=add-src-to-address-list address-list=LoginFailure02 address-list-timeout=2m chain=Fail2Ban-Source-IP comment="2 Attempt --> LoginFailure02" src-address-list=LoginFailure01
/ip firewall filter add action=add-src-to-address-list address-list=LoginFailure01 address-list-timeout=1m chain=Fail2Ban-Source-IP comment="1 Attempt --> LoginFailure01"

BlackList

Bloqueamos todos los datos de las direcciones IP de la lista BlackList. Colocamos la regla en la cadena Firewall Raw.

/ip firewall raw
add action=drop chain=prerouting comment="Drop all" src-address-list=BlackList

? En este artículo se analizó cómo configurar la protección contra ataques BruteForce (MikroTIk Fail2Ban) en un dispositivo MikroTik usando MikroTik Firewall. Espero que pueda configurar la protección FailToBan para Winbox, Web y SSH de Brute Force. Sin embargo, si encuentra algún problema durante la configuración, no dude en escribir en los comentarios. Trataré de ayudar.

Deja un comentario