TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 8.99K subscribers
Post #6520 2.31K
Защита Mikrotik от брутфорса через SSH

Атаки на SSH – пожалуй самый распространенный тип атак, стоит только выставить 22 порт наружу как начнутся попытки подбора пароля.

Хороший вариант – настроить аутентификацию по ключу и запретить вход с логином и паролем, но у RouterOS нет такой возможности.

Поэтому будем выкручиваться другими методами, а именно считать пакеты со статусом NEW в течении некоторого небольшого времени, скажем 5 минут.

Здесь мы исходим из того, что легальный пользователь пришлет всего один такой пакет. Далее соединение будет установлено и пакеты пойдут со статусом ESTABLISHED. Ну максимум два, если пользователь неверно указал логин или не переключил раскладку (вход с паролем).

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

Ловить пакеты мы будем в mangle – PREROUTING и отправлять их в отдельную цепочку FB-SSH, где и будем выполнять все проверки.

Адрес источника каждого нового пакета на 22 порт мы помещаем в список FB-SSH-1 на пять минут. Если пришел повторный новый пакет, то отправляем адрес уже в список FB-SSH-2 на 15 минут.

Третий новый пакет отправится в список FB-SSH-3 уже на час и теперь если в течении часа последует еще одна попытка подключения – адрес источник улетит в бан на сутки.

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

Все это в терминале:

 firewall mangle
add action=jump chain=prerouting connection-state=new dst-port=22 in-interface=ether1 jump-target=FB-SSH protocol=tcp
add action=add-src-to-address-list address-list=FB-SSH-BAN address-list-timeout=1d chain=FB-SSH connection-state=new dst-port=22 protocol=tcp src-address-list=FB-SSH-3
add action=add-src-to-address-list address-list=FB-SSH-3 address-list-timeout=1h chain=FB-SSH connection-state=new dst-port=22 protocol=tcp src-address-list=FB-SSH-2
add action=add-src-to-address-list address-list=FB-SSH-2 address-list-timeout=15m chain=FB-SSH connection-state=new dst-port=22 protocol=tcp src-address-list=FB-SSH-1
add action=add-src-to-address-list address-list=FB-SSH-1 address-list-timeout=5m chain=FB-SSH connection-state=new dst-port=22 protocol=tcp


Банить будем в raw, на самом подлете:

 firewall raw
add action=drop chain=prerouting src-address-list=FB-SSH-BAN


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

Но будьте осторожны, чтобы самому не попасть под собственный фильтр и оставляйте запасные пути, например, через VPN.
  • 👍 28
  • ❤ 5
  • 😱 1
  • 🤝 1
More from @interface31
  1. Sep 23, 2026Post #6785
  2. Sep 23, 2026Когда vSphere уже «трофейная», а продлевать нечего 🙃 24 сентября в 11:00 (МСК) CNS и Orio…
  3. Sep 23, 2026Протоколы быстрого роуминга Wi-Fi 802.11k/v/r Начнем с того, что бесшовного Wi-Fi роуминга…
  4. Sep 23, 2026DarkHost — хостинг и VDS для ваших проектов Размещайте сайты, интернет-магазины, приложени…
  5. Sep 22, 2026Post #6781
  6. Sep 22, 2026Debian или Ubuntu Нам достаточно часто задают вопрос: какой именно из этих дистрибутивов и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →