Mikrotik: Забанить хост, если от него поступает слишком много HTTP-запросов

Mikrotik: Забанить хост, если от него поступает слишком много HTTP-запросов

Вчера я заметил странную активность моего скромного веб-сервера: он был умеренно теплым, подергивались головки жесткого диска, а активность локальной сети была необычно высокой.

Когда я посмотрел логи, то обнаружил, что какой-то хостер сканирует мой веб-сервер на предмет документов, используя метод подбора имен файлов.

Есть ли какая-либо защита от подобной атаки методом перебора, которую я мог бы реализовать в RouterOS?

решение1

Да, защита есть. По сути, вам придется добавить правило брандмауэра для обнаружения таких хостов (критерий: несколько соединений tcp/port 80 с одного хоста), и когда оно у вас есть, добавьте этот исходный IP в список адресов.

/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 

Затем заблокируйте входящие соединения с этого списка адресов.

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

Вам нужно настроить лимит (здесь 200). А также цепочку (ввод, если веб-сервер — это устройство mikrotik, пересылка, если это другой веб-сервер)

Это адаптировано из вики: http://wiki.mikrotik.com/wiki/DoS_атака_защита

решение2

Ответ Бенуа позволяет блокировать хосты, делающие одновременные запросы. Но если они закрывают соединения так же быстро, как и открывают, вы можете не успеть отфильтровать их по многим из них. Другая логика — использовать, dst-limitкоторые имеют ограничение скорости.

  • Добавляем список ограничений по скорости:
/ip firewall address-list
add list=rate-limit
  • Затем мы устанавливаем правила фильтрации:
    • Переход к цепочке ограничения скорости для всех новых подключений в глобальной сети (WAN);
    • Проверьте, было ли 10 подключений за последнюю минуту с интервалами в 5 подключений на основе dst-addressи сбросом через 2 минуты бездействия.
    • Если достигнуто dst-limit, действие возврата пропускается и выполняется следующее действие в цепочке rate-limit — add-src-to-address-listк списку rate-limit с таймаутом 10 минут.
/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
  • Наконец, мы добавляем каплю в сыром виде, таким образом экономя ресурсы:
/ip firewall raw
add action=drop chain=prerouting src-address-list=rate-limit

Вы можете поиграть с количеством подключений и таймингами для тонкой настройки в соответствии с конкретными потребностями. Вы можете контролировать на вкладке Firewall/Conncetions с фильтром для вашего публичного IP, чтобы увидеть

Связанный контент