Защита Mikrotik от подбора паролей, за минуту

Обновлено 27.06.2019

mikrotik logoДобрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами произвели базовую настройку роутера Mikrotik, тем самым наладив работу малого офиса. Изучая журналы логов на оборудовании вы можете увидеть события "login failure for user via ssh, telnet, web", означающие, что на роутер идет атака брутфорса, по подбору пароля по определенным портам. Это означает, что нам нужно защитить наше оборудование от таких попыток, чем мы и займемся ниже, самое приятно, что все это делается буквально за минуту.

Как ограничить доступ к службам Mikrotik

Когда ваш роутер, в моем примере MikroTik RB4011iGS, получает внешний IP-адрес от провайдера, который вы настраиваете на WAN порту, то боты (Это такие роботизированные программы) завидев новое устройство с внешним адресом, сразу начинаю подбирать логин с паролем, чтобы получив к нему доступ начать рассылку спама или еще чего-нибудь. Данная практика касается абсолютно всех устройств. виртуальных машин, сайтов и многое другое, что имеет доступ в интернет, все это потенциальная цель для взлома и дальнейшего паразитического использования, поэтому вы как сетевой администратор или просто ответственный пользователь должны периодически просматривать события в журналах вашего устройства, чтобы идентифицировать попытки его компрометации.

Существует три метода позволяющие вам задать IP-фильтрацию, позволяющей вам ограничить доступ к службам роутера Mikrotik, только с определенных IP-адресов.

  • Использование утилиты WinBox
  • SSH / Telnet
  • Web-интерфейс

Как видим у нас есть три потенциальные точки проникновения на ваш роутер микротик. Как я и писал выше, зайдя на устройство, в разделе Log, я увидел вот такой подбор паролей по разным службам:

login failure for user ftp from 88.214.26.10 via ssh или
login failure for user root from 177.185.35.216 via telnet

Логи подбора пароля на mikrotik

Как видим идет постоянная подборка учетных данных, раз в три секунды, для самого роутера эти события имеют статус "system, error, critical" и их генерирование, плохо сказывается на работе оборудования, создавая лишнюю нагрузку.

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

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

Фильтрация и отключение служб через Services

Как я и писал выше, все что вы не используете вы должны отключить, в моем случае, мне для управления моим MikroTik RB4011iGS достаточно веб интерфейса, поэтому я отключу: ftp, ssh, telnet. Для этого слева есть столбец с кнопкой "D".

Отключение лишних служб на Mikrotik

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

Подбор паролей для входа на Mikrotik-03

Пробуем проверить доступность порта из Германии, как видим 22 порт SSH закрыт, это хорошо, значит его больше не будут брутфорсить.

Проверка порта на MikroTik RB4011iGS

Если вы используете, например SSH, но хотите его оградить от перебора паролей, то вы можете пойти на хитрость и разрешить обращение к нему, только с определенной сети или IP-адреса. Для этого на включенной службе, щелкните два раза. В результате чего у вас откроется редактор правила фильтрации, где вам в поле "Port" необходимо указать по какому порту будет работать служба, для большей безопасности советую менять стандартные значения, на диапазон после 1024 и в поле "Avaliable From" указать сеть или IP-адрес, кому будет разрешено. Сохраняем правило.

MikroTik RB4011iGS фильтрация доступа к службе по ip

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

Подбор паролей для входа на Mikrotik-05

Самое интересное, что порт при SSH при проверке с внешнего сервера показывал статус "Open", что слегка обескураживало

Проверка телне порта на Mikrotik

Но если вы попытаетесь подключиться через клиента Putty или его аналоги, то увидите ошибку подключения "Network error: Software caused connection abort", что доказывает, что созданное правило фильтрации на уровне службы работает.

Ошибка подключения по ssh на Mikrotik

Пробовал настроить фильтрацию служб и через WinBox, но результат тот же

Настройка служб в WinBOx

Поэтапная блокировка IP откуда идет перебор паролей на Mikrotik

Предположим, что вы все же привыкли работать в терминале, но ограничиваться одним IP-адресом или подсеткой на уровне фильтрации на службе вы не хотите, тут у вас есть два выхода:

  • Во первых, вы можете отключить SSH и Telnet, оставив только веб-интерфейс, в котором есть тот же терминал. Попасть в него можно, выбрав на роутере Mikrotik соответствующую кнопку в правом, верхнем углу. Как видите тут есть все команды.

Терминал в веб-интерфейсе Mikrotik

  • Второе, это настроить правила фильтрации и бана через SSH/Терминал, на этом я и остановлюсь. Лично я напоминаю, что я всегда стараюсь изменять стандартные значения портов на нестандартные, для большей безопасности.

Создание правил:

Первым делом перейдем в раздел /ip firewall filter

/ip firewall filter

Когда кто-то первый раз обращается по SSH на порт 2233, то мы его идентифицируем для себя и помещаем к себе в список IP адресов под названием "ssh_round1" на 2 минуты

add chain=input protocol=tcp dst-port=2233 connection-state=new action=add-src-to-address-list address-list=ssh_round1 address-list-timeout=2m disabled=no

Далее наш роутер Mikrotik начинает наблюдать за новым IP-адресом, который был помещен в "ssh_round1". Если он еще раз в течении 2-х минут попытается произвести подключение на порт SSH 2233 (В моем случае), то мы его помещаем во второй список "ssh_round2", но уже на 2 минуты.

add chain=input protocol=tcp dst-port=2233 connection-state=new src-address-list=ssh_round1 action=add-src-to-address-list address-list=ssh_round2 address-list-timeout=2m disabled=no

Далее если кто-либо из второго списка "ssh_round2" вновь попытается подключиться по SSH 2233, то мы его в третий раз заносим в новый список "ssh_round3", но уже на минуту, так как это уже подозрительно.

add chain=input protocol=tcp dst-port=2233 connection-state=new src-address-list=ssh_round2 action=add-src-to-address-list address-list=ssh_round3 address-list-timeout=1m disabled=no

Если мы выявляем, что из третьего списка к нам опять обратился данный IP-адрес, то заносим его в черный лист запрета и баним на 7 дней, неделю не меньше, как говорил кролик из Винни Пуха.

add chain=input protocol=tcp dst-port=2233 connection-state=new src-address-list=ssh_round3 action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=7d disabled=no

Создание правил по ssh mikrotik

Если хотите, чтобы все кто попал в ваш блэклист были забанены на вечно, то для этого можно использовать правило:

add chain=input protocol=tcp dst-port=2233 src-address-list=ssh_blacklist action=drop comment="drop ssh brute forcers" disabled=no

А вот так выглядят наши созданные правила в WinBox, раздел "Firewall".

Список правил в Firewall Mikrotik

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

Автор - Сёмин Иван

20 Responses to Защита Mikrotik от подбора паролей, за минуту

  1. Виктор:

    А можно показывать ни только через команды, но и наглядно через winbox, где и что нужно заносить

  2. vi:

    Спасибо, добрейший человек. а то ведь жизни не давали, паразиты

  3. Иван Семин:

    Добрый день! Рад, что смог вам помочь.

  4. Андрей:

    Спасибо, адаптировал под себя!

  5. Дмитрий:

    Не совсем понятно «в третий раз заносим в новый список «ssh_round3″, но уже на минуту, так как это уже подозрительно.» Почему на минуту? Может наоборот надо больше дать времени нахождения в списке, чтобы его подольше мониторить? Или по истечении минуты, даже если не стукнулся по SSH, то автоматом попадет в черный список?

  6. Дмитрий:

    Спасибо, хороший человек

  7. Дмитрий:

    Спасибо Иван, всё коротко и понятно. Будьте счастливы!

  8. Дмитрий:

    По этим фильтрам сразу в семидневный бан адрес попадет, так как сработают сразу все условия и IP проедет по всем спискам.

  9. Hello:

    Спасибо.
    Вот зашла и оболдела всю ночь кто-то ломиться и пол утра , а я не могу понять что с интернетом.
    Вопрос . Я закрыла только службы которыми не полбзуюсьь, а дальше к сожалению не умею и не делала. Это поможет как то изведать или все таки прописывать и закрывать порты?

  10. Иван Семин:

    Добрый день! Лучше всегда все отключать лишнее и закрывать лишние порты, политика минимизации фронта атак.

  11. Hello:

    А подскажите , я собственно не IT специалист и вот это все для меня очень не обычное. Но есть вопрос.
    А можно сделать как то чёрный список ip адресов ? У меня просто какой то ужас один и тот же пытается подобрать логин к микротику атаки пол дня на него.

  12. Иван Семин:

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

  13. Hello:

    А как вот их банить на совсем в моем микротике, как описано в статье выше?

  14. IDSoft:

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

  15. IDSoft:

    Паузы между входами лучше поменьше скажем секунд 15-20, иначе сами когда-нибудь себя заблокируете, если за пару минут несколько раз войдете.
    P.S. Жаль сайт не позволил пример кода выложить.

  16. Иван Семин:

    Пришлите я выложу, если хотите писать о микротике, то можно организоват ьавторство

  17. Евгений:

    Идея огонь, реализация хромает. IP после первого запроса летит в бан на 7 дней. Да и в любом случае, правила добавятся в самый низ (выполнятся будут последними). Стоит написать как из cli поднять правила.

  18. Григорьев Андрей:

    Две ошибки:

    1. Правила надо добавлять в обратном порядке: сначала правило для бана, потом для помещения в черный список и т.д. В самом конце — правило занесения в список round1.
    Или после добавления отсортировать их в нужном порядке.

    2. Время нахождения в списках подобрано неудачно. Чем чаще наблюдается подключение, тем жестче надо мониторить этот IP. Т.е. в каждом следующем списке время нахождения больше и больше. Например, в списке round1 — 3 минуты, в списке round2 — 5 минут, в списке round3 — 10 минут.

    А так — полезная фича.

  19. Сэмэн:

    Там ещё есть одна печалька: если надо открыть несколько терминальных окон (все соединения будут new), либо несколько раз переподключиться, то попадёте в бан!

  20. Иван:

    А можете подсказать скрипт для этой записи:
    login failure for user admin from 178.167.71.99 via web
    Выскакивает каждый день с определённой периодичностью. IP меняется.
    SSH, Telnet, ftp у меня перекрыто. На роутер захожу удаленно, поэтому при настройке нужно учесть этот момент, чтобы связь с роутером не потерялась. Спасибо!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *