Дополнительная настройка безопасности MikroTik

000 1

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

Несмотря на страшные описания и действительно большую опасность, которую таят в себе уязвимости, стоит отдать должное разработчикам MikroTik: они в кратчайшие сроки выпускают патчи. Многие дыры закрываются еще до их утечки в паблик, оставшиеся — в течение дня‐двух. Поэтому первое, на что нужно обратить внимание — актуальность версии RouterOS   на вашем девайсе. Автоматически система не обновляется, поэтому за появлением новых версий нужно следить самому. В разделе Software на сайте MikroTik лежат актуальные версии операционной системы и отдельных пакетов. Простейший способ обновиться: System → Packages → Check For Updates → Download and Install.

1 5 2
Обновление системы роутера

Те же действия можно выполнить, набрав в консольной строке роутера следующую команду: /system package update install. 

Обновление системы роутера: Доступны четыре ветки разработки: Long‐term, Stable, Testing и Development. Для критичных систем рекомендуется ставить Long‐term. Железка, которая может полежать пару минут в процессе обновления, достойна Stable, остальные ветки оставьте для экспериментов на домашнем роутере. Перед обновлением внимательно прочитайте Changelog. Иногда полностью перерабатываются некоторые части ОС, после чего они не способны работать со старой конфигурацией (так было, например, с bridge в 6.41). Если вы счастливый владелец нескольких роутеров MikroTik, помните, что массовый апгрейд стандартными средствами невозможен, но можно воспользоваться The Dude или самописными скриптами.

Подробно процесс обновления прошивки описан мною в статье: Mikrotik обновление прошивки

Следующее, за что можно взяться для повышения безопасности — отключить ненужную функциональность. Не используете IPv6 — отключайте, не нужен Wi‐Fi — отключите весь модуль, отвечающий за него (все в том же меню System → Packages). Обратите внимание, что полностью удалить из системы можно только дополнительные пакеты, то есть те, что не входят в routeros‐ platformname.

Все угрозы для MikroTik работают, только если администратор заранее не позаботился о безопасности. При элементарных настройках служб и файрвола роутер проработает годы без обновлений. В меню IPServices отключите ненужные службы. Рекомендую открывать только SSH и Winbox с определенных адресов, остальное — disable. Того же самого эффекта можно добиться командой /ip service disable ftp.

2.jpg 3
Список работающих сервисов

Также про верьте, не включены ли службы IP: Web Proxy, IP → UPnP, IP → Socks. Если они включены без вашего ведома, у меня для вас плохие новости. Вот команды для отключения этих служб из командной консоли: /ip proxy,  /ip upnp,  /ip socks

3 4 4
Проверяем, поднят ли в системе proxy

RouterOS имеет работающий по протоколу MNDP механизм обнаружения соседей. Знать соседей в своей сети — отличная идея, но вот светить моделью роутера и версией софта в окружающее пространство вряд ли хорошо с точки зрения безопасности.

4 5
Лучше не показывать соседям модель роутера и версию софта

Функция обнаружения соседей, как и многие другие фичи в RouterOS, использует в работе списки интерфейсов. В дефолтной конфигурации уже есть списки LAN, WAN, dynamic, all и none, но можно создать и свои списки со сложной структурой. Допускаются вложенные списки (include) и исключения (exclude). Настраиваются они в меню Interface → Interface Lists. Сначала создаем сам список (кнопка Lists), затем в основном меню добавляем в него интерфейсы. Команда для работы со списками выглядит так:
/interface list.

5 6
Список интерфейсов

К сведению, в список входят динамические интерфейсы, такие как VPN‐интерфейсы, PPPoE. None означает «ни одного», all — «все». В дефолтной кон фигурации «домашних» роутеров в списке WAN будет от ether1, в LAN —  от ether2 до ether5, все Wireless‐интерфейсы и Bridge.

Как известно, подключиться к RouterOS можно не только по IP‐адресу, но и по MAC. Также работает ping по MAC‐адресу. За работу этих служб отвечает ToolsMAC Server. Он тоже использует в настройках списки интерфейсов. Стоит выделить отдельную группу интерфейсов под управление, а затем разрешить обнаружение соседей и MAC Server только ей.

 

Не отключайте MAC Winbox и MAC Telnet совсем: однажды наступит момент, когда вы сломаете себе доступ по Winbox и нужно будет воспользоваться подключением по MAC, поэтому лучше держать такой бэкдор для себя. К тому же MAC Telnet полезен, когда в сети появляется новая железка, у которой еще нет IP‐адреса. Тогда ее удобно настраивать из консоли соседнего роутера.

Дефолтная конфигурация RouterOS с описанными выше дополнениями повысит безопасность роутера. Вообще, разработчики постарались сделать Default Configuration максимально универсальной и учли многие особенности безопасности. Дальше мы рассмотрим дополнительный харденинг RouterOS.

Если ИТ‐отдел в вашей компании большой, в нем наверняка есть разделение ролей и обязанностей. К примеру, сотруднику техподдержки ни к чему права на создание VPN‐соединений  или  просмотр  пароля  Wi‐Fi,  в  то  время как сетевики, естественно, должны иметь к ним доступ. RouterOS имеет достаточно гибкий механизм распределения прав. Права назначаются в группах, затем в нужную группу добавляется пользователь. Управление группами доступно в меню System → Users, а также с помощью команды /user group

6 4 7

Рассмотрим права групп подробнее:
telnet, ssh, ftp, winbox, web, api, romon, dude, tikapp — понятны по названию. Разрешают юзеру подключаться по указанным протоколам;

• local — открывает доступ к роутеру через консоль. При отключении также заберет право открывать терминал внутри Winbox;
• reboot — право на перезагрузку;
• read, write — права на чтение или запись;
• sniff — права на исполнение встроенного аналога tcpdump (tools → sniffer);
• test — запуск инструментов траблшутинга (ping, traceroute, bandwidth‐test, wireless scan, snooper);
• password — право менять собственный пароль;
• policy — право управлять учетными записями и группами.
Чувствительные данные:
На группе настроек sensitive остановимся чуть подробнее. В RouterOS определены так называемые чувствительные данные. К ним относятся ключи Wi‐Fi, IPSec, SNMP, пароли VPN‐интерфейсов и серверов, пароли протоколов маршрутизации и другая информация, влияющая на безопасность. В меню окна Winbox в разделе Settings есть флажок Hide Sensitive. Когда он включен, эта чувствительная информация закрыта звездочками и в терминале ее тоже не видно. Эдакая защита от разглашения паролей. С отключенной опцией Sensitive в настройках группы этот чекбокс не снимается, то есть право Sensitive разрешает пользователю видеть введенные пароли.

7 1 8
Право Sensitive разрешает пользователю видеть введенные пароли

Чуть выше мы говорили об ограничении доступа к управляющим службам роутера только с определенных адресов. Это очень важно: протокол Winbox далек от идеала и есть вероятность, что в нем еще будут находить дыры. Но часто приходится подсоединяться к роутеру из гостиниц или кафе, и невозможно предусмотреть все адреса, с которых подключишься. Среди админов распространена техника Port Knocking. Изначально порт закрыт для всех. Но стоит снаружи выполнить какую‐то последовательность
действий, как для вашего IP открываются все порты для управления. Этот набор действий может быть очень сложным, и подобрать его нереально. Рассмотрим пример:
• изначально все порты управления закрыты для всех, кроме списка разрешенных;
• если на порт роутера 1234 попадает TCP‐сегмент, затем два на порт 4321 и один на порт 5678, то адрес источника заносится в список разрешенных на сутки.
Реализовать эту последовательность действий поможет следующий скрипт:

00 9

Правила 3–6 (action=add‐src‐to‐address‐list) выполняют описанную выше логику. Первое правило разрешает доступ к управлению роутером только адресам из списка mgmt_allow, который заполняется на этапах 3–6. Второе правило запрещает доступ всем. Первые два правила вынесены наверх для того, чтобы избежать ненужного прохождения менеджмента трафика по четырем правилам с логикой и тем самым снизить нагрузку на CPU. Но провернуть подобную операцию с Windows не так просто: из стандартного набора программ выпилили Telnet, а качать сторонний софт не всегда возможно. Зато любая ОС позволяет менять размер ICMP‐пакета при пинге. Этим мы и воспользуемся. Изменим условия:

  • изначально все порты управления закрыты для всех, кроме списка раз‐ решенных;
  • если на роутер попадает ICMP Request размером 345 байт, затем два размером 543 и один 678 байт, то адрес источника заносится в список раз‐ решенных на сутки.

Для этого всего лишь поменяем предыдущие правила: Установим про кол ICMP и на вкладке Advanced зададим размер Packet Size. 

Важно: Не забывай, что размер пакета, указанный в пинге, и размер пакета, долетевшего до роутера  это разные значения. В Linux к ICMP прибавляется 28 байт заголовков, то есть, чтобы отправить пакет размером 345 байт, нужно в пинге указать размер 317. У Windows цифры другие — она по‐своему считает заголовки.

 

RouterOS поддерживает белые и черные списки Wi‐Fi. Для этого есть список Wireless Access List. Просто добавь туда устройства, которые не имеют права подключаться к сети, а потом сними флажки Authentication и Forwarding. Еще для этих целей можно использовать команду /interface wireless access‐list add

8 10
Настройка черного списка Wi‐Fi

Описанный выше случай будет работать как Blacklist. Чтобы преобразовать его в Whitelist, нужно поставить указанные флажки и изменить тип работы интерфейса Wireless с помощью команды /interface wireless set 0 default‐authentication=no

9 2 11
Настройка белого списка

Флажок Authentication отвечает за аутентификацию клиентов. Если он установлен для определенного интерфейса, аутентификация разрешена всем, кроме тех устройств, которые перечислены в списке доступа без флажка. Если на интерфейсе флажок не установлен, то подключиться к сети могут лишь те, кто присутствует в списке доступа с флажком.
Настройка Forwarding отвечает за передачу данных между клиентами одной подсети. Обычно ее не стоит трогать, но, если ты строишь, к примеру, hotspot‐сеть, клиенты которой будут ходить только во внешние сети (то есть внутреннее взаимодействие им не нужно), отключиnt данную опцию — это улучшит качество связи.
С помощью Wireless Access List можно настроить сложную логику работы клиентов: по уровню сигнала, времени суток, ограничить скорость каждого клиента или загнать его в определенный VLAN без дополнительных телодвижений. Очень рекомендую познакомиться с этим инструментом поближе.

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

Источник: Журнал «Хакер» 02.2020