DDOS blacklist для mikrotik и squid


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

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

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 атаки микротика

/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

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

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

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

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *