MikroTik Fail2Ban (защита от атаки BruteForce)

Несколько вариантов защиты от BruteForce атак на устройствах MikroTik (Fail2Ban), для Winbox, Web или SSH подключений, используя MikroTik Firewall. Простая блокировка IP адреса атакующего после одной попытки неверного ввода пароля или блокировка IP адреса после нескольких попыток ввода пароля. Проверено на RouterOS 7 версии.

Выберите Fail2Ban вариант в зависимости от используемого метода входа, нет необходимости оставлять все доступные способы входа на устройство MikroTik (обычно я использую только Winbox).

В этой статье я использую цепочки Jump в MikroTik Firewall поскольку они меньше нагружают процессор устройства и указанный в статье способ блокировки легко адаптировать и расширять.

MikroTik Fail2Ban защита SSH, Web, Winbox подключений (MHelp.pro)
Пример правил MikroTik Firewall, для защиты от атак грубой силы SSH, Web и Winbox подключений.

✏️ Внимание: Так как BruteForce атака на устройство может исходить из внутренней доверенной сети (очень важно вовремя о этом узнать), по указанным правилам, все атакующие IP-адреса заносятся в BlackList.

Другие языки:

Fail2Ban Winbox (Защита MikroTik Winbox от Brute Force)

Защита MikroTik от перебора пароля (BruteForce) при подключении через Winbox (IP адрес), используя MikroTik Firewall. При каждой неверной попытке ввода пароля через Winbox, MikroTik отправляет в ответ незашифрованный текст «invalid user name or password».

Информация:

  • Chain: output
  • Protocol: 6 (tcp)
  • Src. Port: 8291
  • Content: invalid user name or password

8291 — это порт Winbox по умолчанию, рекомендую его изменить.

1 попытка

Блокировка после одной неверной попытки ввода пароля:

/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=output comment="F2B Winbox: Login Failure -> BlackList" content="invalid user name or password" protocol=tcp src-port=8291

3 попытки

Блокировка IP адреса назначения, после трех неверных попыток ввода пароля.

Описание:

  • Если пакет соответствует условиям, обработка пакета отправляется в цепочку Fail2Ban-Destination-IP;
  • Если IP адрес назначения уже находится в списке LoginFailure02, IP адрес назначения, добавляется в список BlackList, на 10 минут;
  • Если IP адрес назначения уже находится в списке LoginFailure01, IP адрес назначения, добавляется в список LoginFailure02, на 2 минуты;
  • IP адрес назначения, добавляется в список LoginFailure01, на 1 минуту.

Правила:

/ip firewall filter add action=jump chain=output comment="F2B Winbox: Jump to Fail2Ban-Destination-IP chain" content="invalid user name or password" jump-target=Fail2Ban-Destination-IP protocol=tcp src-port=8291
/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=Fail2Ban-Destination-IP comment="3 Attempt --> BlackList" dst-address-list=LoginFailure02
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure02 address-list-timeout=2m chain=Fail2Ban-Destination-IP comment="2 Attempt --> LoginFailure02" dst-address-list=LoginFailure01
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure01 address-list-timeout=1m chain=Fail2Ban-Destination-IP comment="1 Attempt --> LoginFailure01"

Fail2Ban Web (Защита MikroTik Web от Brute Force)

Защита MikroTik от перебора пароля (BruteForce) при подключении через Web интерфейс, используя MikroTik Firewall. При неверной попытке доступа MikroTik отправляет ответное сообщение содержащее незашифрованный текст «Error 403» .

80 — это порт по умолчанию Web интерфейса MikroTik , рекомендую его изменить. В примере указан нестандартный порт — 90. В статье Базовая настройка безопасности MikroTik — 80 TCP порт используется как ловушка, для блокировки сканера портов.

Информация:

  • Chain: output
  • Protocol: 6 (tcp)
  • Scr. Port: Web port (пример: 90)
  • Content: Error 403

1 попытка

Блокировка после одной неверной попытки ввода пароля:

/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=output comment="F2B Web: Login Failure -> BlackList" connection-state=established content="Error 403" protocol=tcp src-port=90

3 попытки

Блокировка IP адреса назначения, после трех неверных попыток ввода пароля.

Описание:

  • Если пакет соответствует условиям, обработка пакета отправляется в цепочку Fail2Ban-Destination-IP;
  • Если IP адрес назначения уже находится в списке LoginFailure02, IP адрес назначения, добавляется в список BlackList, на 10 минут;
  • Если IP адрес назначения уже находится в списке LoginFailure01, IP адрес назначения, добавляется в список LoginFailure02, на 2 минуты;
  • IP адрес назначения, добавляется в список LoginFailure01, на 1 минуту.

Правила:

/ip firewall filter add action=jump chain=output comment="F2B Web: Jump to Fail2Ban-Destination-IP chain" connection-state=established content="Error 403" jump-target=Fail2Ban-Destination-IP protocol=tcp src-port=90
/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=Fail2Ban-Destination-IP comment="3 Attempt --> BlackList" dst-address-list=LoginFailure02
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure02 address-list-timeout=2m chain=Fail2Ban-Destination-IP comment="2 Attempt --> LoginFailure02" dst-address-list=LoginFailure01
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure01 address-list-timeout=1m chain=Fail2Ban-Destination-IP comment="1 Attempt --> LoginFailure01"

Fail2Ban SSH (Защита MikroTik SSH от Brute Force)

Защита MikroTik (Fail2Ban) от попыток перебора пароля (BruteForce) при SSH подключении, используя MikroTik Firewall. Для запроса пароля через SSH, устройство MikroTik отправляет пакет размером 304 байта, адресу назначения, отслеживаем количество пакетов отправленных на определённый IP адрес.

✏️ Блокировка атак BruteForce используя статус соединения New — не является надежной (часто вижу эту рекомендацию в интернете). Статус New назначается соединению при новом подключении к устройству, но количество возможных попыток ввода пароля зависит от программы. Введя логин пользователя, злоумышленник может ввести от 3 до 7 различных вариантов пароля прежде чем подключение будет разорвано.

PuTTY разрывает SSH соединение после 7 неверных попыток паролей
7 попыток подбора пароля SSH пароля в PuTTY, до разрыва соединения

PuTTY разрывает SSH соединение после 7 неверных попыток паролей.

Информация:

  • Chain: input
  • Protocol: 6 (tcp)
  • Dst. Port: 22
  • Connection State: estabished
  • Packet Size: 304
  • TCP Flags: psh, ack

1 попытка

Блокировка после одной неверной попытки ввода пароля:

/ip firewall filter add action=add-src-to-address-list address-list=BlackList address-list-timeout=10m chain=input comment="F2B SSH: Login Failure -> BlackList" connection-state=established dst-port=22 packet-size=304 protocol=tcp

3 попытки

Блокировка IP адреса источника, после трех неверных попыток ввода пароля.

Описание:

  • Если пакет соответствует условиям, обработка пакета отправляется в цепочку Fail2Ban-Source-IP;
  • Если IP адрес источника находится в списке LoginFailure02, IP адрес источника, добавляется в список BlackList, на 10 минут;
  • Если IP адрес источника находится в списке LoginFailure01, IP адрес источника, добавляется в список LoginFailure02, на 2 минуты;
  • IP адрес источника, добавляется в список LoginFailure01, на 1 минуту.

Описание:

/ip firewall filter add action=jump chain=input comment="F2B SSH: Jump to Fail2Ban-Source-IP chain" connection-state=established dst-port=22 jump-target=Fail2Ban-Source-IP packet-size=304 protocol=tcp
/ip firewall filter add action=add-src-to-address-list address-list=BlackList address-list-timeout=10m chain=Fail2Ban-Source-IP comment="3 Attempt --> BlackList" src-address-list=LoginFailure02
/ip firewall filter add action=add-src-to-address-list address-list=LoginFailure02 address-list-timeout=2m chain=Fail2Ban-Source-IP comment="2 Attempt --> LoginFailure02" src-address-list=LoginFailure01
/ip firewall filter add action=add-src-to-address-list address-list=LoginFailure01 address-list-timeout=1m chain=Fail2Ban-Source-IP comment="1 Attempt --> LoginFailure01"

BlackList

Блокируем все данные от IP адресов из списка BlackList. Правило размещаем в цепочке Raw.

/ip firewall raw
add action=drop chain=prerouting comment="BlackList Drop All" src-address-list=BlackList

? Как настроить защиту от атак BruteForce (MikroTik Fail2Ban) на устройстве MikroTik используя Firewall обсуждалось в этой статье. Я надеюсь, что вы смогли настроить Fail To Ban защиту, для защиты SSH, Winbox и Web подключений от Brute Force. Однако, если вы столкнетесь с каким-то проблемами при настройке, не стесняйтесь написать в комментариях. Я постараюсь помочь.

4 комментария к “MikroTik Fail2Ban (защита от атаки BruteForce)”

  1. С какой частотой в вашем случае должен запускаться скрипт ? Попадут ли все IP в БАНЛИСТ если в между запусками скрипта было несколько попыток с разных IP или только первый IP или только последний IP ?

    Ответить
    • Можно сделать три попытки подбора пароля после чего IP адрес будет добавлен в «чёрный список» на заданное вами время. Все временные промежутки вы задаете сами исходя из ваших желаний. В зависимости от ваших настроек это может быть и 3 попытки в секунду и 3 попытки в неделю.

      Ответить

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