Настраиваем защиту от атак BruteForce на роутерах Mikrotik

  • Автор:

Mikrotik-brute-force-000.pngАтаки "грубой силой" (BruteForce) - весьма распространенный тип атак в сети интернет, который сводится к попытке подбора пароля методом его перебора. Кроме этого, атакующие используют библиотеки словарных слов и списки скомпрометированных паролей, поэтому, даже если у вас используются сложные пароли, не стоит беспечно относиться к подобным угрозам. Конечно, полностью защититься от перебора паролей нельзя, но можно серьезно затруднить этот процесс блокируя атакующих и тем самым уменьшая скорость перебора. В данной статье мы рассмотрим, как защитить от данной атаки Winbox и WebFig роутеров Mikrotik.

Онлайн-курс по MikroTik
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Мы не будем разбирать вопрос, по какой именно причине интерфейсы Winbox и WebFig смотрят во внешний мир, потому что это тема отдельной статьи, в данном случае мы будем рассматривать исключительно меры защиты от перебора паролей. При этом подразумевается, что данные интерфейсы используются и легальными пользователями, которые должны иметь право на ошибку.

Защита Winbox от BruteForce

Winbox - это самый популярный метод управлениями устройствами Mikrotik и поэтому он достаточно популярен у взломщиков, поэтому наша задача определить попытки неверного ввода паролей и после нескольких попыток заблокировать атакующего. На наш взгляд легальному пользователю достаточно дать три попытки в течении одной минуты, это вполне укладывается в логику работы легального пользователя, который после безуспешной попытки будет проверять раскладку, сверяться с записями, а не будет тупо долбиться. Если же попытки войти происходят чаще, то перед нами скорее всего атакующий.

Как определить неверный ввод пароля? Достаточно просто, в ответном пакете роутер сообщит открытым текстом:

invalid user name or password

А получатель такого пакета будет являться предметом нашего повышенного интереса. Но прежде всего отследим само событие, для этого откроем IP - Firewall - Mangle и создадим правило: Chain - output, Protocol - tcp, Src.Port - 8291.

Mikrotik-brute-force-001.pngЗатем на закладке Advanced добавим критерий: Content - invalid user name or password.

Mikrotik-brute-force-002.pngА на закладке Action укажем действие jump и в поле Jump Target укажем имя пользовательской цепочки, в нашем случае FB-WB (Fail2Ban Winbox).

Mikrotik-brute-force-003.png

Это же правило в терминале:

/ip firewall mangle
add action=jump chain=output content="invalid user name or password" jump-target=FB-WB protocol=tcp src-port=8291

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

А теперь начнем создавать правила для нашей цепочки и будем делать это от конца к началу. Для этого мы будем использовать несколько списков адресов и на основании повторения адреса в списках принимать решение о блокировке. Легальный пользователь будет иметь три попытки в течении минуты.

Там же, в IP - Firewall - Mangle, создадим правило: Chain - FB-WB. На закладке Advanced указываем Dst. Address List - FB-WB-3, а в Action - add dst to address list, Address List - FB-WB-BAN, Timeout - 1d 00:00:00.

Mikrotik-brute-force-004.pngВ терминале:

/ip firewall mangle
add action=add-dst-to-address-list address-list=FB-WB-BAN address-list-timeout=1d chain=FB-WB dst-address-list=FB-WB-3

Данным правилом мы проанализировали адрес назначения ответного пакета роутера и если он есть в списке FB-WB-3, т.е. успел три раза вести неверный пароль, то отправляем его в список FB-WB-BAN сроком на одни сутки.

После чего подобным образом создадим правила на заполнение остальных списков. Так если адрес есть в списке FB-WB-2, то добавляем его в список FB-WB-3 на одну минуту, если адрес есть в FB-WB-1, то добавляем его на минуту в FB-WB-2, а если его нет ни в одном списке, то добавим в FB-WB-1 тоже на одну минуту:

/ip firewall mangle
add action=add-dst-to-address-list address-list=FB-WB-3 address-list-timeout=1m chain=FB-WB dst-address-list=FB-WB-2
add action=add-dst-to-address-list address-list=FB-WB-2 address-list-timeout=1m chain=FB-WB dst-address-list=FB-WB-1
add action=add-dst-to-address-list address-list=FB-WB-1 address-list-timeout=1m chain=FB-WB

Для проверки правильности работы несколько раз пытаемся указать неверные учетные данные и наблюдаем как адрес атакующего последовательно заполняет списки от FB-WB-1 до FB-WB-BAN.

Mikrotik-brute-force-005.png

Теперь дело за малым - заблокировать атакующих. Для этого переходим в IP - Firewall - Raw и создаем правило: Chain - Prerouting. Затем на закладке Advanced добавляем Src. Address List - FB-WB-BAN и на закладке Action указываем действие drop.

/ip firewall raw
add action=drop chain=prerouting src-address-list=FB-WB-BAN

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

Защита WebFig от BruteForce

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

Анализировать мы также будем ответы роутера с порта веб-сервера (80 TCP), в случае неверных учетных данных RouterOS 6 отвечает сообщением:

403 Forbidden

А RouterOS 7:

Error 403

А далее все как в предыдущем варианте. Прежде всего отправим все пакеты с нужным ответом в отдельную пользовательскую цепочку FB-WEB:

/ip firewall mangle
add action=jump chain=output content="403 Forbidden" jump-target=FB-WEB protocol=tcp src-port=80

А затем начнем заполнять списки адресов, точно также, от конца к началу. Для каждого адреса проверяется наличие в списке и если оно подтверждается он попадает в вышестоящий список. Три списка FB-WEB-1 - FB-WEB-3 заполняются на одну минуту и дают возможность легальному пользователю совершить три ошибки. Четвертый список FB-WEB-BAN предназначен для блокировки и срок нахождения в нем адресов - одни сутки.

/ip firewall mangle
add action=add-dst-to-address-list address-list=FB-WEB-BAN address-list-timeout=1d chain=FB-WEB dst-address-list=FB-WEB-3
add action=add-dst-to-address-list address-list=FB-WEB-3 address-list-timeout=1m chain=FB-WEB dst-address-list=FB-WEB-2
add action=add-dst-to-address-list address-list=FB-WEB-2 address-list-timeout=1m chain=FB-WEB dst-address-list=FB-WEB-1
add action=add-dst-to-address-list address-list=FB-WEB-1 address-list-timeout=1m chain=FB-WEB

После чего блокируем атакующих в таблице Raw:

/ip firewall raw
add action=drop chain=prerouting src-address-list=FB-WEB-BAN

Время нахождения в списках и количество попыток вы можете регулировать на свое усмотрение.

Защита WebFig SSL от BruteForce

А вот здесь у нас задача посложнее, при включении SSL защиты мы не можем анализировать содержимое ответного пакета и нам нужно найти какой-либо иной критерий, который бы указывал на попытку подбора паролей. В ходе наших исследований, эмпирическим путем было установлено, что в качестве критерия можно использовать размер ответного пакета, который составляет 317 байт для RouterOS 6 и 378 байт для RouterOS 7.

Важно! Данные цифры не являются официальными, а получены экспериментальным путем и в будущем могут иметь иные значения!

В остальном принцип защиты остается тем же, прежде всего направим соответствующие критерию пакеты в отдельную пользовательскую цепочку, только используем порт источника 443 и критерий на вкладке Advanced вместо Content должен быть Packet Size:

Mikrotik-brute-force-006.png

В терминале:

/ip firewall mangle
add action=jump chain=output jump-target=FB-SSL packet-size=317 protocol=tcp src-port=443

Далее точно также заполняем четыре таблицы:

/ip firewall mangle
add action=add-dst-to-address-list address-list=FB-SSL-BAN address-list-timeout=1d chain=FB-SSL dst-address-list=FB-SSL-3
add action=add-dst-to-address-list address-list=FB-SSL-3 address-list-timeout=1m chain=FB-SSL dst-address-list=FB-SSL-2
add action=add-dst-to-address-list address-list=FB-SSL-2 address-list-timeout=1m chain=FB-SSL dst-address-list=FB-SSL-1
add action=add-dst-to-address-list address-list=FB-SSL-1 address-list-timeout=1m chain=FB-SSL

А затем всех тех, кто добрался до последней таблицы блокируем в таблице Raw:

/ip firewall raw
add action=drop chain=prerouting src-address-list=FB-SSL-BAN

Как видим, защитить роутер Mikrotik от перебора паролей довольно несложно, но для этого нужно иметь определенный набор знаний и навыков, позволяющих выделить из потока трафика нужные сообщения или воспользоваться нашей статьей.

Онлайн-курс по MikroTik
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Дополнительные материалы:


Mikrotik

  1. Оборудование MikroTik класса SOHO. Общий обзор и сравнение возможностей
  2. Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование
  3. Базовая настройка роутера MikroTik
  4. Расширенная настройка DNS и DHCP в роутерах Mikrotik
  5. Автоматическое резервное копирование настроек Mikrotik на FTP
  6. Проброс портов и Hairpin NAT в роутерах Mikrotik
  7. Настройка IPTV в роутерах Mikrotik на примере Ростелеком
  8. Настройка VPN-подключения в роутерах Mikrotik
  9. Настройка черного и белого списков в роутерах Mikrotik
  10. Настройка выборочного доступа к сайтам через VPN на роутерах Mikrotik
  11. Настройка OpenVPN-сервера на роутерах Mikrotik
  12. Безопасный режим в Mikrotik или как всегда оставаться на связи
  13. Настройка Proxy ARP для VPN-подключений на роутерах Mikrotik
  14. Настраиваем Port Knocking в Mikrotik
  15. Резервирование каналов в Mikrotik при помощи рекурсивной маршрутизации
  16. Настраиваем родительский контроль на роутерах Mikrotik
  17. Настраиваем IKEv2 VPN-сервер на роутерах Mikrotik с аутентификацией по сертификатам
  18. Расширенная настройка Wi-Fi на роутерах Mikrotik. Режим точки доступа
  19. Mikrotik CHR - виртуальный облачный роутер
  20. Настройка контроллера CAPsMAN (бесшовный Wi-Fi роуминг) на Mikrotik
  21. Настройка VPN-подключения на роутерах Mikrotik если подсети клиента и офиса совпадают
  22. Настраиваем использование DNS over HTTPS (DoH) на роутерах Mikrotik
  23. Настройка PPTP или L2TP VPN-сервера на роутерах Mikrotik
  24. Установка Mikrotik CHR на виртуальную машину Proxmox
  25. Защита RDP от перебора паролей при помощи оборудования Mikrotik
  26. Настройка SSTP VPN-сервера на роутерах Mikrotik
  27. Настройка выборочного доступа к сайтам через VPN с автоматическим получением маршрутов по BGP на роутерах Mikrotik
  28. Особенности эксплуатации CA на роутерах Mikrotik: резервное копирование, экспорт и импорт сертификатов
  29. Настройка туннелей GRE и IPIP на роутерах Mikrotik
  30. Правильное использование Fast Path и FastTrack в Mikrotik
  31. DHCP Snooping - настройка защиты от неавторизованных DHCP-серверов на оборудовании Mikrotik
  32. Работа оборудования Mikrotik в режиме беспроводной станции (клиента)
  33. Используем режим ARP reply-only для повышения безопасности сети на оборудовании Mikrotik

The Dude

  1. The Dude. Установка и быстрое начало работы
  2. Централизованное управление обновлением RouterOS при помощи The Dude
  3. Централизованный сбор логов Mikrotik на сервер The Dude

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments