
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-limit
quais 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-address
e 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-list
para 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