DDOS blacklist для mikrotik и squid

Защита от DDoS атаки сайта или белого IP адреса

DoS и DDoS атаки уже давно не редкость, часто, настойчивость “доморощенных хакеров”  достигает успеха – маршрутизатор или сайт становится недоступен, дабы избежать такой ситуации, необходимо правильно настроить файервол, отсекая попытки злоумышленников на старте.

DoS (Denial of Service) ­ – отказ в обслуживании возникает тогда, когда процессор загружен на 100%, вследствие чего, сайт или маршрутизатор может стать недоступным, перейдет в статус unreachable.
DDoS (Distributed Denial of Service), аналог DoS, но более  изощренный – это метод распределенных атак. Такие “нападения” осуществляются с разных IP адресов и подсетей, способных генерировать значительные объемы траффика.
На примере RouterOS от Mikrotik попробуем разобраться, как это работает и как значительно снизить опасность.
Как известно, наиболее эффективный способ DDoS атаки  это запросы SYN-флуд, на установку соединения, которые RouterOS старается обработать, выдавая ответ SYN+ACK, однако атакующая сторона не ждет ответа, посылая множественные запросы. Такие запросы (half open) подвисают и закрываются по таймауту, но достигнув критического количества, прогружают процессор до 100% и блокируют работу роутера.
Что бы избежать этого, можно ограничить допустимое количество таких запросов с одного IP адреса и поместить этот IP адрес в список блокируемых.
/ip firewall filter add chain=input protocol=tcp connection-limit=LIMIT,40  action=add-src-to-address-list address-list=blacklist-ddos address-list-timeout=3d

Как следует из правила, более 40 подключений с IP адреса и он помещается в список “blacklist-ddos”. Затем, нужно добавить еще правило, которое будет блокировать IP адреса из списка “blacklist-ddos”

/ip firewall filter add chain=input protocol=tcp src-address-list= blacklist-ddos 
connection-limit=3,32 action=tarpit

Такой нехитрый способ оградит от экспериментирующей школоты, в случае квалифицированной DDoS атаки, на борту Микротика должен быть актуальный список спам адресов, которые будем блокировать до установки соединения. Squid, fail2ban так же могут отсечь нежелательную активность с подозрительных IP адресов. Обычно, актуальный список я скачивал с QUIDBLACKLIST.ORG, но в последнее время, он не доступен, жаль, полезный был сурс…

Короче, пришлось искать источники для генерации списка подозрительных адресов, написать небольшой парсер, объединяющий разнородные списки. В результате Вы можете скачать актуальный список IP адресов спам блока – на сегодняшний день, в списке более 60000 адресов, обновляется blacklist раз в сутки.

Как скачать и подключить black-list на mikrotik

Скрипт с помощью которого можно настроить регулярное обновление и включить блокировку, состоит из двух частей, первая скачивает актуальный список ip адресов спам блока, вторая часть обновляет, т.е. удаляет старые адреса и импортирует новые. В связи с тем, что в списке более 60000 записей, процесс ресурсоемкий и лучше всего, это делать ночью.

DDOS blacklist для mikrotik и squid Город мастеров 2 DDOS blacklist для mikrotik и squid
Защита от DDoS атаки микротика
/tool fetch url="https://100uslug.com/scripts/ip-blacklist.rsc" mode=http;
:log info "Downloaded ip-blacklist.rsc";
:delay 15;
:log warning "Disabling system Logging";
/ip firewall address-list remove [find where comment="blacklist_100uslug_com"];
/import file-name=ip-blacklist.rsc;
:log info "Removed old blacklist_100uslug_com records and imported new list";
/system logging enable 0

Этот скрипт ставите в шедулер, например на 5 утра. Но для того что бы блокировать по списку ещё нужно добавить правило:

DDOS blacklist для mikrotik и squid Город мастеров 1 DDOS blacklist для mikrotik и squid

/ip firewall raw
add action=drop chain=prerouting comment="blacklist_100uslug_com" src-address-list="blacklist"

DDOS blacklist для mikrotik и squid Город мастеров DDOS blacklist для mikrotik и squid

Если вам нужно защитить сайт или “белый ip адрес” можно использовать этот список в fail2ban или squid.  Важно, что бы правило отрабатывалось в “prerouting”, т.е. на этапе запроса.

 

5 комментариев к “DDOS blacklist для mikrotik и squid”

  1. Добрый день. Поломался скрипт. После ~10100 адреса скрипт выдаёт script error: failure: already have such entry и прекращает обновлять листы. Интернет пишет, что в листе есть дубль, что и крашит.
    Заранее благодарны

    Ответить
    • Спасибо за подсказку, файл формируется из разных источников, потому и дубль попался.
      Поправил, больше такого быть не должно.
      Перезапустите скрипт.

      Ответить
  2. А так не проще

    :local sblPath “flashdisk/ip-blacklist.rsc”
    /tool fetch url=”https://100uslug.com/scripts/ip-blacklist.rsc” mode=http dst-path=$sblPath;
    :delay 30;
    /ip firewall address-list remove [find where comment=”blacklist_100uslug_com”];
    /import $sblPath;

    И список сделать динамическим допустим так, что бы не удалять каждый раз списки а заменять их тогда и эта строка не нужна будет
    /ip firewall address-list remove [find where comment=”blacklist_100uslug_com”];

    /ip firewall address-list
    add list=blacklist address=1.0.132.165 timeout=”1d 00:00:00″
    add list=blacklist address=1.0.133.100 timeout=”1d 00:00:00″
    add list=blacklist address=1.0.133.89 timeout=”1d 00:00:00″

    Ответить
      • ну я это делаю в самом rsc-шнике
        :log info “blacklist ip address list import started”
        /system logging disable 0
        /ip firewall address-list remove [find list=”blacklist”]
        /ip firewall address-list
        ****
        /system logging enable 0
        :log info “BlackList ip address list import complete.”

Добавить комментарий для Кирилл Отменить ответ