База знаний WiFly

Настройка MikroTik с нуля: Captive Portal ClientPulse и WiFly OpenRoaming на одном устройстве

Оборудование: MikroTik RouterOS 6.49.x / 7.x  |  Сервисы: Captive Portal ClientPulse (wifi.clientpulse.ru) + WiFly OpenRoaming (Passpoint / Hotspot 2.0)  |  Время: 40–60 минут

Полная инструкция по настройке роутера MikroTik с нуля: сначала гостевая сеть с авторизацией через Captive Portal ClientPulse, затем сеть OpenRoaming с автоматическим подключением по Passpoint. Обе части можно использовать и по отдельности. Статья входит в серию Миграция с flyLogin на ClientPulse. Если у вас уже работает портал FlyLogin и нужно только переключить его на ClientPulse — воспользуйтесь короткой инструкцией по миграции.

Порядок настройки важен. Для корректной одновременной работы OpenRoaming и Captive Portal на одном роутере Captive Portal настраивается первым, иначе не будет работать редирект на авторизацию через Сбер / Альфа / VK. Это правило действует и если CP и OR разнесены на разные wlan: сначала CP, потом OR.

Содержание

  1. Часть 1. Captive Portal ClientPulse — подготовка, шаги 0–6
  2. Часть 2. OpenRoaming (Passpoint / Hotspot 2.0) — шаги 1–9
  3. Административная сеть (опционально)
  4. Альтернативные методы авторизации (Сбер ID, Яндекс ID, VK ID, Alfa ID, Госуслуги)
  5. Частые вопросы

Часть 1. Полная конфигурация Captive Portal

Сценарий «только авторизация» — сервис Guest Wi-Fi на wifi.clientpulse.ru.

Подготовка

  1. Установите на ПК программу WinBox: mikrotik.com/download.
  2. Подключитесь к устройству (IP по умолчанию 192.168.88.1, логин admin, пароль пустой).
  3. Обновите RouterOS до последней стабильной версии.

Шаг 0. Проверка device-mode

На новых прошивках модуль hotspot может быть выключен режимом устройства. Проверьте и при необходимости включите:

# Проверка статуса
/system device-mode print

# Включение модуля hotspot в базовом режиме
/system device-mode update hotspot=yes

# Либо переключение на расширенный режим
/system device-mode update mode=advanced

После device-mode update RouterOS попросит подтвердить изменение перезагрузкой или нажатием кнопки на устройстве — следуйте подсказке в терминале.

Шаг 1. Создание моста

Создайте bridge для работы hotspot:

/interface bridge add name=bridge-hotspot

Примечание: на MikroTik со встроенным Wi-Fi bridge уже может быть создан с добавленными интерфейсами. Проверьте Bridge → Ports. Если нужные для hotspot порты уже состоят в другом bridge — сначала удалите их оттуда.

Добавление интерфейсов в мост

Вариант А — CP и OpenRoaming на одном wlan. Один и тот же интерфейс нельзя использовать для двух сетей, а OpenRoaming не поддерживает настройку на виртуальном интерфейсе. Поэтому для Captive Portal создаём виртуальный интерфейс и добавляем в мост его:

/interface wireless add name=wlan1-guest master-interface=wlan1 ssid="WiFly Captive Portal" disabled=no
/interface bridge port add bridge=bridge-hotspot interface=wlan1-guest

Вариант Б — CP и OpenRoaming на разных wlan (или только CP). Виртуальный интерфейс не нужен — добавьте в мост тот wlan, который отдаёте под Captive Portal:

/interface bridge port add bridge=bridge-hotspot interface=wlan1

Примечание: имена интерфейсов могут отличаться — проверьте их командой /interface print. В мост можно добавить и один порт, например только Wi-Fi-интерфейс.

Шаг 2. IP-адрес и RADIUS

Назначьте IP-адрес на созданный bridge:

/ip address add address=192.168.110.1/24 interface=bridge-hotspot

Добавьте RADIUS-серверы ClientPulse:

/radius
add address=176.99.2.231 require-message-auth=no secret=123456 service=hotspot timeout=3s
add address=91.232.135.206 require-message-auth=no secret=123456 service=hotspot timeout=3s

Для self-hosted RADIUS команда будет такой:

/radius add service=hotspot address=<your-radius-ip> secret=123456

В настройках каждого RADIUS-сервера параметр Require Message Auth должен быть no (в WinBox: RADIUS → сервер → вкладка General):

MikroTik RADIUS: Require Message Auth = no
Require Message Auth = no

Шаг 3. Настройка Hotspot

Запустите мастер создания hotspot:

/ip hotspot setup

Ответы на вопросы мастера:

Вопрос Ответ
hotspot interface bridge-hotspot
local address of network 192.168.110.1/24 (подставится автоматически)
masquerade network yes
address pool of network 192.168.110.2-192.168.110.254
select certificate none
ip address of smtp server 0.0.0.0
dns servers 77.88.8.8 (или любой другой доступный в регионе)
dns name wf.clientpulse.ru
name of local hotspot user admin
password for the user оставить пустым

Для кастомных (white-label) доменов dns name указывается как wf.<your-domain-name>. Префикс wf при желании можно заменить — адрес чисто внутренний для MikroTik, главное, чтобы домен совпадал с доменом портала.

Таймауты и авторизация

IP → Hotspot → Servers → hotspot1:

  • Keepalive Timeout = 00:05:00

IP → Hotspot → Server Profiles → hsprof1:

  • Login By — оставить только http-chap, http-pap
  • Включить Use RADIUS
  • Interim Update = 00:05:00

Профиль пользователей

IP → Hotspot → User Profiles → default:

  • Open Status Page = HTTP Login
  • Снять галочку Add MAC Cookie

Шаг 4. Разрешённые ресурсы (Walled Garden)

Ресурсы портала — обязательно:

/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=wifi.clientpulse.ru
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=wf.clientpulse.ru dst-port=80

Ресурсы сторонних методов авторизации — опционально, добавляйте те, что включены в вашей зоне (см. раздел про альтернативную авторизацию):

# Alfa ID
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=id.alfabank.ru

# Yandex ID
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=oauth.yandex.ru
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=passport.yandex.ru
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=yastatic.net
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=mc.yandex.ru

# Sber ID
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=id.sber.ru

# VK ID
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=id.vk.ru
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=static.vk.ru
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=api.vk.ru

# Госуслуги (ЕСИА)
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=*.gosuslugi.ru

Для кастомных доменов:

/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=<your-login-domain-name> dst-port=80
/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=wf.<your-domain-name> dst-port=80

Шаг 5. Замена файлов авторизации

При наличии подключения к интернету на MikroTik замените файлы в папке hotspot. Откройте WinBox → New Terminal и вводите команды по одной. Команды сами находят папку hotspot через dns-name профиля, поэтому dns name из Шага 3 должен содержать «clientpulse».

/tool fetch url="https://wifi.clientpulse.ru/api/file/rlogin.html" dst-path=([/ip hotspot profile get [find dns-name~"clientpulse"] html-directory] . "/rlogin.html") mode=https

/tool fetch url="https://wifi.clientpulse.ru/api/file/login.html" dst-path=([/ip hotspot profile get [find dns-name~"clientpulse"] html-directory] . "/login.html") mode=https

/tool fetch url="https://wifi.clientpulse.ru/api/file/alogin.html" dst-path=([/ip hotspot profile get [find dns-name~"clientpulse"] html-directory] . "/alogin.html") mode=https

/tool fetch url="https://wifi.clientpulse.ru/api/file/logout.html" dst-path=([/ip hotspot profile get [find dns-name~"clientpulse"] html-directory] . "/logout.html") mode=https

/tool fetch url="https://wifi.clientpulse.ru/api/file/status.html" dst-path=([/ip hotspot profile get [find dns-name~"clientpulse"] html-directory] . "/status.html") mode=https

Для кастомных доменов подставьте свой домен портала и домен из dns name:

/tool fetch url="https://<your-login-domain-name>/api/file/rlogin.html" dst-path=([/ip hotspot profile get [find dns-name~"<your-domain-name>"] html-directory] . "/rlogin.html") mode=https

/tool fetch url="https://<your-login-domain-name>/api/file/login.html" dst-path=([/ip hotspot profile get [find dns-name~"<your-domain-name>"] html-directory] . "/login.html") mode=https

/tool fetch url="https://<your-login-domain-name>/api/file/alogin.html" dst-path=([/ip hotspot profile get [find dns-name~"<your-domain-name>"] html-directory] . "/alogin.html") mode=https

/tool fetch url="https://<your-login-domain-name>/api/file/logout.html" dst-path=([/ip hotspot profile get [find dns-name~"<your-domain-name>"] html-directory] . "/logout.html") mode=https

/tool fetch url="https://<your-login-domain-name>/api/file/status.html" dst-path=([/ip hotspot profile get [find dns-name~"<your-domain-name>"] html-directory] . "/status.html") mode=https

Альтернатива без интернета на роутере: скачайте те же файлы по указанным URL в браузере на ПК и загрузите их через WinBox → Files в папку hotspot, заменив существующие.

Если /tool fetch возвращает no such item — dns name профиля hotspot не содержит «clientpulse». Исправьте его: /ip hotspot profile set hsprof1 dns-name=wf.clientpulse.ru.

Шаг 6. Безопасность и дополнительные настройки

Защита DNS и отключение ненужных сервисов

/ip firewall filter add chain=input action=reject reject-with=icmp-network-unreachable protocol=udp in-interface=ether1 dst-port=53
/ip service disable ftp,telnet
/ip service disable api,api-ssl

Идентификатор устройства

Идентификатор точки доступа берётся из настроек точки на портале ClientPulse:

/system identity set name=XXXXXXXXXXXX

NTP и часовой пояс

/system clock set time-zone-name=Europe/Moscow

# RouterOS 7
/system ntp client set enabled=yes servers=216.239.35.0,162.159.200.1,162.159.200.123

# RouterOS 6
/system ntp client set enabled=yes primary-ntp=216.239.35.0

Рекомендуется проверить доступность NTP-серверов; при недоступности выберите любой другой.

Файрвол

/ip firewall filter add chain=input action=accept protocol=icmp
/ip firewall filter add chain=input action=accept protocol=tcp src-address=0.0.0.0/0 in-interface=ether1 dst-port=22

Имя сети

Если SSID не задали при создании интерфейса:

/interface wireless set wlan1-guest ssid="WiFly Captive Portal"

Пароль администратора

/password

Если страница авторизации не появляется — проверьте все настройки. Если всё верно, удалите hotspot, перезагрузите MikroTik и настройте заново.

Часть 2. Настройка MikroTik для Passpoint / OpenRoaming

Что такое Passpoint и OpenRoaming

Passpoint (Hotspot 2.0) — технология автоматического подключения к Wi-Fi без ручного ввода пароля. Устройства сами находят совместимые сети и подключаются к ним по профилю, скачанному с портала провайдера.

OpenRoaming — глобальный роуминг между Wi-Fi-провайдерами на базе Passpoint. Пользователь регистрируется один раз у своего провайдера и автоматически подключается к сетям партнёров.

Как это работает:

  1. Пользователь скачивает профиль Passpoint на устройство (Windows / Android / iOS).
  2. Устройство обнаруживает сети с метаданными 802.11u (Hotspot 2.0).
  3. Если метаданные совпадают с профилем — устройство подключается автоматически.
  4. Аутентификация проходит через EAP-TTLS с RADIUS-сервером.

Предварительные требования

  1. MikroTik RouterOS с поддержкой 802.11u / Hotspot 2.0 (RouterOS 6.40+). Список проверенного оборудования — в статье «Совместимое оборудование с WiFly OpenRoaming».
  2. Профиль от WBA-провайдера — зарегистрируйтесь на портале freewifi.clientpulse.ru и скачайте профили для разных платформ.

Полная конфигурация OpenRoaming с двумя wlan (2,4 и 5 ГГц)

Шаг 1. Bridge

/interface bridge add name=hs-bridge

# Проверьте, не добавлены ли wlan1/wlan2 в другой bridge
# (количество wlan зависит от модели). Если добавлены — сначала:
# /interface bridge port remove [find interface=wlan1]
# /interface bridge port remove [find interface=wlan2]

/interface bridge port add interface=wlan1 bridge=hs-bridge
/interface bridge port add interface=wlan2 bridge=hs-bridge

Шаг 2. Сеть

/ip address add address=192.168.100.1/24 interface=hs-bridge
/ip pool add name=wba-pool ranges=192.168.100.10-192.168.100.254
/ip dhcp-server add interface=hs-bridge address-pool=wba-pool disabled=no name=dhcp-wba
/ip dhcp-server network add address=192.168.100.0/24 gateway=192.168.100.1 dns-server=192.168.100.1

# Если сеть уже существует (последняя команда вернула ошибку):
# /ip dhcp-server network set [find address=192.168.100.0/24] gateway=192.168.100.1 dns-server=192.168.100.1

# КРИТИЧЕСКИ ВАЖНО для работы интернета:
/interface list member add interface=hs-bridge list=LAN

Шаг 3. DNS

/ip dns set allow-remote-requests=yes servers=77.88.8.8,77.88.8.1
/ip dns static add address=78.24.180.231 name=radsec.wifly.net

Шаг 4. RADIUS

/radius add address=78.24.180.231 authentication-port=11812 accounting-port=11813 secret=radsec service=wireless timeout=3000ms

Шаг 5. Security Profile

/interface wireless security-profiles add name=wba-security authentication-types=wpa2-eap management-protection=allowed mode=dynamic-keys supplicant-identity="" radius-eap-accounting=yes eap-methods=passthrough interim-update=300

Шаг 6. Wireless-интерфейсы

/interface wireless set wlan1 mode=ap-bridge ssid="ORW_passpoint" security-profile=wba-security wps-mode=disabled country=russia frequency=auto band=2ghz-b/g/n channel-width=20/40mhz-XX
/interface wireless set wlan2 mode=ap-bridge ssid="ORW_passpoint" security-profile=wba-security wps-mode=disabled country=russia frequency=auto band=5ghz-a/n/ac channel-width=20/40/80mhz-XXXX

Шаг 7. Interworking Profile (Passpoint)

/interface wireless interworking-profiles add name=wba-interworking domain-names=wifly.net,openroaming.org operator-names="WBA OpenRoaming:eng" roaming-ois=5A03BA0000,004096 venue=business-unspecified venue-names="WBA Network:eng" ipv4-availability=public network-type=public-chargeable wan-downlink=100 wan-uplink=100 wan-status=up

Шаг 8. Применить Interworking (критически важно)

/interface wireless set wlan1 interworking-profile=wba-interworking
/interface wireless set wlan2 interworking-profile=wba-interworking

Опционально: логирование для диагностики

/system logging add topics=radius,debug action=memory
/system logging add topics=wireless,debug action=memory
/system logging add topics=hotspot,debug action=memory

# Выгрузить лог в файл
/log print file=logme.txt

Шаг 9. Идентификатор устройства

⚠ Обязательно задайте идентификатор устройства, если на роутере не настроен Captive Portal (Часть 1) — иначе не будет работать статистика посещений.

/system identity set name=XXXXXXXXXXXX

Административная сеть (опционально)

Отдельная сеть для служебного доступа к роутеру — на своих виртуальных wlan и своём bridge:

# Мост
/interface bridge add name=bridge-admin

# Порты
/interface bridge port add interface=wlan1-admin bridge=bridge-admin
/interface bridge port add interface=wlan2-admin bridge=bridge-admin

# IP (например, 192.168.99.0/24)
/ip address add address=192.168.99.1/24 interface=bridge-admin
/ip pool add name=admin-pool ranges=192.168.99.10-192.168.99.254
/ip dhcp-server add interface=bridge-admin address-pool=admin-pool disabled=no name=dhcp-admin
/ip dhcp-server network add address=192.168.99.0/24 gateway=192.168.99.1 dns-server=192.168.99.1

# LAN
/interface list member add interface=bridge-admin list=LAN

Альтернативные методы авторизации пользователя

Работает только в новом сервисе платформы CDP и нужно только для Captive Portal (CP).

  1. Зайдите в личный кабинет CDP app.clientpulse.ru и откройте зону по её ID (5 цифр).
  2. В разделе «Служебные» включите альтернативные методы авторизации.
ЛК ClientPulse: включение альтернативных методов авторизации
ЛК ClientPulse → зона → Служебные → альтернативные методы авторизации
  1. На роутере, настроенном по Части 1, добавьте ресурсы методов в Walled Garden. Методы на портале добавляются со временем — если нужного нет в списке, уточните ресурсы у техподдержки.
/ip hotspot walled-garden
add dst-host=id.alfabank.ru server=hotspot1
add dst-host=oauth.yandex.ru server=hotspot1
add dst-host=passport.yandex.ru server=hotspot1
add dst-host=yastatic.net server=hotspot1
add dst-host=id.sber.ru server=hotspot1
add dst-host=id.vk.ru server=hotspot1
add dst-host=static.vk.ru server=hotspot1
add dst-host=api.vk.ru server=hotspot1

Проверка работы авторизации

  1. Подключитесь к гостевой сети, получите IP-адрес — откроется стартовая страница CDP.
  2. Подтвердите совершеннолетие и согласитесь с условиями обслуживания.
  3. Выберите сервис идентификации и пройдите авторизацию внутри него. По завершении произойдёт обратный редирект с кнопкой «Подключиться» — нажмите её и получите доступ в интернет.
Стартовая страница портала ClientPulse
1. Стартовая страница портала
Подтверждение возраста и согласие с условиями
2. Подтверждение возраста и согласие с условиями
Кнопка «Подключиться» после авторизации
3. Обратный редирект с кнопкой «Подключиться»

Не хотите настраивать вручную?

Инженеры WiFly удалённо настроят MikroTik под ключ: Captive Portal ClientPulse, OpenRoaming, walled garden и служебное соединение.

Подключить OpenRoaming → Запросить настройку

Полезные ссылки

Частые вопросы

Можно ли настроить Captive Portal и OpenRoaming на одном wlan?

Да. Для Captive Portal создаётся виртуальный интерфейс (wlan1-guest с master-interface=wlan1), а OpenRoaming настраивается на физическом wlan1 — OpenRoaming не работает на виртуальных интерфейсах. Порядок: сначала CP, потом OR.

Почему после настройки OpenRoaming перестал работать редирект на Сбер / Альфа / VK?

Скорее всего, OpenRoaming был настроен раньше Captive Portal. Удалите hotspot, перезагрузите роутер и настройте заново в правильном порядке: сначала Captive Portal, затем OpenRoaming.

Что делать, если /tool fetch возвращает «no such item»?

Команда ищет профиль hotspot по dns-name, содержащему «clientpulse». Задайте dns-name=wf.clientpulse.ru в профиле hsprof1 и повторите команду.

Нужен ли идентификатор устройства, если настроен только OpenRoaming?

Да, обязательно: /system identity set name=<ID из портала>. Без него не будет работать статистика посещений.

Какая версия RouterOS нужна?

Captive Portal работает на RouterOS 6.49.x и 7.x. Для OpenRoaming нужна поддержка 802.11u / Hotspot 2.0 — RouterOS 6.40+, рекомендуется последняя стабильная версия.