Схемы Что нового

Captive Portal и финблокировка

Куда попадает должник, правила блокировки, гостевые порталы Wi-Fi и белые списки.

Содержание раздела

Captive Portal (финблокировка)

Captive Portal Engine — единый движок порталов для перехвата трафика через walled-garden. Должник с отрицательным балансом не отрезается полностью, а перенаправляется на страницу «пополните баланс», сохраняя доступ к ЛК, банкам и госуслугам — это ускоряет возврат дебиторки и снижает нагрузку на поддержку.

Обучающее видео 2:40

Как проверить готовность портала, чем опасен аварийный режим и почему нельзя привязывать магистральный NAS к гостевому профилю.

1920×1080 с озвучкой Скачать
flowchart TB
  CP["Captive Portal"] --> FIN["Финблокировка"]
  CP --> GST["Гостевые порталы"]
  CP --> PAY["Платежи"]
  CP --> ACL["Белые списки"]
  FIN --> RAD["RADIUS
walled-garden"] GST --> RAD ACL --> POOL["Пулы IP
и справочники"] PAY --> YK["Услуги
и ЮKassa"]

Раздел в админке: Настройки → Captive Portal (/admin/settings/captive_portal/). Страница собрана на общем каркасе списков: шапка с действиями раздела, под ней четыре раздела-ссылки, у списков — срезы со счётчиками и поиск.

Сводка, готовность и проверка

Вверху вкладки — сводка в границах организаций сотрудника: сколько должников сейчас на странице оплаты (живые сессии с адресом блок-пула), сколько заблокировано за долг, за сегодня, администратором, добровольно, с обещанным платежом и сколько клиентов выключено. Два последних числа открывают список в поиске клиентов.

Финблокировка: сводка и готовность — должники попадают на страницу оплаты
Финблокировка: сводка и готовность — должники попадают на страницу оплаты

Под сводкой — ответ на главный вопрос: попадают ли должники на страницу оплаты. Каждая проверка отмечена зелёным (в порядке), жёлтым (обратите внимание) или красным (нужно исправить); у жёлтых и красных есть кнопка «К полю».

Кнопка «Проверить настройку» идёт дальше: сверяет занятость блок-пула по живым сессиям, резервные значения, открывает страницу оплаты. Итог сворачивается в строку «Последняя проверка»; если профиль меняли позже, рядом стоит метка «устарела».

Готовность и результат последней проверки
Готовность и результат последней проверки
flowchart LR
  A["Долг"] --> O{"Есть другая
блокировка?"} O -->|"да"| REJ["Отказ
авторизации"] O -->|"нет"| F{"Блок-пул или
Filter-Id?"} F -->|"нет"| REJ F -->|"да"| WG["Адрес блок-пула
и белый список"] WG --> PAY["Страница оплаты"] PAY --> OK["Оплата — блок снят,
интернет вернулся"]
Filter-Id указывайте, только если правило с этим именем есть на NAS. Пустое поле значит «не отправлять»: должника узнают по адресу блок-пула. Раньше форма подставляла walled_garden в пустое поле, и любое сохранение начинало слать атрибут на оборудование.

Форма и сохранение

Форма разделена на два блока: «Куда попадает должник» (профиль, блок-пул, Filter-Id, белый список со ссылкой на его сайты, страница оплаты) и «Правила блокировки» (разрыв сессии при долге, отказ должникам, аварийный режим в отдельной красной зоне).

Форма финблокировки: куда попадает должник и правила блокировки
Форма финблокировки: куда попадает должник и правила блокировки

Аварийный режим «интернет всем»

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

flowchart LR
  ON["Включение
с подтверждением"] --> LOG["Автор, время
и срок записаны"] LOG --> WORK["Блокировки
не действуют"] WORK --> OFF["Выключение: кнопкой
или по сроку"]
Исправлено в сборке 3131: режим не включался вовсе (запись настройки падала с ошибкой), а RADIUS читал настройку под прежним именем и включения бы не увидел. Теперь режим записывается под обоими именами. Та же ошибка роняла сохранение вкладки «Блокировки» в системных настройках.

Как устроено

Движок построен на единой модели PortalProfile, рассчитанной на три типа портала: financial (финблокировка должников), guest (гостевой Wi-Fi турбаз — бесплатный и платный) и paid (платные точки):

Что делает оператор сам: создаёт блок-пул в Справочники → Пулы IP, выбирает его и остальные параметры на странице Captive Portal. Настройка walled-garden на боевом MikroTik (firewall + DNAT на заглушку) — однократная работа сетевого инженера.

Организации и права доступа

Раздел относится к группе прав «Настройки · Инфраструктура» — по умолчанию его открывает только администратор. Изменение настроек закрыто той же проверкой, что и сама страница: сотрудник без права не сможет поменять параметры даже прямым запросом.

Данные скоупятся по организации клиента-турбазы: список порталов, статистика платежей и выгрузка CSV показывают только то, что относится к организациям сотрудника. Портал чужой организации не открывается и по прямой ссылке — отвечает так же, как несуществующий. В списке гостевых NAS доступно только оборудование этой организации.

Привязка NAS — операция с последствиями. Гостевая ветка RADIUS срабатывает по одному признаку: NAS привязан к гостевому профилю. Если отметить магистральный NAS, все его клиенты при следующей авторизации уедут в гостевой walled-garden. Поэтому рядом с каждым NAS показано число учётных записей на нём, а при попытке привязать «занятый» — запрашивается подтверждение с перечислением.

Гостевой Wi-Fi портал для турбаз

На том же движке (PortalProfile тип guest) работает гостевой Wi-Fi портал — инструмент для турбаз, кафе, отелей: гость подключается к Wi-Fi, попадает на брендированную страницу, подтверждает телефон по SMS и заполняет анкету, после чего получает интернет. Турбаза собирает легальную базу контактов с согласием на рекламу и автоматически рассылает SMS-поздравления с днём рождения.

Гостевые порталы: срезы, сеть, гости, состояние
Гостевые порталы: срезы, сеть, гости, состояние

Срезы со счётчиками: Сеть не привязана (гость заполнит анкету, но интернет не получит), Платные, Не принимают гостей (портал включён, но площадка не утвердила текст согласия), Выключены. Поиск — по площадке, клиенту и NAS; набор колонок сохраняется в профиле. Под таблицей — площадки на карте: зелёная точка — сеть привязана, красная — нет.

Название площадки и пункт меню «Настроить сеть и оплату» открывают окно портала с четырьмя вкладками: Сеть (NAS площадки, пул адресов гостей, Filter-Id, белый список), Оборудование площадки (hotspot на её MikroTik), Оплата и Адрес и почта (свой домен страницы входа, ящик для писем гостям). В меню строки также наклейка с QR-кодом, страница входа и карточка площадки.

Окно портала, вкладка «Сеть»: у каждого NAS — число учётных записей
Окно портала, вкладка «Сеть»: у каждого NAS — число учётных записей
Вкладка «Оплата»: тарифы площадки и бесплатные минуты
Вкладка «Оплата»: тарифы площадки и бесплатные минуты

Сохранение показывает список изменений; если среди добавленных NAS есть учётные записи клиентов, окно подтверждения красное и называет их число. В журнал изменения пишутся словами. Свой домен и ящик меняются только при реальной смене — раньше каждое сохранение заново обращалось к DNS.

Подключение: услуга «Гостевой Wi-Fi портал» (system_type=12) клиенту-турбазе (юр.лицо). При подключении автоматически создаётся портал с дефолтной анкетой (телефон + дата рождения). На карточке клиента появляется вкладка «Гость wifi» со статусом и ссылкой на портал.

152-ФЗ: портал не собирает данные, пока текст согласия на обработку ПДн не утверждён (флаг «текст утверждён» в ЛК турбазы). До утверждения портал в режиме настройки. Рассылки идут только гостям, отдельно согласившимся на рекламу.

Платный доступ к гостевой сети (продажа по QR)

Гостевой портал можно сделать платным: гость сканирует QR-наклейку, подтверждает телефон по SMS, выбирает тариф (например «100 ₽ — 3 часа»), оплачивает через ЮKassa и получает интернет на оплаченный срок. По истечении доступ автоматически отключается. Чек 54-ФЗ пробивает ЮKassa, выручка идёт на организацию-провайдера. Применение — платные точки в парках, на турбазах, на мероприятиях.

Поток гостя: сканирует QR → телефон + SMS-код → выбор тарифа → e-mail для чека → оплата картой → чек на почту → интернет на срок тарифа → по истечении снова на портал.

QR-наклейка. Пункт «Наклейка с QR-кодом» в меню строки гостевого портала открывает готовую брендированную A6-наклейку (PDF) прямо в окне — её печатают и размещают на ресепшене. Гость сканирует камерой и попадает на портал.

Платежи гостей

Раздел отвечает на вопрос «принимаются ли деньги прямо сейчас». Сверху — итоги выбранного периода: доступов действует сейчас, выручка, средний платёж, доля оплаченных попыток и доля попыток с ошибкой. Ниже срезы по статусам — Все · Действуют · Ошибки · Истекли · Ожидают · Возвраты, — период (30 дней, 90 дней, год, всё время), площадка и поиск по почте, телефону или MAC.

Платежи гостей: итоги периода, срезы по статусам, предупреждение об ошибках
Платежи гостей: итоги периода, срезы по статусам, предупреждение об ошибках
Контакты гостей скрыты. Почта и телефон выводятся масками (p****@example.ru, 79177***96) и раскрываются по клику. Колонка MAC по умолчанию скрыта, её можно включить в наборе колонок. Экспорт CSV выгружает ровно то, что отобрано, и только по доступным организациям.

Белые списки

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

Белые списки: группы, включённые сайты, где используется; сайты группы раскрыты
Белые списки: группы, включённые сайты, где используется; сайты группы раскрыты

Гости в СОРМ и срок хранения данных

Публичный Wi-Fi отличается от домашнего интернета не только техникой: постановления Правительства РФ №758 и №801 от 31.07.2014 требуют идентифицировать пользователя точки коллективного доступа и хранить сведения о нём и об оказанных услугах связи. Гость не клиент — договора с ним нет, — поэтому в выгрузку он попадает отдельными файлами, а не в таблицу ABONENT, согласованную с куратором.

flowchart LR
  G["Гость
подтвердил номер"] --> U["GUEST_USER
кто пользовался"] G --> I["GUEST_IDENT
журнал идентификаций"] S["Сессия RADIUS"] --> SS["GUEST_SESSION
оказанные услуги"] U --> EXP["Выгрузка СОРМ
по конфигу"] I --> EXP SS --> EXP
ФайлЧто внутриИсточник
GUEST_USER телефон и время его подтверждения, MAC, площадка и её владелец, первый и последний визит, число визитов, согласие на обработку данных, ФИО и e-mail — если анкета площадки их собирает гости порталов
GUEST_IDENT журнал подтверждений номера: когда запрошен код, когда подтверждён, IP и MAC клиента, IP точки доступа. Неудачные попытки тоже видны (RESULT = 0) OTP-сессии портала
GUEST_SESSION сведения об оказанных услугах: начало и конец сессии, длительность, объём трафика, IP и MAC сессии RADIUS по MAC гостя

Файлы добавляются кнопкой «Гостевой Wi-Fi» на странице отчётов конфига СОРМ (Оборудование → СОРМ → Отчёты). Отдельной кнопкой, а не в общем наборе: гостевые порталы есть не у каждого оператора, а состав файлов согласуется с куратором отдельно.

Периодичность — «вручную». Новые отчёты создаются без расписания: пока состав не согласован, файлы не должны уезжать на FTP регулятора сами. Периодичность включает оператор — как у остальных отчётов.
Сессии есть не всегда. GUEST_SESSION заполняется, когда площадка работает на нашем оборудовании (адаптер A). При адаптере B сессию держит MikroTik площадки и в биллинг она не попадает — факт доступа виден в GUEST_USER по времени окончания доступа.

Сколько хранить

Две нормы тянут в разные стороны, и обе обязательны: №801 требует хранить сведения не менее шести месяцев, а 152-ФЗ — не дольше, чем нужно для цели обработки. Поэтому срок задан настройкой GUEST_DATA_RETENTION_DAYS (по умолчанию 180 дней). Раз в сутки задача удаляет гостей старше срока вместе с анкетами, согласиями и журналом идентификаций; гостей с ещё действующим оплаченным доступом не трогает. Значение 0 отключает удаление — на случай, когда есть основание хранить дольше (запрос уполномоченных органов, спор по оплате).

Срок меньше 180 дней — нарушение №801. Задать его технически можно, но в журнале появится предупреждение: сведения о пользователях публичного Wi-Fi должны быть доступны уполномоченным органам полгода.

С телефона

Таблицы становятся карточками с подписями полей, окно портала открывается на весь экран, форма финблокировки идёт одной колонкой. Кнопка знакомства с разделом — в верхней полосе, слева от значка справки.

Финблокировка на телефоне
Финблокировка на телефоне
Гостевые порталы на телефоне
Гостевые порталы на телефоне
Для запуска платного режима нужно: включить платный доступ в настройках гостевого Wi-Fi, ввести REST-ключ ЮKassa (формат live_…) в Настройки → Платёжные системы и добавить домены ЮKassa (yoomoney.ru, api.yookassa.ru) в белый список гостевого NAS — иначе неоплаченный гость не сможет открыть страницу оплаты из walled-garden.