Ddos syn flood protect mikrotik

DoS attack protection

Contents

In general

DoS (Denial of Service) attack can cause overloading of a router. Which means that the CPU usage goes to 100% and router can become unreachable with timeouts. All operations on packets which can take significant CPU power like firewalling (filter, NAT, mangle), logging, queues can cause overloading if too many packets per second arrives at the router.

Generally there is no perfect solution to protect against DoS attacks. Every service can become overloaded by too many requests. But there are some methods for minimising the impact of an attack.

  • Get a more powerful router or server
  • Get a more faster uplink
  • Reduce the number of firewall rules, queues and other packet handling actions
  • Track attack path and block it closer to source (by upstream provider)

Types

TCP SYN flood

Diagnose

  • Are there too many connections with syn-sent state present?
  • Are there too many packets per second going through any interface?
  • Is CPU usage 100%?
  • Are there too many suspicious connections?

Protection

An IP address with too many connections can be added to a ‘black-list’ type address list for further blocking.

where LIMIT is the max. number of connection per IP. LIMIT should be a value of 100 or even higher as many services use multiple connection (HTTP, Torrent, other P2P programs).

Instead of simply dropping attacker’s packets (with ‘action=drop’) router can capture and hold connections and with a powerful enough router it can slow the attacker down.

Some advanced filtering can by applied to tcp packet state.

‘syn limit=400’ is a threshold, just enable rule in forward chain for syn packets to get dropped (for excessive amount of new connections)

Источник

SYN/DoS/DDoS Protection

A denial-of-service (DoS) or distributed denial-of-service (DDoS) attack is a malicious attempt to disrupt normal traffic of a targeted server, service, or network by overwhelming the target or its surrounding infrastructure with a flood of Internet traffic. There are several types of DDoS attacks, for example, HTTP flood, SYN flood, DNS amplification, etc.

Protection against DDoS

Configuration lines

These rules are only an improvement for firewall, do not forget to properly secure your device: Building Your First Firewall!

Configuration explained

First, we will send every new connection to the specific firewall chain where we will detect DDoS:

In the newly created chain, we will add the following rule with the «dst-limit» parameter. This parameter is written in the following format : dst-limit= count[/time],burst,mode[/expire]. We will match 32 packets with 32 packet burst based on destination and source address flow, which renews every 10 seconds. The rule will work until a given rate is exceeded.

So far all the legitimate traffic should go through the «action=return», but in the case of DoS/DDoS «dst-limit» buffer will be fulfilled and a rule will not «catch» any new traffic. Here come the next rules, which will deal with the attack. Let`s start with creating a list for attackers and victims which we will drop:

Читайте также:  Mikrotik vpn l2tp sstp openvpn производительность

With the firewall filter section, we will add attackers in the «DDoS-attackers» and victims in list «ddos-targets» list:

SYN Attack

SYN Flood

An SYN flood is a form of DoS attack in which an attacker sends a succession of SYN requests to a target’s system in an attempt to consume enough server resources to make the system unresponsive to legitimate traffic. Fortunately, in RouterOS we have specific feature for such an attack:

The feature works with sending back ACK packets that contain a little cryptographic hash, which the responding client will echo back with as part of its SYN-ACK packet. If the kernel doesn’t see this «cookie» in the reply packet, it will assume the connection is bogus and drop it.

SYN-ACK Flood

An SYN-ACK flood is an attack method that involves sending a target server spoofed SYN-ACK packet at a high rate. The server requires significant resources to process such packets out-of-order (not in accordance with the normal SYN, SYN-ACK, ACK TCP three-way handshake mechanism), it can become so busy handling the attack traffic, that it cannot handle legitimate traffic and hence the attackers achieve a DoS/DDoS condition. In RouterOS, we can configure similar rules from the previously mentioned example, but more specifically for SYN-ACK flood:

Источник

Создание домашней сети на базе устройств MikroTik: Часть 6 — Firewall защита доступа

Продолжение предыдущих статей по организации единой локальной сети.

В прошлых частях мы с Вами настроили единую локальную сеть через EoIP туннель построенном поверх OpenVPN.

К каким результатам мы пришли:
У нас встает вопрос безопасности нашей локальной сети, ведь китайские боты не спят и постоянно сканируют доступное сетевое пространство на наличие дыр и уязвимостей.
Имея статический IP мы подвержены риску быть взломанными. Т.к. наш статический IP доступен в интернете, он может подвергаться различного рода «атакам из вне».
Поэтому нам нужно сделать так, чтобы только мы могли подключаться к нашим роутерам и другим сервисам в локальной сети.
В принципе жесткую защиту мы делать не будем. У нас ведь не корпоративная сеть, а домашняя. Данной статьей мы попробуем закрыть самые распространенные пробелы в защите нашего роутера и локальной сети в общем. Не будем допускать банальных ошибок.

Организацию удаленного подключения мы рассмотрим в Седьмой статье т.к. эта статья получилась достаточно большой по наполнению.
Ну что, поехали…

За все операции обработки трафика в сетевых устройствах отвечает так называемый «Межсетевой экран» (Eng — Firewall)
Именно он определяет куда отправлять тот или иной пакет, как обрабатывать соединения и многое, многое другое…
Чтобы охватить весь спектр работы Firewall-а не хватит не только одной статьи, но и 10 или 20 статей точно. Настолько велики его возможности и вариации применения.
Кстати это касается не только MikroTik RouterOS, а принципа фильтрации трафика в общем в операционных системах (даже на Windows)!

Официальные данные на MikroTik Wiki: IP/Firewall/Filter [ENG]

Давайте взглянем, где находится этот самый Межсетевой экран в наших устройствах(ведь RouterOS одинакова на всем оборудовании MikroTik):
Он находится по пути IP -> Firewall
Путь до межсетевого экрана Окно для ввода правил фильтрации

Кратко пробежимся по основным вкладкам Firewall:
1 — Filter Rules — тут основные разрешающие и блокирующие правила.
2 — NAT — тут формируются перенаправления трафика.
3 — Mangle — тут происходит маркировка соединений и пакетов, отлов определенного вида трафика для дальнейшей его обработки.
Остальные вкладки пока рассматривать не будем, они нам не пригодятся.
4 — Raw — тут можно правилами отловить паразитный трафик и тем самым снизить нагрузку на CPU. Полезно для смягчения DOS атак.
5 — Service Ports — Для некоторых сетевых протоколов требуется прямое двустороннее соединение между конечными точками. Это не всегда возможно, поскольку трансляция сетевых адресов широко используется для подключения клиентов к сети. Это подменю позволяет настроить «помощники отслеживания соединений» для вышеупомянутых протоколов. Эти «помощники» используются для обеспечения правильного обхода NAT.
6 — Connections — тут отображаются все текущие соединения проходящие через маршрутизатор.
7 — Address List — тут списки адресов брандмауэра позволяют пользователю создавать списки IP-адресов, сгруппированных под общим именем. Затем фильтры брандмауэра, Mangle и NAT могут использовать эти списки адресов для сопоставления пакетов с ними.
8 — Layer7 Protocols — тут можно создавать шаблоны для поиска в потоках ICMP / TCP / UDP. L7 собирает первые 10 пакетов соединения или первые 2KB соединения и ищет шаблон в собранных данных.

Читайте также:  Где найти имя пользователя на роутере ростелеком

Часть терминов может показаться непонятной, но в этом нет ничего страшного, мы будем работать только с первым пунктом Filter Rules. Хотя в нем тоже, очень много вариантов создания правил.
Сразу нужно оговориться, что полной безопасности Вам никто не обеспечит и это важно понимать! Но боятся не стоит, мы ведь не популярная корпорация за которой ведется промышленный шпионаж, нам достаточно превентивных мер ))))

Конфигурация по умолчанию:

На MikroTik Wiki представлена базовая конфигурация в таком виде: Basic universal firewall script [ENG]

Вы можете использовать её или нет )
Я делаю несколько по своему, возможно что-то тут не идеально, и Вы обладая большим опытом подскажите мне в комментариях, как сделать лучше ))

1. Перейдем к созданию правил в Firewall Filter Rules

Правила добавляются по уже знакомой нам кнопке плюс…
Добавление правил

1.1. Перво наперво нам нужно разрешить уже установленные(Established) и связанные(Related) соединения и сбросить некорректные(Invalid) соединения для проходящих (маршрутизируемых) пакетов в цепочке Forward и предназначенных локальной системе в цепочке Input.
Так мы снизим нагрузку на маршрутизатор обработав эти данные сразу.
Зачем повторно обрабатывать эти соединения если они уже и так установлены или неизвестны. Экономим ресурсы процессора. Т.е. эти правила будут в самом начале нашей таблицы.

1.2. Далее необходимо обеспечить защиту. Продолжим мы с Лимита входящих соединений.
Это даст нам некоторую защиту от DDoS атак.

1.3. Следом идет защита от SYN флуда.
Что это такое можно почитать тут: https://ru.wikipedia.org/wiki/SYN-флуд или в более профильных изданиях.
Защищать мы будем, как проходящий трафик, так и входящий трафик. Путем создания отдельной цепочки SYN-Protect

1.4. Защита от сканеров портов (PSD — Port Scan Detection).
На счет данного правила есть разные мнения, кто-то считает, что оно не нужно, кто-то, что нужно.
Я же предпочитаю немного себя подстраховать. Тем более, что благодаря данному правилу Address Lists заполняется какими-то забугорными IP адресами )

1.5. Защита WinBox порта от перебора.
Логика обработки тут следующая.
1. Когда мы подключаемся к роутеру на порт 8291, то мы имеет состояние соединения new, правило добавляет наш IP в список уровня 1
2. Если мы не авторизовались и отключились, а после снова пытаемся подключиться, то мы опять будем иметь состояние соединения new. При этом наш IP адрес уже будет в Списке 1
Соответственно наш IP попадет в список уровня 2 и т.д до тех пор пока нас не заблокирует Правило 13, и уже после этого Правило 12 не будет нам давать возможность новых подключений к роутеру по порту 8291.
3. А если мы авторизовались, то наше соединение перейдет из состояния new в состояние established и обработка соединения уже будет вестись самым верхним правилом 2, которое нам все разрешает.
По сути у злоумышленника может быть всего четыре возможности Авторизоваться у нас на роутере через порт WinBox

Читайте также:  Делинк роутер настройка дир 615

1.6. Защита OpenVPN порта от перебора.
Данная защита делается абсолютно аналогично пункту 1.5.
Единственным отличием будут названия OpenVPN вместо WinBox и входящий TCP порт 1194
Поэтому просто повторяем действия
Консольно:

1.7. Разрешающее правило для прохождения любого трафика по VPN туннелям.

1.8. Разрешающее правило для прохождения только нормальных PING запросов.

1.9. Запрещающее правило
Нормально закрытый Firewall должен обязательно обладать таким правилом. Иначе все бессмысленно.
Выше мы обрабатываем соединения и разрешаем только то, что нам необходимо. Все остальное блокируем.
Это намного правильней, чем Разрешить все и блокировать только нужное Вам. А всего, что нужно заблокировать Вы наверняка не знаете.

2. Для ленивых
Если Вы дочитали до конца, значит у Вас пытливый ум и Вы хорошо представляете с чем столкнулись. Вы молодец.
Еще раз хотелось бы обозначить, что данная конфигурация не является идеальной. Я просто старался показать некоторые способы фильтрации трафика. Вам решать, использовать это у себя простым копипастом или подумать и сделать лучше! Но я уверен, что моё решение тоже не плохое =)

Все вышеизложенное в едином виде:
Консольно:

Бонус:
Работая с Firewall на родительском hEx роутере, обнаружил большой объем заблокированного трафика.
Решил посмотреть, в чем дело, включил логирование в правилах и обнаружил интересную ситуацию.
Оказалось, что местный провайдер не закрыл широковещательный трафик службы имен NetBIOS Name Service — UDP порт 137 (Остальные порты и информация: https://ru.wikipedia.org/wiki/NetBIOS)
И какой-то «Сосед» воткнул интернет кабель в простой ПК с Windows, тем самым создав тот самый паразитный трафик. Такие запросы с одного ПК могут занимать около 30 кбит/сек на вашем WAN порту.
Думаю можно себе представить если таких ПК в сети будет 100-150. Написали провайдеру, а пока он латает свои дыры, добавил правило блокировки. Только не в Firewall Filter, а в Firewall Raw.
Данная таблица полезна для уменьшения нагрузки на CPU и позволяет блокировать трафик на этапе Prerouting-а
Вот это правило:

Бонус 2:

Всего хорошего на просторах Интернета 😉

Список всех статей в хронологическом порядке: История статей

UPD 11.10.2018:
Статья обновлена исходя из опыта эксплуатации и дальнейшего перехода на работу со Списками интерфейсов
Для понимания, что это такое, изучите статью MikroTik RouterOS – Списки интерфейсов “Interface List”

UPD 12.08.2019:
В начало статьи добавлена заметка. Ряд читателей почему-то думает, что эта статья это вся настройка Firewall и удивляется, что нет интернета 🙂
Будьте внимательней!

UPD 05.10.2019:
Для тех кого интересует финальный результат и более лучшая защита, то рекомендую после прочтения данной статьи перейти к статье: MikroTik : RouterOS : Стучимся к себе домой. Firewall Filter PortKnocking

UPD: 31.03.2020:
Добавлен «Бонус 2» с правилами для роутера за серым IP провайдера

Источник