Mikrotik: Prohibir el host si recibe demasiadas solicitudes HTTP

Mikrotik: Prohibir el host si recibe demasiadas solicitudes HTTP

Ayer noté una actividad extraña en mi humilde servidor web: estaba moderadamente cálido, los cabezales de los discos duros se movían y la actividad de la LAN era inusualmente alta.

Cuando miré los registros, descubrí que algún host está escaneando mi servidor web en busca de documentos utilizando la fuerza bruta de los nombres de los archivos.

¿Existe alguna protección contra un ataque de fuerza bruta que pueda implementar en RouterOS?

Respuesta1

Sí, hay una protección. Básicamente, tendrá que agregar una regla de firewall para detectar dichos hosts (criterio: varias conexiones tcp/puerto 80 del mismo host) y, cuando tenga una, agregar esa IP de origen a una lista de direcciones.

/ip firewall filter add chain=input protocol=tcp dst-port=80 connection-limit=200,32  \
action=add-src-to-address-list  address-list=blocked-addr address-list-timeout=1d 

Luego, bloquee las conexiones entrantes de esa lista de direcciones.

/ip firewall filter add chain=input src-address-list=blocked-addr action=drop

Tienes que ajustar el límite (aquí, 200). Y también la cadena (ingrese si el servidor web es el dispositivo mikrotik, reenvíe si es otro servidor web)

Esto está adaptado de la wiki: http://wiki.mikrotik.com/wiki/DoS_attack_protection

Respuesta2

La respuesta de Benoit permite bloquear hosts que realicen solicitudes simultáneas. Pero si cierran las conexiones tan rápido como las abren, es posible que no pueda filtrar muchas de ellas. Otra lógica es utilizar dst-limitlos que tienen límite de tasa.

  • Agregamos una lista de límites de tarifas:
/ip firewall address-list
add list=rate-limit
  • Luego establecemos las reglas de filtrado:
    • Salte a la cadena de límite de velocidad para todas las conexiones nuevas en la WAN;
    • Compruebe si ha habido 10 conexiones durante el último minuto con ráfagas de 5 basadas en dst-addressy restableciendo después de 2 minutos de inactividad
    • Si se alcanza el límite dst, se omite la acción de retorno y se ejecuta la siguiente acción en la cadena de límite de velocidad, add-src-to-address-lista la lista de límite de velocidad con un tiempo de espera de 10 minutos.
/ip firewall filter
add chain=forward action=jump jump-target=rate-limit connection-state=new in-interface-list=WAN
chain=rate-limit action=return dst-limit=10/1m,5,dst-address/2m
chain=rate-limit action=add-src-to-address-list address-list=rate-limit address-list-timeout=10m
  • Finalmente, agregamos el drop en raw, así ahorramos recursos:
/ip firewall raw
add action=drop chain=prerouting src-address-list=rate-limit

Puede jugar con el recuento de conexiones y los tiempos para ajustarlos según necesidades específicas. Puede monitorear en la pestaña Firewall/Conncetions con filtro para ver su IP pública

información relacionada