Mikrotik: Banir host se houver muitas solicitações HTTP dele

Mikrotik: Banir host se houver muitas solicitações HTTP dele

Ontem notei uma atividade estranha em meu humilde servidor web: estava moderadamente quente, estava mexendo nas cabeças do HDD e a atividade da LAN estava excepcionalmente alta.

Quando olhei os logs, descobri que algum host está verificando meu servidor web em busca de documentos usando força bruta de nomes de arquivos.

Existe alguma proteção contra esse ataque de força bruta que eu possa implementar no RouterOS?

Responder1

Sim, existe uma proteção. Basicamente, você terá que adicionar uma regra de firewall para detectar tais hosts (critérios: várias conexões tcp/porta 80 do mesmo host) e, quando tiver uma, adicionar esse IP de origem a uma lista de endereços.

/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 

Em seguida, bloqueie as conexões de entrada dessa lista de endereços.

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

Você tem que ajustar o limite (aqui, 200). E também a cadeia (entrar se o servidor Web for o dispositivo mikrotik, encaminhar se for outro servidor web)

Isto é adaptado do wiki: http://wiki.mikrotik.com/wiki/DoS_attack_protection

Responder2

A resposta de Benoit permite bloquear hosts que fazem solicitações simultâneas. Mas se eles fecharem as conexões tão rápido quanto as abrem, talvez você não consiga filtrar muitas delas. Outra lógica é usar dst-limitquais tenham limite de taxa.

  • Adicionamos uma lista de limites de taxa:
/ip firewall address-list
add list=rate-limit
  • Em seguida, definimos as regras de filtragem:
    • Salte para a cadeia de limite de taxa para todas as novas conexões na WAN;
    • Verifique se houve 10 conexões no último 1 minuto com rajadas de 5 com base no dst-addresse redefinindo após 2 minutos de inatividade
    • Se o limite dst for atingido, a ação de retorno será ignorada e a próxima ação na cadeia de limite de taxa será executada - add-src-to-address-listpara a lista de limites de taxa com tempo limite 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
  • Por fim, adicionamos a queda no raw, assim economizamos recursos:
/ip firewall raw
add action=drop chain=prerouting src-address-list=rate-limit

Você pode brincar com a contagem de conexões e os tempos para ajustar com base em necessidades específicas. Você pode monitorar na aba Firewall/Conexões com filtro para seu IP público ver

informação relacionada