Mikrotik защита от брутфорса rdp

Освещаю, не отсвечивая))

Рубрики

Свежие записи

Есть сервис (-ы), количество соединений с которыми нельзя ограничивать. Соответственно возникает необходимость защититься от перебора паролей (bruteforce).

Рубить будем Микротик-ом.

Есть перенаправление портов, реализуемое с помощью dst-nat, после прохождения которого пакеты будут проверяться и в случае паразитной активности дропаться фильтрами файрволла. В двух словах — если наблюдаем несколько соединений в течении промежутка времени на защищаемый порт в состоянии new — нещадно дропаем.

Рассмотрим, в частности, защиту 3389(RDP) порта.

Задача: защитить RDP-сервера от подбора пароля.

Лучше всего, конечно, использовать VPN, но не всегда это возможно, поэтому рассмотрим другие способы.

Способ номер 1: использовать нестандартный порт.

Заключение: не работает.

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

Способ номер 2: использовать возможности МикроТика.

Заключение: работает.

Идея способа.

Мысль 1.

В начале установлении RDP-подключения на порт МикроТика “прилетают” пакеты со статусом NEW. Все остальные пакеты для установленной сессии будут иметь статус ESTABLISHED или RELATED. Windows XP при установлении подключения присылает 1 пакет со статусом NEW, Windows 10 до 3-х пакетов со статусом NEW.

Мысль 2.

Современные брутфорсеры не “ломятся” подбирать пароли, они спокойно их перебирают, посылая 1 запрос в течение 5-10 минут. Соответственно, нужно отслеживать такой “ленивый” подбор паролей. Нормальный пользователь RDP не будет каждые 10 минут переподключаться, поэтому если с какого-то IP-адреса в течение часа поступает 5-6 запросов на установление RDP-сессии, – это будет признаком брутфорсера. Допустим, что используется Windows 10… 3 пакета со статусом NEW умножить на 5 попыток в час = 15 пакетов со статусом NEW, т.е. если с какого-то адреса за час прилетает больше 15 новых пакетов, блокируем этот адрес на сутки. 🙂

Идея реализации.

  • Если прилетает любой пакет с адреса, который находится в списке Bruteforcers, игнорируем его.
  • “Прилетает” новый пакет с нового адреса, который не находится ни в каком списке, мы его отправляем в список BruteForcers_Step1.
  • Прилетает опять новый пакет, если он находится в списке BruteForcers_Step1, добавляем его в список BruteForcers_Step2
  • Прилетает опять новый пакет, если он находится в списке BruteForcers_Step2, добавляем его в список BruteForcers_Step3
  • Прилетает опять новый пакет, если он находится в списке BruteForcers_Step14, добавляем его в список BruteForcers_Step15
  • Прилетает опять новый пакет, если он находится в списке BruteForcers_Step15, добавляем его в список Bruteforcers

Код идеи.

# В цепоче forward

  • add action=drop chain=forward comment=”Block BruteForcers” in-interface-list=ISP src-address-list=BruteForcers
  • add action=jump chain=forward comment=”RDP. Go into the chain for detecting Bruteforcers” connection-state=new dst-port=3389 in-interface-list=ISP jump-target=BruteForcersDetect protocol=tcp

# Цепочка BruteForcersDetect

  • add action=add-src-to-address-list address-list=BruteForcers address-list-timeout=1d chain=BruteForcersDetect comment=”Adding an address to the list of Bruteforcers” log=yes src-address-list=BruteForcers_Step15
  • add action=add-src-to-address-list address-list=BruteForcers_Step15 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step15 src-address-list=BruteForcers_Step14
  • add action=add-src-to-address-list address-list=BruteForcers_Step14 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step14 src-address-list=BruteForcers_Step13
  • add action=add-src-to-address-list address-list=BruteForcers_Step13 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step13 src-address-list=BruteForcers_Step12
  • add action=add-src-to-address-list address-list=BruteForcers_Step12 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step12 src-address-list=BruteForcers_Step11
  • add action=add-src-to-address-list address-list=BruteForcers_Step11 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step11 src-address-list=BruteForcers_Step10
  • add action=add-src-to-address-list address-list=BruteForcers_Step10 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step10 src-address-list=BruteForcers_Step9
  • add action=add-src-to-address-list address-list=BruteForcers_Step9 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step9 src-address-list=BruteForcers_Step8
  • add action=add-src-to-address-list address-list=BruteForcers_Step8 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step8 src-address-list=BruteForcers_Step7
  • add action=add-src-to-address-list address-list=BruteForcers_Step7 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step7 src-address-list=BruteForcers_Step6
  • add action=add-src-to-address-list address-list=BruteForcers_Step6 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step6 src-address-list=BruteForcers_Step5
  • add action=add-src-to-address-list address-list=BruteForcers_Step5 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step5 src-address-list=BruteForcers_Step4
  • add action=add-src-to-address-list address-list=BruteForcers_Step4 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step4 src-address-list=BruteForcers_Step3
  • add action=add-src-to-address-list address-list=BruteForcers_Step3 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step3 src-address-list=BruteForcers_Step2
  • add action=add-src-to-address-list address-list=BruteForcers_Step2 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step2 src-address-list=BruteForcers_Step1
  • add action=add-src-to-address-list address-list=BruteForcers_Step1 address-list-timeout=30m chain=BruteForcersDetect comment=BruteForcers_Step1
  • add action=return chain=BruteForcersDetect comment=”End of chain and return.”

Идея уже работает на “боевых” МикроТиках… Нареканий пока нет. 🙂

PS.

PPS.

Таким способом можно защищать не только RDP, но и SSH, и другие ресурсы… 🙂

Если у вас есть маршрутизатор микротик, и на нем есть белый IP адрес и открыт стандартный порт ssh, то наверняка вы обращали внимание, что весь лог забит неудачными попытками входа в систему. В большинстве случаев, это связано с тем, что ssh нещадно брутфорсят, все кому ни лень. Сегодня покажу вам, как можно защититься от подобного на микротике. Мы сделаем, что то вроде fail2ban.

Команды будем вводить через терминал.

Заходим в винбокс, запускаем терминал и вводим:

После ввода этих команд, нужно перейти в IP — Firewall и переместить добавленные правила вверх списка правил.

Логика тут проста до безобразия — есть несколько шагов, для добавления IP адреса атакующего в бан. Каждый шаг — по сути, попытка подключения. Дается 4 попытки подключения, с максимальным интервалом по минуте, между попытками, если они привышены, адрес попадает в блэк лист. На 1 день.

За время бана отвечает параметр — address-list-timeout=1d во второй команде.

По такому же принципу можно банить, например подключения к RDP, если он проброшен, в этом случае нужно будет изменить порт с 22ого на 3389, и изменить chain на forward.
Т.е. будет что то вроде:

Есть еще один интересный способ блокирования брутфорсеров, если трафик летит не шифрованный, например ftp. Можно блокировать негодяев, анализируя содержимое пакетов:

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

Видеоуроки по настройке MikroTik

Нет возможности пройти очный тренинг MTCNA? Ему есть альтернатива. Минус – не будет официального сертификата. Плюсов гораздо больше. Во-первых, не надо никуда ехать, смотрите и пересматривайте видеоуроки тогда, когда вам удобно и столько раз, сколько нужно. Во-вторых, в курсе упор на практику, ее примерно в 4 раза больше, чем на очном обучении. Подробнее о курсе на странице « ]]> Настройка оборудования MikroTik ]]> », там же можно заказать бесплатно ]]> первые 25 уроков ]]> .

Оцените статью
Много толка
Добавить комментарий