Андрей Смирнов
Время чтения: ~9 мин.
Просмотров: 21

Некоторые подводные камни технологии IP Cloud в роутерах Mikrotik

В RouterOS версии 6.14 появилась новая функция — собственная реализация DynDNS. Пока функционал в статусе бета-версии, но им уже можно пользоваться. Не используя внешние сервисы и скрипты (типа http://arxont.blogspot.ru/2013/02/dns-mikrotik.html). Настройка происходит в разделе ip cloud. В данный момент настроить можно только два параметра — «Enabled» и «Update Time». С параметром «Enabled» всё просто — включает данный функционал. Параметр update-time — делает следующее — после перезагрузки маршрутизатора и во время каждого обновления DDNS (когда у маршрутизатора изменяется внешний IP-адрес или после команды /ip cloud force-update). Если установлено значение «Enabled», то время маршрутизатора будет установлено на время, сервера DDNS ЕСЛИ не установлены (или не включены) SNTP или NTP. Если установлено значение «нет», то облачный сервис не обновит часы маршрутизатора. Работает функционал DDNS  следующим образом — Маршрутизатор проверяет изменение IP-адреса каждую минуту Маршрутизатор ожидает реакции сервера DDNS: 15 секунд Длительность TTL записи на DDNS: 60 секунд Так как в данный момент сервис в статусе беты, то мы не можем выбирать имя для сервера, вместо этого проставляется имя вида %СерийныйНомер%.sn.mynetname.net, но даже в данном режиме мы можем использовать данную настройку. Надеюсь в дальнейшем сделают использование своего имени и можно будет указывать произвольно. Так же ОЧЕНЬ серьёзным ограничением в данный момент является, то что нельзя указать конкретный интерфейс (или IP), адрес которого надо привязывать к DDNS сервису — но если у вас один внешний линк, то проблема не особо существенна. PS: Работает только с устройствам RouterBOARD. Если у вас RouterOS x86, то данный функционал у вас работать не будет. Пруф — http://forum.mikrotik.com/viewtopic.php?f=2&t=85906#p431877 PS2: Если вам нужно, красивое имя, то наиболее простое решение это прописать CNAME на свой домен. Правда для этого нужно иметь зарегистрированный домен и возможность редактирования его DNS настроек.Есть такие хорошие роутеры Mikrotik. И с недавнего времени есть у них функционал «IP-Cloud». Помимо прочего он позволят получить субдомен, который будет привязан к пользовательскому роутеру, не имеющему постоянного IP-адреса. Или имеющего, для нас это не важно — важно то, что получаемое имя не произвольное, а вида серийный номер+.sn.mynetname.net Так как имя не произвольное, а узнать-сгенерировать диапазоны серийных номеров не так уж и сложно, то можно их пропинговать и, если адрес активный, попробовать подключиться.26f6e81e70f1446d82d5a68f7133a62e.png Для проверки этой идеи была написана программа с очень простым функционалом — она генерировала имя вида SN.sn.mynetname.net и пинговала его. Если результат был положительным, то адрес запоминался и процесс продолжался. Далее программа пробовала подключаться к найденным адресам с логином admin и следующими паролями 123456, password, 12345678, qwerty, abc123, 123456789, 111111, 1234567, iloveyou, adobe123, 123123, admin, 1234567890, letmein, photoshop, 1234, monkey, shadom, sunshine, 12345, password1, princess, azerty, trusno1, 000000, mikrotik, sysadmin (список паролей был взят из статьи habrahabr.ru/post/215457 и добавил пару от себя) Подключение пробовалось через SSH и mikrotik API и если подключение подходило успешно, в таблицу добавлялся подошедший пароль.Здесь можно посмотреть функции которыми программа пробовала подключаться к роутерам

private string MikrotikSSHConnect(string MikrotikIP, string MikrotikPassword) {    ConnectionInfo sLogin = new PasswordConnectionInfo(MikrotikIP, 22, "admin", MikrotikPassword);    SshClient sClient = new SshClient(sLogin);    try    {       sClient.Connect();       sClient.Disconnect();       return MikrotikPassword;    }    catch    {       return "";    } }  private string MikrotikAPIConnect(string MikrotikIP, string MikrotikPassword) {    MK mikrotik = new MK(MikrotikIP);    try    {       if (mikrotik.Login("admin", MikrotikPassword))       {          return MikrotikPassword;       }     }    catch {}     return ""; } 

Результаты трёхдневного скана вышли следующие — было сгенерировано и пропинговано два миллиона адресов. Из них доступных по пингу, с включенным IP-Cloud было всего 6715. Из них подключиться без пароля получилось к 97, с подобранным паролем к 430 (что лишний раз доказывает, что не надо использовать словарные и лёгкие пароли) На всех точках, к которым получилось подключиться, были немного изменены настройки — убран пинг снаружи и сделано подключение к роутеру только из локальной сети + защита от перебора паролей. Можно было поменять пароль, но мало ли кто там занимается настройкой, да и не хотелось админам сильно усложнять работу. PS: Откуда брались серийные номера —

  • из своих точек — за несколько лет работы с микротиками, накопилось достаточно много установок, с многих смог посмотреть серийный номер.
  • в гугле смотрел на скриншоты IP-Cloud (многие не замазывали адрес) + запрос в гугле site:sn.mynetname.net
  • немало номеров нашел через запрос в гугл mikrotik system routerboard
  • С сертификатов соответствия
  • Больше всего адресов получил от одного достаточно крупного продавца — который поделился списком серийных номеров которые у него проходили, как гарантийные. (из-за этого и не публикую полностью результаты, так как не хочу подставлять людей предоставивших данную информацию)

Для каждого номера бралось 20 тысяч перед ним и столько же после. PS2: Что в этом плохого — а если бы это было не моё исследование just for lulz? RouterOS достаточно продвинутая система и вполне можно в автоматическом режиме настраивать точки доступа на DDOS или делать из них прокси для своих грязных дел 🙂 PS3: Да можно было тестировать сразу подключение через SSH и API, только пинг существенно быстрее, да и не в этом смысл был исследование. Про распараллеливание также в курсе, но никуда не торопился 🙂 PS4: Несколько ссылок на используемые вещиИспользование Mikrotik API в C#IP Cloud в роутерах Mikrotik

PR-11992_750x394_blog_main_vk2x.png

Cloud Hosted Router — это специальная версия Mikrotik RouterOS, которая разработана для развертывания в облачной инфраструктуре как операционная система для виртуальных машин, но может быть также развернута и на реальном железе.

CHR создавалась для 64-битных систем и совместима с большинством гипервизоров.

Системные требования CHR:

  • процессор: x86_64 с поддержкой аппаратной виртуализации;
  • ОЗУ: 128 МБ и более;
  • диск: 128 МБ и более (максимально 16 ГБ).

Установка Mikrotik CHR на виртуальную машину

В статье рассмотрена установка CHR на Облачную платформу Selectel. Будем считать, что проект уже создан, а регион выбран.

Для начала посетите сайт https://mikrotik.com/download, чтобы скачать образ CHR:

PR-11992_image4.png

Для примера будет использована стабильная версия (на момент написания статьи 6.46.3). Формат образа не столь важен, так как облачная платформа умеет работать со всеми из этих форматов, но для примера был выбран формат RAW.

Примечание: не забудьте распаковать ZIP-архив, в случае использования формата RAW.

PR-11992_image2.png

Далее создайте виртуальную машину.

PR-11992_image9.png

В разделе «‎Имя и расположение»‎ укажите следующие данные: Имя, регион и дата-центр.

Задайте необходимые параметры, в нашем случае будет достаточно 1 vCPU, 512 RAM, 5 Гб дискового пространства.

PR-11992_image14.png

Выберите подсеть, к которой будет подключена машина. Можно задействовать «плавающий» IP-адрес или приобрести подсеть. В нашем случае использована подсеть на 5 IP-адресов.

После того как сервер будет создан, перейдите на вкладку «Консоль». В качестве логина по умолчанию используется admin, пароль пустой. Поскольку сеть еще не настроена, рекомендуется вначале установить пароль на учетную запись admin или создать новую учетную запись, а затем удалить или деактивировать учетную запись admin.

В примере будет установлен пароль на admin:

/user edit admin password

Затем откроется текстовый редактор, введите пароль, и нажмите сочетание клавиш CTRL+O. Пароль установлен.

Далее пропишите IP-адрес и настройте маршрутизацию. Чтобы узнать IP-адрес подсети и шлюз, перейдите на вкладку «Сети» и выберите «Публичные подсети»:

PR-11992_image10.png

В консоли введите следующие команды:

/ip address add interface="Название сетевого интерфейса" address="IP-адрес сервера" netmask="Маска подсети"

Проверьте, что IP-адрес был добавлен корректно:

/ip address print
PR-11992_image19.png

Теперь настройте маршрутизацию, добавив шлюз по-умолчанию:

/ip route add gateway="IP-адрес шлюза" dst-address=0.0.0.0/0 check-gateway=ping distance=1

Проверьте, что маршрут добавился:

/ip route print

Также проведите проверку работоспособности маршрута:

/ping 8.8.8.8
PR-11992_image17.png

Поскольку теперь виртуальная машина имеет доступ во внешнюю сеть, можно воспользоваться бесплатным графическим конфигуратором Mikrotik Winbox. Он создан для операционной системы Windows, однако прекрасно работает и в Linux при помощи WINE.

Первым делом настройте DNS-серверы, для этого выберите IP > DNS. В поле Servers введите адреса DNS-серверов, например 188.93.16.19 и 188.93.17.19, после чего нажмите кнопку ОК.

PR-11992_image5.png

Как видите, ничего сложного в установке Cloud Hosted Router на виртуальный сервер нет. Теперь расскажем, как действовать, если хостинг не поддерживает возможность выбора установочного образа.

Установка Mikrotik CHR на сервер без поддержки установочных образов

А как быть если хостинг не предоставляет возможности установки ОС из своего образа? На самом деле все довольно просто. Ниже мы рассмотрим такой вариант установки на примере сервиса Vscale.io.

Для начала создайте сервер. В данном примере будет рассматриваться развертывание CHR на базе Ubuntu. Но выбор операционной системы не так важен, так как подобный функционал реализован в большинстве дистрибутивов GNU/Linux:

PR-11992_image15.png

Будет достаточно самой простой конфигурации:

  • процессор — 1 ядро;
  • ОЗУ — 512 МБ;
  • диск — 20 ГБ.
PR-11992_image20.png

Выберите нужный регион и укажите имя сервера:

PR-11992_image18.png

Для удобства подключения по SSH можно добавить свой ключ. Однако, следует учитывать, что после того, как будет установлен CHR, ключ перестанет функционировать.

PR-11992_image3.png

После того как параметры заданы, нажмите кнопку «‎Создать сервер».

В случае если не была выбрана авторизация по SSH-ключу, то письмо с паролем от пользователя root будет отправлено на почту. А также будет показана страница с паролем:

PR-11992_image8.png

Спустя минуту подключитесь к серверу по SSH:

PR-11992_image13.png

Обновите репозитории и установите unzip:

apt update && apt -y install unzip

Скачайте образ на виртуальную машину:

wget https://download.mikrotik.com/routeros/6.46.3/chr-6.46.3.img.zip

Распакуйте архив с образом:

unzip chr-6.46.3.img.zip

Запишите образ на диск виртуальной машины:

dd if=chr-6.46.3.img of=/dev/vda

Перезагрузите виртуальную машину:

reboot

После перезагрузки зайдите в консоль сервера, она доступна на странице с информацией о сервере:

PR-11992_image1.png

Уровни лицензии Cloud Hosted Router и процесс активации

В отличие от «железной» версии RouterOS, Cloud Hosted Router не имеет «привязки» лицензии к оборудованию, а также не имеет определенных ограничений, например, нет ограничений по количеству туннелей.

Единственное ограничение, которое накладывают разные уровни лицензий — это скорость каждого из интерфейсов. Ниже представлены разные уровни лицензий, их отличия и стоимость:

Лицензия Аналог RouterOS лицензии Ограничение скорости на портах Стоимость
Free 1 Мбит/с $0
P1 L4 1 Гбит/с $45
P10 L5 10 Гбит/с $95
P-unlimited L6 $250

Также возможно воспользоваться пробной версией CHR, функционал которой аналогичен полноценной лицензии, но имеет ограниченный срок действия — 60 дней. После этого лицензия не пропадет, но операционная система перестанет обновляться.

Активация пробной версии CHR

Для активации CHR необходимо, чтобы были настроены следующие параметры:

  • IP-адрес;
  • маршрутизация в интернет;
  • DNS серверы.

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

Вначале, необходима учетная запись на сайте mikrotik.com. Если у вас ее нет, то необходимо её создать. При создании учетной записи поставьте галочку «Allow to use my account from netinstall and winbox‎».

Далее в Winbox выберите System > License. Откроется такое окно:

PR-11992_image11.png

Нажмите на кнопку Renew License. Откроется окно, в котором нужно ввести свою почту и пароль, которые вы указали при регистрации, а также уровень лицензии, который вы хотите протестировать, в нашем случае это лицензия P1.

После активации окно будет выглядеть примерно так:

PR-11992_image7.png

Cloud Hosted Router активирован.

Заключение

В данной статье была рассмотрена установка и базовая настройка Cloud Hosted Router, а также правила лицензирования. Это универсальный инструмент для управления сетью как в обычной, так и в виртуальной инфраструктуре.

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

Используемые источники:

  • https://arxont.blogspot.com/2014/06/ddns-mikrotik.html
  • https://habr.com/post/253291/
  • https://selectel.ru/blog/mikrotik-chr-install/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации