Вы находитесь на странице: 1из 517

WNAM - Wireless Network Access Manager

Документация на программное обеспечение WNAM версии 1.4.1480 (релиз 1.4), октябрь 2017

(с) ООО "Нетамс"


Москва, 2017

1. Документация Wireless Network Access Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3


1.1 Характеристики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Словарь терминов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Системные требования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Принципы работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Установка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.1 Подготовка сервера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.2 Установка необходимого программного обеспечения на сервере . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.3 Установка WNAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5.4 Конфигурационный файл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.5.5 Дополнительные инструменты на сервере . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.6 Базовая настройка (быстрый старт) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.7 Настройка устройств доступа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.7.1 Беспроводной контроллер Aruba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.7.1.1 Дополнительные сведения о настройке контроллера Aruba . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.7.2 Беспроводной контроллер Bluesocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
1.7.3 Беспроводной контроллер Cisco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1.7.3.1 Режим CWA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.7.3.2 Режим Web Auth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1.7.3.3 Поддержка legacy контроллеров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
1.7.4 Беспроводной контроллер Ruckus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.7.5 Беспроводной контроллер TP-LINK CAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
1.7.6 Беспроводной контроллер TP-LINK EAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
1.7.7 Беспроводной контроллер Zyxel NXC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
1.7.8 Беспроводной контроллер и точки доступа Huawei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
1.7.9 Беспроводные точки доступа Cambium Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
1.7.10 Беспроводные точки доступа Eltex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
1.7.11 Беспроводные точки доступа Rotek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
1.7.12 Беспроводные точки доступа Zyxel Keenetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
1.7.13 Беспроводный контроллер HP MSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
1.7.14 Беспроводный контроллер Ubiquiti UniFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
1.7.15 Беспроводный контроллер на основе WiNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
1.7.16 Маршрутизатор Alcatel-Lucent SR7750 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
1.7.17 Маршрутизатор Cisco ISG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
1.7.18 Маршрутизатор Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
1.7.19 Маршрутизатор Mikrotik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
1.7.20 Маршрутизатор OpenWrt/dd-wrt с порталом CoovaChilli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
1.7.21 Маршрутизатор pfSense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
1.7.22 Общие правила получения статистики по трафику . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
1.7.23 Шлюз доступа Zyxel UAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
1.8 Административный интерфейс WNAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
1.8.1 Пользователи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
1.8.2 Сеcсии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
1.8.3 Конфигурация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
1.8.3.1 Пользователи интерфейса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
1.8.3.2 Сервера доступа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
1.8.3.3 Площадки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
1.8.3.3.1 Группировка площадок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
1.8.3.4 Точки доступа Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
1.8.3.5 Авторизация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
1.8.3.5.1 По ссылке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
1.8.3.6 Перенаправление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
1.8.3.7 Ограничения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
1.8.3.8 Платный доступ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
1.8.3.8.1 Тестирование платного доступа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
1.8.3.9 Конструктор страниц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
1.8.3.10 Загружаемые страницы портала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
1.8.3.11 Ваучеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
1.8.3.12 Социальные сети . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
1.8.3.12.1 Настройка учетных записей в социальных сетях . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
1.8.3.13 Опросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
1.8.3.14 Нотификации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
1.8.3.15 Взаимодействие c СОРМ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
1.8.3.16 Общие настройки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
1.8.3.17 Работа с базой данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
1.8.4 Логи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
1.8.5 Отчёты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
1.8.5.1 Операторы связи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
1.8.5.2 Платный доступ (отчеты) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
1.8.5.3 Показатели производительности системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
1.8.5.4 Потенциальные нарушители . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
1.8.5.5 Розыск пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
1.8.5.6 Топ пользователей по трафику . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
1.9 Интерфейс владельца площадки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
1.10 Структура отображаемых абонентам страниц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
1.11 Интерфейс работы с рекламой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
1.11.1 Рекламодатели и рекламные агенты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
1.11.2 Рекламные блоки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
1.11.3 Рекламные кампании . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
1.11.4 Запуск рекламы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
1.11.5 Отчеты по рекламе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
1.12 Расширенная настройка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
1.12.1 Кластеризация WNAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
1.12.2 Отправка СМС по протоколу SMPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
1.12.3 Отправка СМС по протоколу HTTP GET или POST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
1.12.4 Отправка СМС через USB модем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
1.12.5 Получение СМС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
1.12.6 Идентификация по исходящему звонку . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
1.12.7 Идентификация по входящему звонку . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
1.12.8 Портал перехвата HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
1.12.9 Идентификация по ваучеру . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
1.12.10 Идентификация через Госуслуги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
1.12.11 Отправка СМС через USB модем в сервере доступа Mikrotik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
1.12.12 Идентификация в гостиничной системе "Эдельвейс" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
1.12.13 Идентификация через логин-пароль . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
1.12.14 VIP пользователи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
1.12.15 Идентификация в гостиничной системе UCS Shelter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
1.12.16 Сбор ФИО и E-mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
1.12.17 Интеграция с Kinian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
1.12.18 Мониторинг серверов доступа и площадок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
1.12.19 Прикладной интерфейс (API) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
1.13 Обслуживание системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
1.14 Мониторинг работоспособности WNAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
1.15 VPN сеть для подключения отдельных хотспотов через Интернет . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Документация Wireless Network Access Manager
Добро пожаловать в мир Wireless Network Access Manager! Это программное обеспечение
(Система Управления Беспроводным Доступом, WNAM) специально разработано для обеспечения
удобного, надежного функционирования средств доступа пользователей к вашей беспроводной
сети. Оно является дополнением к имеющимся у вас инструментам создания беспроводной сети
(точкам доступа, серверам, маршрутизаторам, ЛВС), позволяет учитывать и администрировать
абонентов, сессии трафика, назначать политики доступа, создавать и просматривать
разнообразные отчеты. Основное его назначение - обеспечивать авторизованный доступ к
беспроводной сети и идентификацию пользователей в соответствии с Федеральным законом
Российской Федерации от 5 мая 2014 г. N 97-ФЗ , постановлениями Правительства РФ № 758 от
31 июля 2014 и № 801 от 12 августа 2014 г. и другими законодательными нормами.

Размещенный здесь комплект документации относится к текущей версии программного


обеспечения WNAM (1.4.1480), датированной 15 октября 2017 года. Это - официальный релиз
версии 1.4.

Для установки и настройки WNAM обязательно ознакомьтесь с разделами "принципы работы",


"установка", "базовая настройка", "настройка устройств доступа".

Авторы этого документа, равно как и авторы WNAM, не несут ответственности за любой вред,
ущерб, потерю денег, клиентов, порчу оборудования и прочие проблемы, вызванные вашим
самостоятельным использованием данного программного обеспечения, или применением
информации, изложенной здесь. Более подробно ограничение ответственности отражено в
лицензионном соглашении, которое вы обязаны соблюдать, используя WNAM. Текст
лицензионного соглашения доступен по адресу http://www.netams.com/eula-text.html

WNAM является коммерческим продуктом. Если у вас есть демо-лицензия, по окончании


пробного периода эксплуатации (30 дней) вы обязаны или прекратить пользоваться программой,
либо приобрести лицензию у ООО "Нетамс".

(с) 2013-2017 ООО "Нетамс


Характеристики
Программное обеспечение WNAM представляет собой серверное приложение, работающее под
управлением операционной системы Windows* либо Linux. Оно написано на языке Java и
функционирует как веб-приложение в контейнере Apache Tomcat. Управляется WNAM через
веб-браузер. Помимо основного (административного) интерфейса реализует функционал
веб-сервера для отображения клиентам (пользователям Wi-Fi сети) страниц портала
авторизации и рекламных блоков.

WNAM ведет базу MAC-адресов устройств пользователей (абонентов), а также сетевых


устройств, при помощи которых пользователи получают доступ к сети (контроллеры,
RADIUS-серверы и т.п.). Помимо этого осуществляет сбор различной статистической
информации, занимается её отображением, создает отчёты, обеспечивает идентификацию
пользователей и показ им рекламы.

WNAM является посредником при авторизации пользователя в сети, тесно взаимодействуя с


RADIUS-сервером (поддерживается FreeRADIUS). Помимо авторизации, RADIUS предоставляет
сведения о трафике (Accounting) по сессиям абонентов. Безразлично, какой тип беспроводного
оборудования вы используете - Cisco, Ruckus, Aruba, Unifi - главное, что авторизация
пользователей производится через такой сервер. Альтернативно, вы можете пропускать трафик
пользователя через портал перехвата (хотспот) (например, на базе Mikrotik), который в свою
очередь использует RADIUS-сервер.

WNAM может проводить сопоставление MAC-адреса и имени устройства (по заголовкам


DHCP-запросов), определять производителя устройства, учитывать различные сессии
(подключения) каждого абонента.

WNAM может проводить авторизацию первоначального подключения пользователя путем


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

Возможно направить в WNAM поток статистики NetFlow с вашего контроллера или


маршрутизатора для учета посещенных пользователем внешних IP-адресов.

Подробный перечень характеристик WNAM последней версии приведен на сайте http://www.neta


ms.com/wnam-func.html

* Под управлением Windows может работать само приложение WNAM, и база данных. Поскольку
WNAM использует FreeRADIUS для своей работы, вам будет необходимо иметь отдельный
Linux/BSD сервер с FreeRADIUS (который под Windows не работает).

Словарь терминов
Ниже приведен словарь терминов и определений, которые используются в дальнейшем при
описании настройки WNAM и работы с ним.

Абонент, пользователь, пользователь Wi-Fi

Физическое лицо, человек, подключившийся к беспроводной сети и пользующийся доступом в


сеть Интернет. WNAM позволяет проводить идентификацию таких пользователей путём привязки
аппаратного (МАС) адреса мобильного устройства (смартфон, телефон, планшет, мобильный
компьютер) к номеру телефона человека, с идентификацией номера путём отправки или
получения СМС. WNAM ведет таблицу зарегистрированных пользователей с указанием
МАС-адреса, идентификаторов, телефона, момента первой и последней сессии, параметрами
блокировок и т.п.

Пользователь веб-интерфейса

Администратор системы управления WNAM, оператор (дежурный персонал) системы управления,


владелец площадки (собственник бизнеса, где размещены точки доступа Wi-Fi), который желает
получить ограниченный доступ к статистике, собираемой WNAM.

Хотспот

Встроенное в устройство (сервер доступа) специальное программное обеспечение, позволяющее


перехватывать (перенаправлять) HTTP- или HTTPS-сессию браузера абонента на внешний
веб-сервер. В случае использования WNAM этот веб-сервер - часть системы WNAM, где
производится идентификация абонента и демонстрация ему заданных страниц. После
проведения авторизации, хотспот, по команде от WNAM, временно разрешает абоненту доступ в
сеть Интернет.

Сервер доступа
Физическое устройство, осуществляющее контроль и предоставление доступа в Интернет
абонентам Wi-Fi сети. В общем случае это маршрутизатор, выполняющий функцию hotspot
(портал перехвата), или логическая настройка hotspot на контроллере беспроводных точек
Wi-Fi. На одном маршрутизаторе или контроллере можно создать несколько записей о серверах
доступа, если это целесообразно для целей сегментации сети или предоставления разных имён
сети Wi-Fi (SSID). Сервером доступа также является хотспот, организованный на
Linux-маршрутизаторе при помощи ipset/iptables.

Площадка

Территориальное место предоставления услуги беспроводного доступа, например одно кафе,


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

Сессия

Сведения о факте подключения пользователя к сети, с указанием как ссылки на профиль


абонента, так и на текущие параметры сессии: временный IP-адрес, выданный абонентскому
устройству, счётчики принятых и отправленных байт, сведения о площадке, где произошло
подключение, точке доступа Wi-Fi, RADIUS-идентификаторе сессии и т.п.

Поток трафика

Информация об индивидуальной TCP/IP сессии обмена трафиком, проводимой подключившимся


абонентом в рамках сессии, и внешним ресурсом в сети Интернет. Определяется IP адресами и
TCP либо UDP портами отправляющей или принимающей стороны, счетчиками пакетов и байт.
Требует работы специализированных средств сбора такой информации на канале передачи
данных, например NetFlow.

Сервер WNAM

Физический сервер или виртуальная машина, на которой установлена операционная система


Linux, служебные программы (freeradius, tomcat, mongodb), и программное обеспечение WNAM.

Работа с рекламой

Возможность редактировать шаблоны страниц СМС-авторизации и пост-авторизации


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

Рекламные кампании и интерфейс рекламодателя

Появившаяся в версии 1.2 дополнительно лицензируемая возможность создавать пользователей


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

В качестве компьютера подойдет любой достаточно современный сервер или рабочая станция.
Полностью поддерживается размещение WNAM на виртуальной машине. Требуемые
характеристики сервера напрямую зависят от планируемой нагрузки (числа пользователей,
поток запросов авторизации, объем базы данных). Для задач среднего уровня, при числе
пользователей в БД до 100 тысяч, порядка 1 запроса авторизации в секунду, до 500
одновременно работающих пользователей, с хранением статистики до 3 месяцев рекомендуется
сервер с 4 Гб ОЗУ, процессором типа Core i5, 200 Гб диском. Поскольку WNAM написан на Java,
программы на котором отличаются повышенными требованиями к оперативной памяти, при
большем числе одновременно работающих пользователей рекомендуется иметь от 8 до 16 Гб
ОЗУ. При большом предполагаемом объеме БД, или если вы собираетесь активно пользоваться
инструментами создания отчетности, рекомендуется применять быстрые (серверные, не
бытовые) жесткие диски, лучше SAS или SSD. Для сохранности данных рекомендуем объединять
их в тома RAID 1/5/6. Обязательно позаботьтесь о наличии источника бесперебойного питания к
вашему серверу, кондиционера в серверном помещение, если есть возможность - раздельных
входящих электрических линий и двух блоков питания в сервере.

Расчёт требуемой дисковой ёмкости должен быть основан на следующих длинах единичной
записи в таблице:

Тип данных Размер, байт На диске, байт Соотношение числа


записей

session (сессия 500 550 3


абонента)

customer (абонент) 500 660 1

log (лог) 380 400 4

flow (поток NetFlow) 325 350 100

adStat (показ 240 325 2


рекламы)

smsStat (СМС) 240 280 1

WNAM полностью поддерживает работу в среде виртуализации (тестировано VMware ESXi 5.0 и
выше). Не рекомендуется применить SPAN-агента в виртуальной инфраструктуре (высоки
накладные расходы на проброс трафика), лучше установить агента на отдельный сервер.

Для работы в отказоустойчивой (кластерной) конфигурации вам потребуется как минимум два
сервера (физических или виртуальных), размещённых в одном сегменте ЛВС. Для целей
кворума кластера рекомендуется установить третий сервер (виртуальную машину с
минимальной конфигурацией). Кластерная конфигурация WNAM лицензируется отдельно.

Приложение написано в платформо-независимом виде (100% Pure Java), поэтому работает


везде, где может работать Java JDK. Протестирована работа среде Linux (Ubuntu, Debian,
CentOS) под управлением Oracle и OpenJDK 1.8. Настоятельно рекомендуется использовать
Debian последней версии. Поскольку порта FreeRADIUS для Windows не существует, WNAM
невозможно полноценно использовать на сервере Windows. Работа под управлением FreeBSD
возможна, но не тестировалась. В продуктивной работе мы рекомендуем использовать ОС
семейства Linux, работающие в виртуальном окружении VMware, так как подобные системы
более надежны, их проще администрировать, делать резервные копии, масштабировать.

Вам необходимо настроить межсетевой экран на вашем сервере. Как минимум, разрешите доступ
по порту TCP:80 к веб-серверу в приложением WNAM, а также ssh (TCP:22) для управления,
UDP:1812 и UDP:1813 для работы с RADIUS-сервером (только с ваших, определенных сетей).
Рекомендуется использовать HTTP-интерфейс. Подробнее список требуемых портов перечислен з
десь.

Для версии WNAM 1.3 и выше обязательными компонентами прикладного программного


обеспечения являются:

Java runtime (JRE или JDK в виде Oracle Java или OpenJDK/JRE) версии минимум 1.8
MongoDB 3.0 и выше (рекомендуется 3.4)
Apache Tomcat 8
FreeRADIUS 2 или 3
Perl 5.10 и выше

Помимо этого мы советуем установить на сервере


следующие необязательные пакеты:
UniFi controller (http://www.ubnt.com/download) - если вы будете управлять точками
доступа UniFi.
DNS сервер (для абонентов Wi-Fi)
DHCP сервер (для абонентов Wi-Fi)
Zabbix (для мониторинга вашего сервера и сети)
ipt_netflow (для сбора статистики по трафику, если ваш сервер является роутером для
абонентов)

Для работы UNIX-агента (статистика трафика NetFlow либо поиск URL в трафике) требуется
также библиотека libpcap и возможность собирать трафик пользователей. Для этого надо, чтобы
либо он проходил через сам сервер (который выступает в роли маршрутизатора), либо
перехватывался вашим коммутатором через SPAN-порт (коммутатор должен поддерживать такой
функционал) и направлялся на отдельный сетевой интерфейс сервера.

Принципы работы
Для корректной работы WNAM необходимо спроектировать и настроить соответствующее сетевое
окружение.

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

Ключевым компонентом сети является хотспот - устройство, на котором производится


перенаправление HTTP-сессии Wi-Fi абонента на внешний портал авторизации. Это может быть:

контроллер беспроводных точек доступа, который имеет соответствующие функции


(называемые производителем hostspot/wispr/external captive portal и т.п.): Cisco WLC,
Bluesocket vWLC, Ruckus, Zyxel NXC, Aruba, UniFi, HP MSM и т.п.
любая "бытовая" точка доступа с установленной прошивкой OpenWrt/dd-wrt и
программным пакетом CoovaChilli
маршрутизатор с функцией портала перехвата hotspot, возможно со встроенной точкой
доступа: Mikrotik (модели RB951Ui-2HnD, RB951G-2HnD, RB750UP, RB2011iL-IN,
RB1100AHx2 и т.п.)
сервер-маршрутизатор Linux, выполняющий роль шлюза по умолчанию для сети абонентов
Wi-Fi
маршрутизатор на основе pfSense (клон FreeBSD) с функцией Captive Portal
сервер-концентратор доступа BRAS, например Cisco 7200, Cisco ASR, Alcatel-Lucent SR7750
(требует дополнительной лицензии)

В первую очередь, вы должны построить беспроводную сеть доступа для ваших абонентов. В
случае контроллерно-управляемых точек доступа, точки должны соответствовать контроллеру. В
остальных случаях можно использовать любые точки доступа. Из соображений безопасности
крайне желательно разграничить сетевые сегменты открытой (публичной части), и вашей
внутренней сети. Такое разграничение можно обеспечить либо на физическом уровне, либо при
помощи VLAN.

В приведенном ниже примере в качестве точек доступа используются Ubiquiti UniFi (открытая
сеть без встроенного портала), в качестве маршрутизатора/хотспота Mikrotik.

Для идентификации через СМС сервер будет отправлять команды на отправку СМС с кодом
доступа через шлюз СМС-провайдера (в настоящее время поддерживаются провайдеры SMSC, W
ebsms.By, smstraffic, МТС.Коммуникатор, отправка через локально установленный USB GSM
модем (утилита gammu), через установленный в маршрутизатор Mikrotik USB модем, или через
любого провайдера по протоколу SMPP v3.4 через утилиту kannel). Возможна также отправка
голосового вызова на телефон абонента, где автоматически будет продиктован код доступа,
через нескольких операторов, а также приём звонка от абонента через шлюз Asterisk.
Если у вас несколько площадок, где вы предоставляете доступ пользователям, вы можете
установить на каждой из них по своему маршрутизатору Mikrotik. В таком случае вам
необходимо настроить несколько экземпляров "серверов доступа" и "площадок" в
соответствующих разделах интерфейса WNAM (внимание: количество площадок лицензируется).
Если места предоставления услуги находятся где-тов Интернете (который предоставляет на
месте альтернативный провайдер), вы можете связать площадки с центральным узлом (где
находится сервер) при помощи VPN (OpenVPN, VPLS, VLAN и т.п.):

Вы можете также привязать несколько площадок на один маршрутизатор MikroTik (несколько


экземпляров HotSpot).

Перед настройкой сервера WNAM и хотспота на беспроводном контроллере/маршрутизаторе вы


должны убедиться, что сама беспроводная сеть настроена правильно. Абоненты должны
подключаться к сети, получать IP-адрес (работает DHCP), должна функционировать служба DNS,
маршрутизация трафика, служба трансляции адресов (NAT). Без корректно работающей
беспроводной сети в режиме "без авторизации" переходить к настойке WNAM не следует.

Для успешной работы аервиса авторизации необходима настройка трёх компонентов: WNAM,
RADIUS-сервера, службы HotSpot на устройстве.

При первоначальном подключении абонента проводится его идентификация и перенаправление


сессии на внешний сайт или рекламу, при последующих - только перенаправление. При
идентификации производится привязка МАС-адреса абонентского устройства к номеру
мобильного телефона абонента. При этом производится отправка абоненту кода подтверждения,
который тот должен ввести на специальной странице. Таким образом становится реальным
розыск абонента, пользовавшегося вашей радио-сетью, по запросу от соответствующих
органов. Схема работы "по шагам" приведена ниже.

1. Пользователь подключает свое беспроводное устройство (ноутбук, смартфон, планшет) к


беспроводной сети (без авторизации), построенной на основе UniFi или иного
радио-оборудования, получает IP-адрес от маршрутизатора (DHCP).
2. Пользователь открывает какую-либо страницу в сети Интернет (либо его устройство само
открывает страницу).
3. Маршрутизатор или контроллер (компонент HotSpot) считает сессию пользователя "не
авторизованной" и производит перенаправление сессии пользователя "на себя".
4. HotSpot отображает пользователю собственную страницу авторизации (например, rlogin.ht
ml для Mikrotik). Указанная страница (шаблон) должны быть предварительно загружена в
маршрутизатор, и в ней указана автоматическая отправка формы на внешний сервер
WNAM. Производители контроллерно-управляемого радио-оборудования имеют такую
функцию в настройках контроллера.
5. Форма содержит ссылку на встроенный в WNAM веб-сервер, который показывает
5.
пользователю страницу СМС-идентификации.
6. Пользователь вводит номер своего телефона.
7. При получении номера телефона WNAM генерирует случайный (4 или 6-циферный) код
активации, и через СМС-шлюз отправляет его на указанный телефон. Альтернативным
способом является запрос пользователя отправить с этого телефона СМС на указанный
вами номер - в таком случае, оплата за СМС перекладывается на абонента.

8. Пользователь вводит код подтверждения


9. При совпадении WNAM производит редирект (средствами HTTP redirect) сессии
пользователя в сторону HotSpot маршрутизатора, либо открывает доступ пользователю
иным способом.
10. HotSpot производит проверку МАС-адреса пользователя путём отправки RADIUS-запроса
серверу WNAM
11. RADIUS-сервер, получив запрос на авторизацию, через Perl-модуль
wnam-freeradius-bridge.pl передает в WNAM запрос на авторизацию (MAC-адрес
абонентского устройства пользователя, идентификаторы площадки, текущий IP-адрес и
т.п.).
12. WNAM авторизует такое обращение, создает в своей базе учётную запись абонента
(пользователя) по МАС-адресу (если такого адреса ещё не было), возвращает ответ
RADIUS-серверу
13. RADIUS-сервер возвращает ответ маршрутизатору
14. Маршрутизатор авторизует на своем портале HotSpot сессию пользователя, открывая ему
доступ в Internet.
15. Одновременно с этим отправляет RADIUS-серверу запрос начала сессии (Accounting-Start).
16. RADIUS-сервер транслирует запрос начала учёта сессии в WNAM, тот создаёт запись о
новой сессии. Периодически получая сообщения о статусе сессии, WNAM ведет статистику
о переданном абонентом трафике.
17. При настройке на маршрутизаторе или контроллере отправки детальных сведений о
трафике абонента в сторону WNAM производится привязка получаемой статистики к
текущей сессии абонента, и хранение её в базе данных для возможного последующего
розыска абонента.
18. По завершении сессии (тайм-аут) сессий закрывается, а пользователь, если ещё не
отключился и активен, снова перенаправляется на страницу подтверждения.
На один номер телефона можно привязать несколько устройств (МАС-адресов), в том числе тех,
которые не имеют SIM-карты. Время жизни такой авторизации определяется в параметрах (меню
"Конфигурация" - "Общие настройки" - "Авторизация" - "Длительность авторизации телефонного
номера"), либо в индивидуальных настройках площадки. рекомендуется выставлять это время в
180 дней. При повторных подключениях того же пользователя, если с момента авторизации не
прошло указанное выше время, производится безусловная (без подтверждений и СМС)
авторизация сессии.

Беспроводная сеть никак не может защититься от ситуации с подменой МАС адресов


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

Настройки административного интерфейса WNAM позволяют установить содержимое страниц,


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

При поступлении запроса от вышестоящего провайдера или компетентных органов о сведениях


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

Установка
Вам потребуется:

1. Настроить вашу беспроводную сеть (хотспоты, контроллеры, точки доступа, NAT, DHCP)
2. Подготовить физический или виртуальный сервер для WNAM
3. Установить операционную систему и провести базовые настройки (локальные
пользователи, IP-адреса, маршрутизация, межсетевой экран).
4. Установить и настроить mongodb, tomcat, java, возможно nginx
5. Установить и настроить freeradius
6. Скачать и установить WNAM
7. Провести редактирование базовых параметров в файле конфигурации /etc/wnam.properties
8. Перезапустить freeradius и tomcat
9. Через веб-интерфейс настроить WNAM (лицензионный ключ, сервера доступа, площадки,
страницы в конструкторе)
10. При необходимости, установить дополнительные средства мониторинга на этот сервер
Подготовка сервера
Для работы WNAM требуется операционная система Linux, в версии x64 (т.е. 64-битная). Вниман
ие! Работа 32-битные систем не поддерживается (требование нормальной работы MongoDB).

Работа WNAM под Windows не возможна из-за необходимости тесного взаимодействия с


FreeRADIUS, который под Windows не существует. Также не поддерживается совместная работа
с Microsoft NPS, Cisco ACS и ISE и другими сторонними RADIUS-серверами. Вы не можете
использовать FreeRADIUS, который настраивается совместно с WNAM, для каких-то иных целей.

Работа WNAM под FreeBSD и аналогичные ОС, равно как под управлением 32-битных версий
Linux, не тестировалась и не поддерживается компанией "Нетамс".

Рекомендуется использовать последнюю версию дистрибутива Debian GNU/Linux x64 (на


текущий момент "9.2 Stretch"). Следующие далее инструкции ориентированы на установку для
указанного типа ОС. Установка под CentOS, RedHat, Ubuntu и пр. также возможна, но решить
вероятные проблемы с зависимостями пакетов, стартап-скриптами, путями установки и другими
несоответствиями вы должны будете самостоятельно. Выбирайте тот дистрибутив системы
Линукс, с которым у вас больше опыта.

Сервер должен содержать достаточное количество оперативной памяти (от 2 до 16 Гб),


процессоров (от 2 до 16 ядер), дискового пространства (от 200 до 2000 Гб). При установке
рекомендуется выделить базу данных на отдельном разделе, желательно на дисках типа SSD.
Графическая оболочка (KDE, Gnome и т.п.) не требуется.

При настройке достаточно установить базовый (минимальный) набор утилит, включая сервер
SSH и межсетевой экран iptables. Установка дополнительных компонентов, требующихся для
работы WNAM, описана в следующем разделе. При установке выберите язык системы (locale по
умолчанию) "ru_RU.UTF-8".

Не устанавливайте веб-сервер apache, а также сервер MySQL (если он явным образом не


требуется для других задач, например для работы Zabbix).

После установки операционной системы настройте межсетевой экран, разрешив доступ к


серверу по TCP портам 22, 80, желательно только с доверенных удалённых сетей. Доступ по
порту 80 должен быть открыт из сети, где находятся ваши абоненты. Если вы используете
внешние сервера доступа (маршрутизаторы), вы должны открыть доступ по протоколам RADIUS
(UDP 1812 и 1813). Список требуемых портов описан здесь.

Установка необходимого программного обеспечения на сервере


Сервер приложений Tomcat, база данных MongoDB и среда Java JDK

Современные версии Debian штатно предоставляют пакет MongoDB версии 3.2 и выше, таким
образом установка базы данных из отдельного репозитория не требуется.

Подготовка сервера:
apt-get update
apt-get upgrade

Установка пакетов:
apt-get install mongodb tomcat8 openjdk-8-jdk

Настраивать mongodb не надо, кроме случая подготовки отказоустойчивого кластера и задачи


разграничения доступа для нескольких пользователей/приложений.

После установки java8 убедитесь, что версия java7 (если она была установлена ранее, например
вместе с дистрибутивом операционной системы) не используется. Проверка:
java -version

Ели у вас установлена версия 7, её надо удалить. К сожалению, штатный способ смены версии
JDK утилитой update-java-alternatives не срабатывает (tomcat применяет собственный метод
поиска java), поэтому рекомендуется провести замену вручную:
cd /usr/lib/jvm/
rm default-java
ln -s java-8-openjdk-amd64 default-java

затем проверьте:
ls -la /usr/lib/jvm/
24
drwxr-xr-x 4 root root 4096 30 23:43 .
drwxr-xr-x 58 root root 4096 2 19:56 ..
lrwxrwxrwx 1 root root 20 25 15:17 default-java -> java-8-openjdk-amd64
lrwxrwxrwx 1 root root 20 20 2015 java-1.7.0-openjdk-amd64 -> java-7-openjdk-amd64
-rw-r--r-- 1 root root 2439 31 21:33 .java-1.7.0-openjdk-amd64.jinfo
lrwxrwxrwx 1 root root 20 8 12:32 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64
-rw-r--r-- 1 root root 2600 8 12:32 .java-1.8.0-openjdk-amd64.jinfo
drwxr-xr-x 5 root root 4096 25 15:15 java-7-openjdk-amd64
drwxr-xr-x 7 root root 4096 25 15:16 java-8-openjdk-amd64
java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-8u102-b14.1-1~bpo8+1-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)

Настройка tomcat сводится к установке паролей, параметров сервиса, портов доступа.

Веб-сервер и сервер приложений tomcat будет принимать входящие соединения на TCP-порту


8080 (порт по умолчанию для tomcat), либо 80 (требуется настройка). Вы можете оставить порт
8080, тогда либо требовать от пользователей подключения к этому порту, либо настроить
обратное проксирование средствами nginx. В таком случае измените область видимости сервера:

В файле /etc/tomcat8/server.xml укажите <Connector address="127.0.0.1" port="8080"


protocol="HTTP/1.1" />

Вы можете перенести публикацию сервера tomcat на порт 80. Для этого:

В файле /etc/tomcat8/server.xml укажите <Connector port="80" protocol="HTTP/1.1"


connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />

В файле /etc/default/tomcat8 разрешите привязку к


порту 80, раскомментировав и исправив параметр AU
THBIND=yes
Разрешите процессу tomcat занимать
привилегированный порт 80:
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80

Необходимо также выделить серверу tomcat больше оперативной памяти через настройки в
файле /etc/default/tomcat8. Рекомендуется указывать в ключе -Xmx половину от физической
памяти сервера:

JAVA_OPTS="-Djava.awt.headless=true -Xmx2048m -XX:MaxPermSize=256m


-XX:+UseConcMarkSweepGC"

После проведения указанных настроек можно перезапустить сервис tomcat командой /etc/init.d/
tomcat8 restart

Убедиться в корректности запуска tomcat можно командами netstat -na | grep 80 и просмотром
лог-файла /var/lib/tomcat8/logs/catalina.out

Сервер FreeRADIUS

(Для работы WNAM в режиме поддержки маршрутизатора на основе сервера Linux с


iptables/ipset, поддержки контроллеров UniFi и TP-LINK EAP использование FreeRADIUS не
требуется).

Установка:
apt-get install freeradius

Внимание! У FreeRADIUS версий 2.х. и 3.х немного разные пути для установки файлов
конфигурации, и синтаксис файлов конфигурации. В большинстве современных дистрибутивов
устанавливается версия 3.

Помните, что в некоторых дистрибутивах FreeRADIUS устанавливается в каталог /etc/raddb/, но


в большинстве - /etc/freeradius/

Настройка заключается во включении работы Perl-модулей, модификации файлов в каталоге /et


c/freeradius/sites-enabled/, установке модуля wnam-freeradius-bridge.pl в каталог /etc/freeradius.
Для этого необходимо взять файлы, расположенные по адресу http://www.netams.com/files/wna
m/misc/ в папках freeradius2 и freeradius3 соответственно, и переместить их:

Файл Каталог, где он должен Что необходимо


оказаться отредактировать
wnam-freeradius-bridge.pl /etc/freeradius ничего (этот скрипт служит
для связи FreeRADIUS и
WNAM)
clients.conf /etc/freeradius подсети (или IP-адреса)
ваших RADIUS-клиентов
(серверов доступа), а также
ключ (пароль), который вы
также должны указать на
контроллере в настройках
параметров внешнего
RADIUS-сервера
default /etc/freeradius/sites-available ничего (этот файл
конфигурации определяет
использование механизмов
авторизации и аккаунтинга с
вызовом WNAM для обработки
запросов))
perl /etc/freeradius/modules ничего (этот файл
конфигурации определяет
использование perl-модуля
wnam-freeradius-bridge.pl)
wnam.properties /etc редко изменяющиеся
параметры, подробнее здесь

Для версий FreeRADIUS > 3.0 возможно, что вам потребуется дополнительно:

Создать символьные ссылки /etc/freeradius/3.0/mods-enabled/perl


-> /etc/freeradius/3.0/mods-available/perl и /etc/freeradius/3.0/sites-enabled/default
-> /etc/freeradius/3.0/sites-available/default
Удалить ссылку на модуль /etc/freeradius/3.0/mods-enabled/eap и
конфиг /etc/freeradius/3.0/sites-enabled/inner-tunnel

Внимание! Если вы забыли отредактировать /etc/freeradius/clients.conf , доступа к


RADIUS-серверу со стороны хотспотов не будет, и авторизация не заработает.

После настройки файлов перезапустите сервис freeradius. Также полезно помнить, что в целях
отладки можно запускать freeradius с ключом -X

Настройка веб-сервера nginx

Если вы готовы оставить портал авторизации на порту 8080 (не рекомендуется), или решили
переместить работу tomcat8 на порт 80, то настраивать отдельный проксирующий веб-сервер не
требуется. В противном случае установите nginx:
apt-get install nginx

Конфигурационный файл nginx (/etc/nginx/sites-available/wnam , ссылка на него


из /etc/nginx/sites-enabled/) приведен ниже:
server {
listen 80;
access_log /var/log/nginx/access.log;
# wnam - tomcat8, 8080
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 120;
proxy_connect_timeout 120;
}
# zabbix , zabbix , !
upstream backend {
server 127.0.0.1:9000;
}
location /zabbix {
index index.php index.html;
try_files $uri $uri/ /zabbix/index.php?$args;
alias /usr/share/zabbix;
error_page 403 404 /zabbix/index.php;
}
location ~\.php$ {
root /usr/share;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
include fastcgi_params;
}

location ~*(?:api|conf|include)/ {
return 301 zabbix.local/index.php;
}
# }
}

Если вы имеете SSL сертификат и хотите использовать сервер WNAM так, чтобы он был доступен
абонентам по протоколу HTTPS, используйте следующую конфигурацию:
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$server_name$request_uri;
server_name wnam.provider.ru;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/wnam.provider.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wnam.provider.ru/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
root /var/www/html;
index index.html;
server_name wnam.provider.ru;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120;
proxy_connect_timeout 120;
}

Затем:
cd /etc/nging/sites-enabled
ln -s ../sites-available/wnam wnam

Обязательно удалите /etc/nginx/sites-enabled/default

Библиотека генерации миниатюр конструктора страниц портала

Для WNAM версии старше 1.3.1052 необходимо установить дополнительно средство,


использующееся при формировании миниатюрного изображения предпросмотра абонентских
страниц в "Конструкторе страниц". Для этих целей применяется свободно распространяемая
библиотека phantomjs.

Скачайте и установите её:


cd /tmp/
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
apt-get install bzip2
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
mv phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
wget http://www.netams.com/files/wnam/misc/render.js
wget http://www.netams.com/files/wnam/misc/render.sh
mv render.sh render.js /usr/local/bin/
chmod +x /usr/local/bin/render.sh

Запуск команды "/usr/local/bin/render.sh" должен завершиться молча и без ошибки

Для изменения размера изображений превью файл /usr/local/bin/render.js можно


отредактировать

Добавьте следующее изменение в ваш файл /etc/wnam.properties, если вы проводите


обновление системы. Там должны быть строка:
render_script=/usr/local/bin/render.sh

Внимание! Если вы используете ОС Ubuntu, может оказаться, что страницы предпросмотра


(миниатюры) не содержат русских букв. Это вызвано тем, что дистрибутив Ubuntu зачастую
сконфигурирован некорректным способом в части поддержки шрифтов. Вероятно вам предстоит
выполнить следующие команды:
ln -s /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 /usr/lib/phantomjs/libfontconfig.so.1
ln -s /usr/share/fonts/truetype/dejavu/ /usr/lib/x86_64-linux-gnu/fonts
Установка WNAM
Установка WNAM (версии >1.3)

Дистрибутив WNAM можно получить по ссылке www.netams.com/cgi/download.cgi, имея


действующий лицензионный ключ. Он поступит в виде файла ROOT.war

Для версий 1.2 дистрибутив имел имя wnam.war, его после загрузки необходимо переименовать
в ROOT.war

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


дистрибутив распаковывать не требуется, это автоматически сделает сам tomcat.
rm -rf /var/lib/tomcat8/webapps/ROOT/
mv ROOT.war /var/lib/tomcat8/webapps/ROOT.war

Все начальные конфигурационные параметры находятся в файле /etc/wnam.properties (не будет


перезаписан при обновлении WNAM). Его необходимо взять из http://www.netams.com/files/wna
m/misc/ и настроить некоторые параметры согласно этой инструкции.

Запуск

После первоначальной установки и настройки вы можете перезапустить все сервисы. При


перезапуске tomcat произойдет распаковка приложения WNAM, инициализация базы данных.
/etc/init.d/mongod restart
/etc/init.d/freeradius restart
/etc/init.d/nginx restart
/etc/init.d/tomcat8 restart

Проверьте наличие соответствующих процессов в


системе, и отсутствие ошибок в log-файлах. Основной
лог-файл приложения: /var/log/tomcat8/wnam.log
Необходимо также настроить автоматический запуск всех вышеперечисленных служб
(update-rc.d), если это не случилось при установке пакетов.

При обращении к серверу через браузер (http://server/wnam/home) вы должны увидеть


приглашение административного интерфейса WNAM:
По умолчанию логин admin и пароль admin

После первого входа обязательно смените пароль.

Конфигурационный файл
Программное обеспечение WNAM полностью настраивается через административный
веб-интерфейс, за исключением небольшого числа базовых параметров, которые вы вряд ли
захотите изменить. Тем не менее, эти параметры установлены в файле wnam.properties, и
определяют:

Параметры работы с базой данных:


mongodb_host=localhost
mongodb_port=27017
mongodb_user=
mongodb_password=
mongodb_path= ( , . WNAM % .)

(manager) Tomcat, WNAM :


admin_user=tomcat8
admin_password=tomcat8

Параметры доступа к RADIUS-серверу с целью периодический проверки времени его отклика.


Обычно это тот же самый сервер, где работает WNAM:
radius_host=127.0.0.1
radius_secret=secret

При использовании WNAM в конфигурации Linux-маршрутизатора, когда RADIUS не требуется,


укажите параметр radius_host=disabled

Пароль для взаимодействия с агентом уведомления о DHCP-событиях:


password=password

Рекомендуется ограничить доступ к административному интерфейсу и статистике WNAM путём


указания разрешенных хостов и сетей, откуда такой доступ позволен (список через запятую,
подсеть указывается с маской в виде "/" - число единичных бит в маске):
allowed_subnets=192.168.100.0/24, 188.224.13.78, 195.208.224.0/22
Параметры взаимодействия с порталом перехвата, организованном на том же сервере Linux
(путь до скрипта управления, тайм-аут сессии):
linuxcp_leasescheck_script=/usr/local/bin/wnam-leases.pl
linuxcp_session_timeout=1200

Этот параметр включает учёт трафика (счётчики байт в сессиях) на основе статистики NetFlow,
которую вы должны собирать на том же Linux-сервере:
is_netflow_acct=true

Параметры кэширования данных

Для решения проблем с "зависшими" сессиями абонентов (например, для случая перезагрузки
сервера доступа) устанавливается абсолютный тайм-аут сессии, равный по умолчанию 6 часам
(21600 сек.). Его можно настроить через следующий параметр:
session_max_lifetime=21600

Время жизни закэшированной записи о выделении IP-адреса сервером DHCP (сек.)


dhcp_cache_timeout=43200

Время жизни закэшированной записи о созданной, но не авторизованной сессии на


маршрутизаторе Cisco ISG (сек.)
isg_cache_timeout=43200

Время жизни закэшированной записи о созданной, но не авторизованной сессии в


пользовательском разделе портала WNAM (/cp/...) (сек.)
connection_cache_timeout=300

Максимальный интервал времени между попыткой инициированного абонентом входа в сеть


(веб-логина) и соответствующего RADIUS Auth запроса от сервера доступа (сек.). Если RADIUS
Auth поступает позже этого момента (определенного в параметре lastUsed записи об абоненте),
WNAM считает поступивший запрос попыткой МАС-авторизации, и применяет соответствующие
правила обработки.
mac_auth_interval=60

Параметры взаимодействия с системой отправки СМС, локально утилитой gammu (указывается


путь до исполняемого файла), или до шлюза kannel (настройки smsbox):
gammu_path=
kannel_host=127.0.0.1
kannel_port=13003
kannel_user=wnam_user
kannel_password=wnam_pass

Параметры почтового сервера (для отправки уведомления о завершении рекламных кампаний):


smtp_server=localhost
smtp_port=25
smtp_user=
smtp_password=
email_from=admin@localhost

Названия для отображения в личном кабинете владельца площадки:


owning_company=\\u041E\\u041E\\u041E
"\\u041D\\u0435\\u0442\\u0430\\u043C\\u0441-\\u043E\\u0431\\u043B\\u0430\\u043A\\u043E"
owning_company_url=http://cloud.wnam.ru
owning_logo=wnam_logo_owner.png

Путь до скрипта, занимающегося генерацией миниатюрных изображений предпросмотра из


конструктора страниц:
render_script=/usr/local/bin/render.sh

Вы можете получить оригинальный файл wnam.properties из набора дополнительных файлов на


сервере http://www.netams.com/files/wnam/misc/, либо взяв дистрибутивный файл после
установки WNAM из каталога /var/lib/tomcat8/webapp/ROOT/classes/

После внесения изменений сохраните файл wnam.properties в каталог /etc/ на вашем сервере.

Настройки в файле /etc/wnam.properties имеют бóльший приоритет, чем в /var/lib/tomcat8/webap


p/ROOT/classes/wnam.properties, таким образом они сохранятся при обновлении дистрибутива
WNAM.

Изменения в файле требуют перезапуска приложения WNAM (через рестарт сервера tomcat,
/etc/init.d/tomcat8 restart)

Остальные настройки WNAM производятся через веб-интерфейс http://server/wnam/home с


логином и паролем по умолчанию admin (пароль вы, конечно же, уже сменили).

Дополнительные инструменты на сервере


Установка и настройка Zabbix

Мы рекомендуем настроить этот продукт для мониторинга состояния вашего сервера и сети. Его
установка не является обязательной для работы WNAM.

wget http://repo.zabbix.com/zabbix/2.4/debian/pool/main/z/zabbix-release/zabbix-release_2.4-
1+wheezy_all.deb

dpkg -i zabbix-release_2.4-1+wheezy_all.deb

apt-get update

apt-get install nginx mysql-server php5-fpm zabbix-server-mysql zabbix-agent php5-mysql


php5-cli zabbix-frontend-php

не забудьте задать пароль mysql прользователя root

Вот пример настройки его для работы с веб-сервером nginx; этот вебсервер вы также будете
использовать для предоставления внешнего доступа к WNAM, Tomat manager, Unifi:

http://unixzen.ru/setup-zabbixnginxmysqlphp-fpmdebian7/

Не лишним будет настройка аппаратных сенсоров


(температуры сервера, состояния программного
RAID):
https://www.zabbix.com/documentation/2.4/manual/appendix/items/sensor

apt-get install lm-sensors


sensors-detect
/etc/init.d/kmod start

sensors -u

UserParameter=custom.softraid.status,egrep -c "\[.*_.*\]" /proc/mdstat

Контроллер беспроводных точек UniFi

Его также можно установить на сервере, если вы используете точки доступа UniFi для создания
своей WiFi сети:
http://wiki.ubnt.com/UniFi#Debian_.28Squeeze.29
echo "deb http://www.ubnt.com/downloads/unifi/distros/deb/squeeze squeeze ubiquiti" >>
/etc/apt/sources.list.d/20ubiquiti.list
apt-key adv --keyserver keyserver.ubuntu.com --recv C0A52C50
apt-get update
apt-get install unifi-rapid

Базовая настройка (быстрый старт)


1. Запуск

При первом запуске WNAM автоматически создаётся пустая база данных с именем "wnam_db" в
работающем на сервере экземпляре СУБД MongoDB.

В лог-файле /var/log/tomcat8/wnam.log должно появиться что-то вроде:


17:49:26.435 DEBUG [c.n.w.s.s.UserAuthenticationProvider:55] - UserAuthenticationProvider init
at 15.09.2016 17:49:26
17:49:26.786 DEBUG [c.n.wnam.manager.AdvBlockPageManager:85] - created page from template:
advertisment
17:49:27.008 DEBUG [com.netams.wnam.services.OuiService:30] - OuiService start
17:49:27.437 DEBUG [com.netams.wnam.services.OuiService:70] - OUI cache load: 429 ms.,
size=22145
17:49:27.559 DEBUG [com.netams.wnam.services.SmsService:71] - gammu_path=
17:49:27.563 INFO [com.netams.wnam.services.SmsService:203] - SmsService started
17:49:27.576 INFO [c.n.wnam.services.LinuxCPService:103] - LinuxCPService started
17:49:27.618 DEBUG [c.n.wnam.services.StatisticService:215] - Log file:
/var/lib/tomcat8/logs/wnam.log
17:49:27.621 DEBUG [c.n.wnam.services.StatisticService:121] - StatisticService start
17:49:27.622 DEBUG [c.n.wnam.services.StatisticService:125] - Session maximum life time is
21600 hours
17:49:27.688 DEBUG [c.netams.wnam.manager.LicenseManager:148] - LicenseManager start
17:49:27.697 DEBUG [c.netams.wnam.manager.LicenseManager:173] - License key:
17:49:27.701 DEBUG [c.netams.wnam.manager.LicenseManager:296] - checkLicenseKeyOnServer key=''
17:49:28.600 INFO [c.n.w.services.AdvertisementService:60] - AdvertisementService started
17:49:28.604 INFO [c.n.wnam.services.BluesocketService:46] - BluesocketService started
17:49:28.613 INFO [c.n.w.services.ControllerApiService:124] - ControllerApiService started
17:49:28.619 INFO [c.n.wnam.services.MikrotikService:34] - MikrotikService started
17:49:28.627 DEBUG [c.n.wnam.services.NetFlowService:81] - NetFlowService start
17:49:28.650 INFO [com.netams.wnam.services.SormService:88] - SORM RADIUS targets: 1, API
enabled: false
17:49:28.650 INFO [com.netams.wnam.services.SormService:68] - SormService started
17:49:28.656 INFO [c.netams.wnam.services.UnifiService:68] - UnifiService started
17:49:28.659 DEBUG [c.n.wnam.services.WnamApiService:63] - WnamApiService start
17:49:28.667 DEBUG [c.n.wnam.services.WnamCmdService:140] - WnamCmdService start

2. Вход в систему и смена пароля

Административный интерфейс WNAM доступен по адресу


http://имя_или_адрес_сервера/wnam/home

Если вы видите ошибку типа 404, значит приложение в tomcat у вас развернуто не правильно
(проверьте, что дистрибутив назывался ROOT.war и он был перемещён без распаковки в каталог
/var/lib/tomcat8/webapps/)

Логин и пароль по умолчанию: admin

Необходимо изменить пароль пользователя admin в меню "Конфигурация" - "Пользователи


интерфейса" -"admin":
3. Ввод лицензионного ключа

В меню "Конфигурация - Общие настройки" введите выданный вам лицензионный ключ:

Включите также "Тестовые интерфейсы СМС...", они потребуются на этапе настройки.


4. Создание записи о сервере доступа

В меню "Конфигурация" - "Сервера доступа" - "Создать сервер" создайте запись,


соответствующую типу вашего устройства (контроллер Cisco, роутер Mikrotik и т.п.). Сервер
доступа - это устройство, через который будет осуществляться выход ваших пользователей в
сеть Интернет (хотспот).

В качестве параметров указываются:

Тип устройства (из выпадающего списка)


IP-адрес устройства. Он должен совпадать с тем адресом, с которого будут отправляться
RADIUS-пакеты в сторону WNAM (параметр NAS-IP-Address). Также можно указать
публичный IP адрес сервера доступа, если он находится за NAT относительно сервера
WNAM
Местоположение устройства (для идентификации в отчётах)
Комментарии - произвольное поле
Параметры доступа (логин и пароль) к устройству (для MikroTik, Bluesocket, Cisco, UniFi,
TP-LINK). С их помощью WNAM обращается к устройству для просмотра таблицы DHCP и
определения "пользовательского" имени, передаваемого абонентом при запросе IP адреса
(например, "Вася-ПК" или "iPhone5Maxim"). Для работы этой функции необходимо также
отметить чекбокс "определять имена абонентов".
Чекбокс "Использовать счетчики аккаунтинга" предполагает получение от сервера доступа
(через RADIUS) информации о трафике сессий абонентов
Чекбокс "Принимать детализацию потоков NetFlow" разрешает использовать поступающие
с IP-адреса сервера доступа данные о трафике NetFlow

5. Создание записи о площадке оказания услуги

Создайте запись о первой площадке в разделе "Конфигурация" - "Площадки" - "Создать


площадку". Площадка определяет географический адрес (место) оказания услуги Wi-Fi. Все
детальные настройки авторизации, перенаправления, рекламы, ограничений, а также все
отчеты делаются относительно объекта типа "площадка".
Номер площадки является ключом в базе данных и не изменяем после присвоения. Стандартным
типом площадки является "Площадка" (если не используется группировка площадок).

Укажите адрес, контактное лицо, произвольный комментарий в качестве параметров.

Важнейшим параметром площадки является диапазон IP-адресов (подсеть), которые будут


присваиваться беспроводным абонентам. рекомендуется сделать так, чтобы на разных
площадках были разные, не пересекающиеся адреса. Формат адреса задается в виде
"подсеть/длина_маски", например 192.168.20.0/22 эквивалентно network 192.168.20.0 netmask
255.255.252.0. Если между сервером WNAM и площадкой применяется трансляция адресов
(NAT), потребуется также указать публичный IP-адрес, используемый при трансляции, через
запятую.

Поле "Тэг" применяется при работе механизма взаимодействия c СОРМ

"Разрешенный сервер доступа" и "Дополнительный ID" требуется указывать при настройке


площадок типа UniFi и TP-LINK.

6. Настройка параметров авторизации и перенаправления

Для базовой настройки необходимо в меню "Конфигурация - авторизация" выбрать "без


авторизации", а в меню "Конфигурация - Перенаправление" выбрать или "Отправлять по
запрошенной пользователем ссылке", или "Отправлять по ссылке:" и указать ссылку в виде
http://вашсайт.ru

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

7. Настройка сервера доступа (контроллера Wi-Fi или маршрутизатора)

Это необходимо сделать, пользуясь инструкциями к различным серверам доступа.

8. Настройка RADIUS-сервера FreeRADIUS на сервере WNAM

При использовании серверов доступа, кроме Linux, UniFi, TP-LINK вам потребуется настроить
RADIUS-сервер FreeRADIUS на сервере WNAM
Необходимо настроить файл с IP-адресами и паролями RADIUS-клиентов (маршрутизаторов
Mikrotik, беспроводных контроллеров и т.п.) - /etc/freeradius/clients.conf, параметры работы (/etc
/freeradius/sites-enabled/default), параметры работы Perl-модуля, установить скрипт-связку /etc/f
reeradius/wnam-freeradius-bridge.pl. Образцы конфигурационных файлов и скриптов находится
здесь: http://www.netams.com/files/wnam/misc/

Запустите freeradius в отладочном режиме:

service freeradius stop или /etc/init.d/freeradius stop

freeradius -X

Наблюдайте за процессом авторизации. При последующем использовании запускайте freeradius


в обычном режиме через стартап-скрипт, поставляемый вместе с его дистрибутивом для вашей
ОС.

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


перейти браузером по какой-нибудь http-ссылке. Поскольку авторизация и перенаправление
отключены, то должно произойти быстрое открытие требуемой страницы, а в интерфейсе WNAM
появятся соответствующие записи о пользователе Wi-Fi сети, и о его текущей сессии доступа.

Теперь вам необходимо будет:

отредактировать внешний вид (дизайн) шаблонов страниц, пользуясь конструктором


настроить параметры авторизации (метод, СМС-шлюз), указать шаблон страницы
настроить параметры перенаправления (указать шаблон страницы)
настроить параметры ограничений (например, длительность единичной сессии)
изучить административный интерфейс WNAM и попробовать запустить отчёты разных
типов
перезапустить FreeRADIUS в нормальном режиме (сервиса, с работой в фоновом режиме)
настроить резервное копирование и мониторинг сервера WNAM

Настройка устройств доступа


Для работы WNAM требуется средство, обеспечивающее перехват HTTP/HTTPS сессии
подключившегося к Wi-Fi пользователя, и перенаправления её на сервер WNAM. Такое средство
- так называемый хотспот, портал перехвата, встроено в большинство профессиональных WiFi
контроллеров, в маршрутизатор Mikrotik, в маршрутизатор pfSense, или его можно реализовать
средствами Linux-маршрутизатора.

В данном разделе находится описание настроек, которые необходимо выполнить на устройствах


доступа всех поддерживаемых типов.

Работа WNAM с точки зрения абонента WiFi одинакова независимо от применяемого вами типа
устройства доступа, за некоторыми незначительными различиями:
Фу Cis Blu Zy Ru Mik Cis Lin pfS Ar Uni Alc HP TP- Co Ca Elt Hu
нк co eso xel ck roti co ux en ub Fi ate MS LIN ov mb ex aw
ци WL cke us k IS se a l-L M K aC iu ei
я C t G uc EA hilli m
ent P
SR

Ре + + ? + + + + + + + +
ди
ре
кт
HT
TP
S-с
есс
ии

Ли + + + + + + +
ми
т
по
ско
ро
сти

Ли + + + + + + + + + + + + +
ми
т
по
дл
ите
ль
но
сти
сес
си
и

Ли + + + +
ми
т
по
об
ъе
му
тра
фи
ка
Оп + + + + +( + + +
ре (че че
де ре ре
ле з з
ни DH DH
е CP CP
им ) )
ен
и
уст
ро
йст
ва
аб
он
ент
а

Оп + + + + + + + + + + + +
ре
де
ле
ни
е
точ
ки
до
сту
па

По вн вн вн вн + + + + вн вн вн +
ток еш еш еш еш ipt sof еш еш еш sof
и ни ни ни ни _n tflo ни ни ни tflo
тра й* й й й etfl wd й й й wd
фи * ow
ка
Ne
tFl
ow
(v5
)*
Сб + + + + +
ро
с
акт
ив
но
й
сес
си
и
аб
он
ент
а

Ис + + + + + + + + + + + + + +
по
льз
ует
ся
ли
RA
DI
US

Во + + + +
зм
ож
ен
ли
пр
оз
ра
чн
ый
пр
оп
уск
аб
он
ент
а

* начиная с версии 1.2.685 поддерживается NetFlow также версии 9

** аппаратные контроллеры Cisco WLC поддерживают NetFlow v9, однако этот протокол
используется контроллером не для детальной статистики, а для распознавания сервисов (NBAR),
т.е. бесполезен для хранения детализации. Используйте сбор статистики с внешнего
маршрутизатора, который выполняет функцию NAT.

Беспроводной контроллер Aruba


Начиная с версии 1.2.607 WNAM поддерживает взаимодействие с беспроводным контроллером
Aruba (теперь это Hewlett Packard Enterprise). Тестировался контроллер Aruba3200 с ArubaOS
6.4.2.4.

Используемые в описании настройки параметры:

IP адрес контроллера (публичный): 89.11.95.20


IP адрес контроллера (внутренний): 172.16.0.1
IP адрес сервера WNAM: 89.11.95.19
VLAN для трафика гостевой сети: 162
SSID: aruba

Переда началом настройки взаимодействия


контроллера Aruba и WNAM настройте контроллер,
точки доступа, создайте гостевую сеть (SSID без
авторизации и VLAN), убедитесь в том, что
беспроводные клиенты подключаются к сети и имеют
доступ в Интернет. Для этого используйте штатные
руководства Aruba.
При редактировании конфигурации в каждом окне,
где вы проводите изменение, нажимайте кнопку
Apply.
Первым шагом является создание подключения
контроллера к RADIUS-серверу (серверу WNAM), для
чего в меню "Configuration - Security - Authentication"
необходимо создать запись о радиус-сервере wnam_r
adius, указать ключ (по умолчанию - wnam_radius), и
установить остальные параметры, как на картинке:
В качестве NAS IP укажите внешний адрес. Его, с
соответствующим ключом, надо прописать на сервере
WNAM в конфигурационном файле
/etc/freeradius/clients.conf.
Создайте группу серверов wnam_radius_sg и
добавьте в нее запись о только что созданном
сервере:

Создайте запись о сервере типа RFC3567, вбейте


заново ключ:

На следующей вкладке "AAA Profiles" создайте профиль авторизации, wnam_aaa_profile.


В настройках профиля укажите следующие значения. Обратите внимание на начальную роль
"Initial role". Эта роль будет присвоена "неавторизованным сессиям" подключенных абонентов.
Не забудьте также про параметры Interim Accounting:

Укажите группу радиус-серверов wnam_radius_sg в двух местах в настройке этого профиля:

Теперь необходимо создать запись о портала перехвата в меню "L3 Authentication". Создайте
профиль wnam_captive_portal:
Укажите следующие параметры профиля, как на рисунке.

В качестве Login page используется внешний портал авторизации, WNAM, ссылка на который
имеет вид: http://89.11.95.19/cp/aruba

То же самое необходимо указать в Welcome page (но не используется). Для пропуска


клиентского трафика до сервера авторизации укажите белый список (White list) wnam_destinatio
n.

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


промежуточной статистики (Interim stats). Укажите IP адрес сервера доступа, который будет
фигурировать в RADIUS-пакетах как NAS-IP-Address. Этот адрес вам надо будет указать как
адрес сервера доступа в WNAM (172.16.0.1):
Необходимо настроить списки доступа и другие разрешающие правила в меню "Configuration -
Security - Access control". Измените правила политики guest-logon:

Укажите применяющийся портал перехвата wnam_captive_portal:

Отредактируйте политику wnam_captive_portal_list_operations:

Создайте политику wnam_access:


Создайте в политике wnam_access правило, разрешающее HTTP трафик до сервера WNAM:

Теперь следует настроить использование портала перехвата в беспроводной сети. Профиль сети
- guestnet:

Необходимо в разделе ААА выбрать профиль wnam_aaa_profile:


На этом настройка контроллера Aruba завершена.

На стороне WNAM необходимо создать сервер доступа типа Aruba, указать IP-адрес,
соответствующий NAS-IP-Address в RADIUS-пакетах от контроллера. Обратите внимание -
контроллер Aruba не поддерживает определение имени абонентского устройства (через разбор
DHCP-пакетов), а также экспорт статистики NetFlow.

Для примера также приведен текстовый конфигурационный файл:


ip access-list standard wnam_whitelist
permit host 89.11.95.19
netdestination wnam_destination
host 89.11.95.19
ip access-list session wnam_access
user host 89.11.95.19 svc-http permit
user-role guest-logon
captive-portal "wnam_captive_portal"
access-list session ra-guard
access-list session logon-control
access-list session captiveportal
access-list session v6-logon-control
access-list session captiveportal6
user-role guest
access-list session global-sacl
access-list session apprf-guest-sacl
access-list session ra-guard
access-list session http-acl
access-list session https-acl
access-list session dhcp-acl
access-list session icmp-acl
access-list session dns-acl
access-list session v6-http-acl
access-list session v6-https-acl
access-list session v6-dhcp-acl
access-list session v6-icmp-acl
access-list session v6-dns-acl
access-list session wnam_access
aaa rfc-3576-server "89.11.95.19"
key XXX
aaa authentication mac "wnam_mac_authprofile"
delimiter colon
case upper
aaa authentication-server radius "wnam_radius"
host "89.11.95.19"
key XXX
nas-identifier "Aruba"
nas-ip 89.11.95.20
mac-delimiter colon
called-station-id type macaddr include-ssid enable delimiter colon
aaa server-group "wnam_radius_sg"
auth-server wnam_radius
aaa profile "wnam_aaa_profile"
initial-role "guest-logon"
mac-server-group "wnam_radius_sg"
radius-accounting "wnam_radius_sg"
radius-interim-accounting
rfc-3576-server "89.11.95.19"
aaa authentication captive-portal "wnam_captive_portal"
server-group "wnam_radius_sg"
guest-logon
no logout-popup-window
protocol-http
login-page "http://89.11.95.19/cp/aruba"
welcome-page "http://89.11.95.19/cp/aruba?welcome"
no enable-welcome-page
switchip-in-redirection-url
user-vlan-in-redirection-url
ip-addr-in-redirection-url "89.11.95.20"
white-list "wnam_destination"
apple-cna-bypass
wlan virtual-ap "guestnet"
aaa-profile "wnam_aaa_profile"
ssid-profile "cittel-aruba"
vlan 162
band-steering
broadcast-filter all
deny-inter-user-traffic
dos-prevention
wmm-traffic-management-profile "wnm"
!
ap-group "guestnet"
virtual-ap "guestnet"

Также вашему вниманию предлагается альтернативное описание настройки контроллера.

Дополнительные сведения о настройке контроллера Aruba

Ниже приведена пошаговая инструкция настройки контроллера версии 7210 и WNAM 1.3

1 заходим в список групп для создания новой группы:

2 задаем свое имя группы:


3 создание серверной группы:

4 создание радиус сервера:


5 настройка радиус сервера:

6 привязка радиус серевера к серверной группе:


7 ключ доступа к радиусу WNAM:

8 создание rfc сервера:


9 создание aaa профиля:

10 редактирование aaa профиля:


11 aaa, выбрать группу для мак аутентификации:

12 aaa, выбрать группу для аккаунтинга:

13 aaa, RFC 3576 IP и пароль WNAM сервера:


14 добавление IP wnam в белый лист:
15 L3 создание captive portal:
16 L3 настройка captive portal:

17 создание wnam роли для aaa профиля:


18 wnam_role со всеми policy:

19 wnam policy:

20 captive portal policy:


21 logon-control policy:

22 гостевая роль guest со всеми policy:

23 wnam_access guest policy:

24 IP Radius client:
25 добавлям группу для конфигурации точек доступа:

26 создаем виртуальную точку доступа с нужным нам созданым ранее профилем wnam_auth:
Беспроводной контроллер Bluesocket
Перед настройкой контроллера Bluescoket vWLC на взаимодействие с WNAM необходимо
настроить его согласно штатной документации для работы с точками доступа и сетью без
авторизации. Только после этого необходимо изменить конфигурацию контроллера и сети таким
образом, чтобы действовало взаимодействие в WNAM.

Создайте запись о сервере WNAM, по IP-адресу:

Создайте место (Location), где будет предоставляться услуга. Как и площадка в WNAM,
характеризуется IP-подсетью.
Создайте или отредактируйте гостевую роль типа Un-registered (не авторизованной гость), с
разрешением трафика до сервера WNAM:

Для гостевой авторизованной роли Guest установите место предоставления услуги и иные
ограничения:
Создайте запись о RADIUS-accounting сервере. Это тот же сервер WNAM, порт 1813
Создайте запись о RADIUS-auth сервере. Это тот же сервер WNAM, порт 1812:

необходимо выбрать Accounting-сервер, созданный на предыдущем шаге. Укажите также роль.

Создайте форму, которая будет представлена неавторизованному гостю на шаге NAC:

Задайте имя формы, укажите ссылку на внешний портал авторизации WNAM вида http://server_i
p/cp/bluesocket
Укажите все остальные параметры в неизменном виде. Номер формы должен соответствовать
настроенному в WNAM номеру площадки.

Для гостевой беспроводной сети (SSID) укажите тип сети и использование формы и гостевой
неавторизованной роли.

В настройках WNAM создайте сервер доступа с IP-адресом контроллера Bluesocket, и


параметрами пользователя для отправки команд на авторизацию абонента.

На сервер WNAM также необходимо установить утилиту curl (в каталог /usr/bin)

Беспроводной контроллер Cisco


Беспроводной контроллер Cisco (Cisco vWLC, CT2500, CT5500, WISM2) предназначен для
управления точками доступа и построения сложных беспроводных сетей. Несмотря на то, что
точки доступа и контроллеры Cisco стоят дорого, они обеспечивают превосходную
управляемость, богатый функционал, производительность, расширенные средства мониторинга
и являются одним из лучших решений для построения масштабных беспроводных сетей связи.

Вся работа WNAM совместно с беспроводной сетью Cisco сводится к взаимодействию с


контроллером. Специальным образом точки настраивать не нужно.

Предварительно необходимо настроить и протестировать саму беспроводную сеть, что


достаточно детально описано на сайте производителя или в серии статей здесь. После того, как
для пользователей выбранной радио-сети (SSID, WLAN) будет устойчиво работать доступ в
Интернет - подключение, получение IP-адреса, авторизация, маршрутизация, NAT, можно
приступать к интеграции контроллера с WNAM.

Доступны следующие режимы работы:

CWA, он же Central Web Auth - для версии WNAM 1.4.1391 - позволяет обойтись без
редиректов на устройстве абонента - рекомендован!
Web Auth - для версий WNAM 1.3 - традиционный с перенаправлением на специальный
"виртуальный" адрес контроллера

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

Работа с контроллером Cisco позволяет обеспечить предоставления платного доступа к сети


Wi-Fi.
Режим CWA

Начиная с версии 1.4.1391 WNAM поддерживает работу с контроллером по новому механизму


авторизации.

Этот способ разработан Cisco для взаимодействия контроллера с программным обеспечением


Cisco ISE, однако WNAM полностью эмулирует поведение ISE в данной задаче. Документация по
настройке контроллера и ISE доступна на сайте производителя.

Традиционный способ веб-авторизации на контроллере Cisco построен на основе:

перехвата трафика новой веб-сессии контроллером и перенаправления пользователя на


заданную на контроллере ссылку
авторизации на внешней системе (WNAM)
перенаправления пользователя обратно на контроллер, на его виртуальный интерфейс
авторизации пользователя контроллером на RADIUS-сервере и перенаправления
пользователя в интернет

Этот механизм с точки зрения пользователя представляет собой цепочку редиректов, что
отрицательно сказывается на его восприятии сервиса. Этот метод также требует точной
настройки DNS, SSL-сертификата. Иногда даже корректно авторизованный абонент
перенаправляется на URL контроллера http://1.1.1.1/ и сессия на этом застревает.

Для того, чтобы исключить эти дополнительные редиректы, новый метод CWA основан на
следующем:

при подключении устройства абонента к сети контроллером проводится RADIUS-запрос к


серверу политики (WNAM) с целью получить ACL и URL перенаправления
проводится перехват трафика новой веб-сессии и перенаправление пользователя на
полученную ссылку (без редиректа на контроллер)
осуществляется авторизация на внешней системе (WNAM)
по завершении авторизации WNAM сообщает контроллеру по протоколу RADIUS CoA о
необходимости реавторизации сессии пользователя
производится повторная авторизация пользователя контроллером на RADIUS-сервере и
применение полученной политики "пропуска"
WNAM осуществляет перенаправление пользователя на заданную ссылку

При этом с точки зрения пользователя нет дополнительных редиректов, и ассоциированных с


этим проблем.

Для настройки CWA необходимо вначале настроить SSID, точки доступа, маршрутизацию, DHCP
и протестировать обычный доступ в интернет без авторизации.

В приведенных ниже примерах используются следующие адреса:

172.16.130.13 - RADIUS-сервер WNAM


172.16.130.5 порт 8080 - административный и абонентский интерфейс WNAM
10.208.144.213 - контроллер Cisco vWLC с ПО версии 8.0.140.0
10.208.148.0/24 - сеть для устройств беспроводных абонентов
SSID - tmp

В вашем случае сервер WNAM может использовать один адрес, т.е. оба компонента (веб-часть и
RADIUS-сервер) размещены на одном сервере. Также IP-адреса, указанные в примере, вы
должны заменить на собственные IP-адреса, соответствующие структуре вашей сети.

1. Настройка контроллера
Первым делом вы должны настроить SSID в режиме "без авторизации" и проверить, что
беспроводной абонент имеет доступ в Интернет, то есть работают радио-часть, DHCP, NAT,
маршрутизация.

Для готового и проверенного SSID настройте авторизацию. Безопасность L2 - выключена, но


включен режим mac filtering.

В режиме L3 также ничего не настроено (никаких Web Auth).

В настройках серверов ААА укажите адреса серверов авторизации и аккаунтинга (сервер


WNAM), также Interim Update (интервал времени между апдейтами счётчиков).

Во вкладке Advanced обязательно должны быть указаты три параметра:

Allow AAA Override


DHCP address assignment - Required
NAC State: RADIUA NAC (или ISE NAC)

Создайте ACL (список доступа), разрешающий доступ к серверу WNAM до авторизации.


Запомните имя ALC (в примере - wnam_cwa).

В списке правил в ACL разрешите трафки до сервера авторизации и обратно, а также


DNS-трафик. Можно сделать более тонкие (узкие) настройки ограничений.
Настройте сервер авторизации. В нашем примере это два сервера: .13 для собственно
авторизации, .5 для CoA пакетов.

В настройках сервера авторизации пропишите секретный ключ. Его надо также поместить в
/etc/freeradius/clients.conf

Создайте запись об аккаунтинг-сервере


Также укажите ключ для сервера аккаунтинга. Скорее всего, это тот же сервер авторизации.

На этом настройка контроллера закончена. Необходимо настроить WNAM.

2. Настройка WNAM

Создайте запись о сервере доступа типа Cisco WLC (сервер доступа - контроллер). Укажите
адрес, имя, местоположение. Логин и пароль не используются.
Во вкладке RADIUS укажите:

В параметрах "атрибуты предварительной авторизации"

cisco-avpair=url-redirect=http://имя_вашего_сервера_wnam/cp/cisco?%URL%
cisco-avpair=url-redirect-acl=wnam_cwa

При этом имя ACL должно соответствовать тому имени, что вы создали на контроллере. Параметр
%URL% будет заменен системой WNAM при формировании ответа контроллеру.

Также укажите секретный RADIUS ключ (как вы указали на контроллере) для работы CoA.
настройке запись о площадке оказания услуги. Обязательно выберите сервер доступа
(контроллер) из списка.
На этом и настройка WNAM закончена.

3. Тестирование

Проведите попытку авторизации в Wi-Fi сети. После завершения авторизации и появления


долступа в интернет в интерфейсе WNAM появится запись о новой сессии вида:
Режим Web Auth

Настройка совместной работы WNAM и беспроводного контроллера Cisco WLC сводится к:

Создании списков доступа (acl) для безусловного пропуска трафика пользователей к


серверу авторизации
Указанию ссылки редиректа сессии пользователя на страницу авторизации WNAM
Включении дополнительно авторизации (Layer 3 security) для выбранной радио-сети
Настройки взаимодействия с RADIUS-сервером для учёта сессий и трафика
авторизовавшихся пользователей
Настройки WNAM

Работа механизма веб-авторизации пользователей подробно описана на сайте производителя.

Сначала создаём список доступа с произвольным именем, в нашем случае welcome-wnam:


Затем добавляем в этот список разрешающие правила. Они должны обеспечивать трафик от
пользователей до адреса веб-сервера, на котором работает программное обеспечение WNAM. В
примере ниже IP адреса сервера WNAM - 10.20.30.36. Необходимо указать корректный TCP-порт
веб-сервера. Он зависит от того, как установлен WNAM и как запущен tomcat - на порту 80
(HTTP, как в примере ниже), или 8080. Необходимо задать два правила - от клиента к серверу, и
от сервера клиенту.

Теперь необходимо указать ссылку-редирект, куда встроенный в контроллер портал перехвата


будет направлять пользовательскую сессию для продолжения авторизации. В данном примере -
это встроенный компонент на сервере WNAM с адресом 10.20.30.36, и полная ссылка имеет вид:

http://10.20.30.36/cp/cisco

При этом не имеет значение, какой механизм дальнейшей авторизации пользовательской сессии
(прозрачный, с СМС-подтверждением, с кодом доступа и т.п.) настроен в WNAM. Ссылка на
контроллере будет одна и та же.

Вы также можете указать URL перенаправления (Redirect URL after login), однако если
соответствующий URL настроен и в WNAM, он будет иметь больший приоритет.

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

Необходимо отключить HTTPS-шифрование для веб-авторизации:

config network web-auth secureweb disable

(настройка этого через GUI доступна только для версии контроллера 7.3 и выше)

Необходимо включить поддержку обхода Apple Captive Network Assistant (CNA) для корректной
работы iOS устройств:

config network web-auth captive-bypass enable

Необходимо затем сохранить конфигурацию и перезагрузить контроллер. К сожалению, обе


указанные выше команды этого требуют.

save config

reset system
После загрузки контроллера необходимо для выбранной беспроводной сети (WLAN) включить
дополнительную авторизацию на уровне 3. Необходимо также указать созданный ранее список
доступа (Preauthentication ACL IPv4).

Внимание! Если вы настраиваете сеть с точками доступа в режиме FlexConnect и параметром


FlexConnect Local Switching, то описанный выше ACL необходимо создавать в меню "FlexConnect
Access Control Lists", и ниже указывать его в "WebAuth FlexAcl". Такой список доступа работает
не на уровне контроллера, а на уровне точки доступа.

При этом на 2 уровне вы можете оставить прозрачный (беспарольный) доступ к сети, либо
использовать авторизацию WPA/WPA2 PSK.

Для корректной работы учёта сессий необходимо убедиться, что в соседней вкладке включено
использование серверов авторизации и учёта (это RADIUS-сервера). Если в вашей сети
используется несколько RADIUS-серверов (например, для обслуживания других SSID через
WPS2 Enterprise), вы должны в этом окне явно указать сервера WNAM. Можно также включить
отправку промежуточных сведений учёта (Interim update).

Теперь создаём записи о серверах авторизации и учёта. Это будет один и тот же сервер с
адресом 10.20.30.36 (сервер WNAM), стандартные порты 1812 и 1813.

Обратите внимание на тип передаваемого идентификатора Called Station и разделитель в


MAC-адресе.

Настройки FreeRADIUS (/etc/freeradius/clients.conf) должны содержать верный IP-адрес


контроллера и такой же ключ (shared secret). Если вы хотите иметь возможность отключать
работающего абонента через административный интерфейс WNAM, укажите в поле Support for
RFC 3576 значение "Enable" (этим разрешается механизм Pacoet of Disconnect и Change of
Authority).
Настройка закончена. Не забудьте сохранить конфигурационный файл контроллера.

При настройке в административном интерфейсе WNAM сервера доступа укажите все параметры:
IP адрес, указанный в настройке, должен совпадать с параметром RADIUS-сообщений
"NAS-IP-Address", получаемых с контроллера (RADIUS-клиента). Логин и пароль нужны для
обращения к контроллеру по протоколу telnet для получения перечня точек доступа (не
обязательно). Порт и ключ (RADIUS-ключ) нужны для принудительного отключения активных
абонентов.

Дополнительная настройка для безусловного пропуска известных абонентов

В случае, если вам требуется уже известных вашей системе абонентов (тех, кто ранее прошел
идентификацию через СМС/звонок/ваучер/Госуслуги) беспроводный контроллер пускал в сеть
автоматически и без всплывающих окон, рекламы и других действий со стороны пользователя,
необходимо сделать следующее:

Сменить пароль взаимодействия между FreeRADIUS и контроллером по протоколам RADIUS


Auth и Acct на "password" (либо другой пароль, прописанный в wnam-freeradius-bridge.pl и
wnam.properties). Пароль меняется, соответственно, в файле /etc/freeradius/clients.conf и в
разделе Security-AAA-RADIUS-Authentication и затем Accounting.
Изменить параметры MAC-авторизации на контроллере в разделе Security-MAC Filtering:
Добавить параметр "MAC Filtering" в L2 настройке профиля Wi-Fi сети:

Изменить параметр "Layer 3 Security" на "On MAC Filter failure" в L3 настройке профиля
Wi-Fi сети:
Перевести запись о пользователе, которому разрешен такой доступ, в категорию VIP (не
забыть нажать "сохранить"):

Указанные изменения приводят к следующему


сценарию.
При подключении абонента к Wi-Fi сети контроллер
Cisco WLC прежде, чем организовать его
перенаправление на сервер WNAM и даже прежде,
чем выдать IP-адрес, проводит предварительную
проверку по МАС-адресу на сервере WNAM через
RADIUS:
rad_recv: Access-Request packet from host 10.208.144.213 port 32769, id=63, length=168
User-Name = "5c:57:ca:3c:0f:4c"
Called-Station-Id = "00:21:55:4e:15:d0:tmp"
Calling-Station-Id = "5c:57:ca:3c:0f:4c"
NAS-Port = 1
NAS-IP-Address = 10.208.144.213
NAS-Identifier = "tmp-wlan"
Airespace-Wlan-Id = 2
User-Password = "password"
Service-Type = Call-Check
Framed-MTU = 1300
NAS-Port-Type = Wireless-802.11
Tunnel-Type:0 = VLAN
Tunnel-Medium-Type:0 = IEEE-802
Tunnel-Private-Group-Id:0 = "406"

На такой запрос WNAM отвечает OK или FAIL в зависимости от того, есть ли абонент с указанным
адресом в базе данных, и выполнены ли условия допуска:

Если абонент присутствует, уже проходил идентификацию, срок её действия не закончился,


статус абонента называется "VIP пользователь (без рекламы)", происходит автоматическое
создание авторизованной сессии на контроллере, допуск абонента в сеть и аккаунтинг трафика
(Acct Start). В таком случае WNAM сразу создает в своей базе запись о начавшейся сессии
абонента и начинает учитывать трафик. Абонент не должен выполнять никаких дополнительных
действий для входа в сеть.

В остальных случаях если при запросе типа "Call-Check" абонента в базе не найдено (не верный
статус, идентификация истекла) и WNAM возвращает FAIL, то контроллер переводит сессию
абонента в статус "WEBAUTH_REQD", то есть производится обычное перенаправление HTTP
сессии абонента на страницу авторизации для входа в сеть, и работает обычная механика
WNAM.

Смотрите также раздел VIP пользователи.

Поддержка legacy контроллеров


Программное обеспечение контроллера версии менее чем 7.3 при перенаправлении сессии
пользователя не передает в систему авторизации МАС-адрес устройства абонента (параметр clie
nt_mac). Поскольку идентификация и авторизация доступа всегда работает на основании
МАС-адреса абонентского устройства, использовать штатный механизм при работе снятых с
производства контроллеров 4402, 4404, 21хх, WISM не получится. Последняя доступная версия
программного обеспечения контроллера для них 7.0.252.0.

Однако WNAM (с версии 1.3.969) всё же может работать с такими контроллерами, если сервер
WNAM расположен в той же IP-сети, что и абонентские устройства, и URL перенаправления на
контроллере (/cp/cisco) указывает на интерфейс WNAM в клиентской сети. В таком случае вам
необходимо в конфигурационный файл /etc/wnam.properties добавить строку:
lan_arp=true
При этом при попытке авторизации абонентского
устройства будет произведен поиск МАС адреса,
соответствующего этому устройству, в локальной
таблице ARP сервера WNAM, и дальнейшая
авторизация пойдет как обычно.
Беспроводной контроллер Ruckus
Поддержка взаимодействия WNAM с беспроводными контроллерами Ruckus обеспечивает
управление гостевым доступом для пользователей WiFi сети, построенной на точках доступа
SmartPoint и ZoneFlex и контроллере ZoneDirector. Контроллер обеспечивает работу внешнего
портала перехвата (HotSpot 1.0) и авторизацию абонентов по протоколу RADIUS.

Шаг 1

Перед настройкой взаимодействия контроллера с WNAM необходимо настроить сам контроллер


(в примере - 192.168.0.27), точки доступа, создать гостевую WiFi сеть и протестировать её
работу без пароля и авторизации. Подробную инструкцию о том, как это сделать, можно найти н
а сайте производителя.

Шаг 2

Необходимо настроить внешний сервер авторизации и аккаунтинга - RADIUS-сервер. Это будет


один и тот же сервер (в примере - 192.168.0.129), на котором выполняется программное
обеспечение WNAM. Настройки выполняются в меню "Configure-AAA Servers". Выберите "Create
New".

Добавьте сервер авторизации "wnam-auth". Укажите тип: "RADIUS", пароль на RADIUS-сервере,


значения таймаутов.
Добавьте сервер аккаунтинга "wnam-acct". Укажите тип: "RADIUS Accounting", тот же пароль на
RADIUS-сервере, значения таймаутов.
Шаг 3.

Необходимо настроить портал перехвата (хотспот) в меню "Configure - Hotspot Services". Выбери
те "Create New".

В настройках хотспота необходимо указать его имя ("wnam"), ссылку на портал WNAM (в данном
примере - http://192.168.0.129/cp/ruckus).
Обязателен выбор серверов авторизации и аккаунтинга, созданных на предыдущем шаге.

Параметр Interim-Update отвечает за периодическую отправку статистики по трафику абонента,


рекомендуется выставлять его в 5-15 минут.

Параметр Session Timeout отвечает за принудительное завершение сессии абонента по


прошествии времени.

В поле Location ID можно указать номер площадки, которая соответствует хотспоту и настроена
в WNAM, в случае использования пересекающихся между площадками IP подсетей.

В поле Walled Garden необходимо добавить IP адрес сервера WNAM, или всю его подсеть (в
примере 192.168.0.0/24) для того, чтобы трафик пользователей (страница авторизации и
редиректа) были доступны подключившемуся абоненту до его реальной авторизации на
контроллере.

Шаг 4

Необходимо привязать использование хотспота к гостевой беспроводной сети (SSID) в меню


"Configure - WLANs".

Укажите имя сети ("wnam"), тип хотспота (WISPr), выберите метод Open и шифрование None,
укажите созданный на предыдущем шаге хотспот сервис "wnam".

На этом настройка контроллера Ruckus ZoneDirector закончена.

Шаг 5

Поскольку контроллер Ruckus на последнем этапе авторизации абонента обращается к серверу


WNAM по протоколу RADIUS, необходимо разрешить такое взаимодействие на стороне сервера.
для этого в конфигурационном файле /etc/freeradius/clients.conf необходимо прописать доступ
клиента (контроллера) к серверу:
client 192.168.0.27 {
secret=wnam_radius
}

Шаг 6

Для завершения настройки в параметрах WNAM в меню "Конфигурация - сервера доступа"


необходимо сделать запись о контроллере Ruckus ZoneDirector (правильно указав его тип),
указать IP адрес (в примере 192.168.0.27), и указать "использовать счетчики аккаунтинга".
Беспроводной контроллер TP-LINK CAP
Начиная с версии 1.4 WNAM поддерживает работу с контроллерами TP-LINK CAP (AC500, AC50) и
точек доступа серии CAP. Для их работы, в отличие от серии EAP, не нужен сервер с
программным обеспечением Wi-Fi контроллера.

Предположим, что сервер WNAM имеет адрес 172.16.130.5 (порт 8080), а связанный с ним
RADIUS-сервер FreeRADIUS 172.16.130.13. В вашем случае это может быть один адрес.

Создадим запись о RADIUS-сервере:


В поле Share key укажите секретный ключ, который вы потом впишете в конфигурационный
файл /etc/freeradius/clients.conf

Выберем тип авторизации - RADIUS, укажем один созданный только что сервер

Установите параметр устаревания авторизации (длительность сессии):


Укажите правила, разрешающие доступ к серверу WNAM до авторизации:

Выберите в качестве механизма авторизации "Remote Portal", укажите адрес сервера WNAM в
виде ссылки перенаправления: http://172.16.130.5:8080/cp/tplink
На этом настройка контроллера закончена.

В настройках WNAM создайте запись о сервере доступа типа "TP-Link EAP/CAP", и укажите
IP-адрес контроллера.

Беспроводной контроллер TP-LINK EAP


Начиная с версии 1.3 WNAM поддерживает взаимодействие с программным контроллером точек
доступа TP-LINK EAP и соответствующими точками доступа (модели EAP330, EAP320, EAP220, EAP
120, EAP110). В настоящий момент контроллер доступен только на платформе Windows,
следовательно вам необходимо будет создать и настроить виртуальную машину с Windows.
Поскольку использование ЕАР не требует RADIUS-сервера, возможен запуск WNAM и на сервере
Windows. Контроллер доступен для бесплатной загрузки по адресу: http://www.tp-link.com/com
mon/Spotlight/EAP_controller.html

Для настройки авторизации через WNAM и контроллер необходимо выполнить следующие шаги:

1. Настройка точки доступа и контроллера

Необходимо придерживаться инструкции производителя по установке и настройке точки


доступа, контроллера, созданию беспроводной сети (SSID), привязки её к точке, настройке
карт. Также требуется настройка маршрутизатора Интернет для обеспечения функций DHCP и
трансляции адресов NAT для клиентов беспроводной сети. Не переходите к следующему шагу,
пока не убедитесь, что клиенты сети Wi-Fi подключаются к Интернет, то есть работает DHCP,
Wi-Fi, NAT и маршрутизация. При этом на контроллере должны отображаться текущие активные
сессии абонентов.

2. Настройка контроллера

В разделе "Wireless Settings" для выбранной беспроводной сети (SSID, в примере - "TPLINK")
необходимо изменить настройки безопасности, выбрав использование портала (поставить
галочку у слова Portal):

В разделе "Wireless Control"- "Portal" необходимо настроить портальный сервер, выбрав тип
"External Portal Server" и прописав ссылку на сервер WNAM. На этот сервер будет идти
перенаправление неавторизованных сессий Wi-Fi абонентов. Формат ссылки:
http://имявашегосервера/cp/tplink

Вместо имени можно указать IP-адрес сервера WNAM. В примере сервер WNAM находится по
адресу 172.16.130.5. После имени параметр /cp/tplink является служебным, и менять его нельзя.
В разделе "Wireless Control" - "Free authentication policy" необходимо задать политику пропуска
трафика абонентов без авторизации до сервера WNAM - в данном примере разрешен доступ ко
всей сети 172.16.130.0/24, в которой находится этот сервер.

Наконец, в разделе "Wireless Control" - "Access Control" необходимо еще раз прописать
разрешенные сети:
На этом настройка контроллера завершена.

3. Настройка WNAM

Необходимо создать запись о сервере доступа типа TP-LINK EAP. Обязательно укажите IP-адрес
сервера, на котором работает контроллер (в примере он работает на том же сервере, что и
WNAM, т.е. 127.0.0.1), а также логин и пароль для доступа на контроллер (через его API):
При настройке площадки предоставления Wi-Fi необходимо, помимо диапазона IP-адресов
абонентов, выбрать контроллер и указать имя сайта, как он настроен на контроллере (по
умолчанию все точки доступа помещены на сайт Default):
4. Тестирование

Все остальные настройки необходимо сделать обычным способом - метод авторизации и


перенаправления. Ограничения действуют только на длительность сессии (контроллер не
поддерживает лимитов по скорости и по объему трафика).

В случае успешной авторизации в интерфейсе WNAM появится запись о сессии пользователя (с


МАС-адресом точки доступа), а в интерфейсе ЕАР - запись о текущей сессии:

Беспроводной контроллер Zyxel NXC


Поддержка беспроводных контроллеров Zyxel NXC появилась начиная с версии прошивки
контроллера V4.21 и версии WNAM 1.1.420

Из-за особенностей программного обеспечения Zyxel для точек доступа младших моделей
(отсутствие портала перехвата) WNAM другие устройства Zyxel не поддерживает.

Настройка RADIUS-сервера:

Настройка метода авторизации, используя протокол RADIUS:

Настройка сети и записи о хосте, где работает сервер WNAM (для доступа к нему
неавторизованных пользователей).
Настройка политик трафика. Если сервер WNAM не находится в той же подсети, что и
беспроводные клиенты, необходимо прописать правило, позволяющее трафик до WNAM без
авторизации

Настройка ограничения длительности сессии (30 минут)


Настройка портала перехвата, перенаправление на внешний сервер WNAM.

Необходимо указать путь (URL) до сервера (http://wnam_server_ip/cp/zyxel), в данном примере


WNAM работает на порту 8888.
В веб-интерфейсе WNAM при настройке сервера доступа выбрать тип сервера - Zyxel NXC,
указать IP-адрес контроллера.

Беспроводной контроллер и точки доступа Huawei


Начиная с версии 1.3.1090 WNAM поддерживает взаимодействие с точками доступа и
контроллерами Huawei.

Беспроводные системы Wi-Fi компании Huawei представлены в двух исполнениях:

точки доступа AP2050, AP5030, AP4050, AP6050, AP6010 и так далее, работающие в
режиме FAT, то есть локальном режиме с управлением непосредственно на точку доступа
те же точки доступа в режиме FIT (без возможностей непосредственной настройки) и
контроллеры точек доступа AC6005, AC6605

В обоих случаях настройка взаимодействия с WNAM одинакова и сводится к настройке


функционала "External Portal Server". При этом вы не обязаны использовать оригинальный
продукт компании Huawei, а именно Agile Controller, для целей обеспечения авторизации
доступа через внешнюю систему.

Настройка взаимодействия WNAM с контроллером или точкой выполняется таким же образом,


как и настройка любого другого сервера доступа. В меню "Конфигурация - Сервер доступа"
создайте новую запись, укажите тип сервера - Huawei, укажите IP-адрес контроллера или точки
доступа. Логин, пароль, "Определять имена абонентов" и "Принимать детализацию потоков
NetFlow" указывать не следует.

Устройства Huawei воспринимают установку ограничения на длительность сессии и скорость


трафика одного клиента (среднюю) в обе стороны.

Взаимодействие WNAM и контроллера (точки) осуществляется как по протоколу RADIUS, так и


по специализированному протоколу "портала", что требует доступа от сервера WNAM до
сервера/контроллера по порту UDP:2000 (на удаленной стороне).

Далее приведен пример настройки для точки доступа типа AP5030DN с программным
обеспечением FAT V200R006C10SPCa00.

Настройку точки доступа можно выполнить из командной строки и из графического


Web-интерфейса, однако некоторые параметры (RADIUS-взаимодействия) можно настроить
только через CLI.

Ниже приведен пример конфигурационного файла точки доступа. Указаны только значащие
параметры. В примере IP-адрес сервера WNAM: 172.16.130.5, он же является RADIUS-сервером
и доступен абонентам по порту 80.

#
authentication-profile name wnam-authentication-profile
portal-access-profile wnam-portal-access-profile
free-rule-template default_free_rule
authentication-scheme radius
accounting-scheme default
radius-server wnam_radius
#
portal captive-bypass enable
#
radius-server template wnam_radius
radius-server shared-key cipher %^%#Nl=Y8Wyh"ZWb:P(H`d)8>Nf1<Pio=2bWLA"Xn1A8%^%#
radius-server authentication 172.16.130.5 1812 weight 80
radius-server accounting 172.16.130.5 1813 weight 80
radius-server hw-dhcp-option-format new
radius-server hw-ap-info-format include-ap-ip
calling-station-id mac-format hyphen-split mode2 uppercase
radius-attribute check Session-Timeout
radius-attribute check HW-Input-Committed-Information-Rate
radius-attribute check HW-Output-Committed-Information-Rate
#
free-rule-template name default_free_rule
free-rule 1 destination ip 172.16.130.5 mask 255.255.255.255
#
url-template name urlTemplate_0
url http://172.16.130.5/cp/huawei
url-parameter ap-ip AP-IP ap-mac AP-MAC redirect-url redirect-url ssid ssid user-ipaddress
user-ipaddress user-mac user-mac sysname sysname
url-parameter mac-address format delimiter : normal
#
web-auth-server wnam-server
server-ip 172.16.130.5
port 50200
url http://172.16.130.5/cp/huawei
url-template urlTemplate_0
#
portal-access-profile name wnam-portal-access-profile
web-auth-server wnam-server layer3
#
aaa
authentication-scheme default
authentication-scheme radius
authentication-mode radius
authorization-scheme default
accounting-scheme default
accounting-mode radius
accounting realtime 5
accounting start-fail online
domain default
domain default_admin
#
wlan
traffic-profile name default
security-profile name default
security-profile name default-mesh
security wpa2 psk pass-phrase %^%#U/o>@VZq@K@@r-BP_rFX!&H3Gc`_{HZ<3|*AE(WR%^%# aes
ssid-profile name default
ssid HUAWEI
vap-profile name default
authentication-profile wnam-authentication-profile
mesh-handover-profile name default
mesh-profile name default
country-code RU
air-scan-profile name default
rrm-profile name default
radio-2g-profile name default
radio-5g-profile name default
wids
#
interface Wlan-Radio0/0/0
vap-profile default wlan 1
#

Ниже приведены скриншоты графического интерфейса точки доступа:


Настройка площшадки и сервера доступа в интерфейсе WNAM производится обычным
порядком.

Внимание! Конфигурационный файл контроллера содержит строки:


radius-attribute check Session-Timeout
radius-attribute check HW-Input-Committed-Information-Rate
radius-attribute check HW-Output-Committed-Information-Rate

Они означают, что констроллер в RADIUS-Accept сообщениях от сервера WNAM будет проверять
наличие этих трех атрибутов. Следовательно, вы обязаны указать лимиты скорости (rx/tx) и
длительности сессии в разделе "Ограничения" общих, или для заданной площадки. В противном
случае, если ограничения не выставлены, атрибутов в ответе не будет, и контроллер не
пропустит абонента. Если вам совсем не нужны эти ограничения, уберите соответствующие
строки из конфигурации контроллера.

При корректной настройке при попытке подключения абонента к Wi-Fi сети в лог-файле WNAM
будут отображаться следующие записи:
21:08:11.706 DEBUG [c.n.w.web.cp.CaptivePortalController:544] - CP huawei redirect:
mac=4C:57:CA:XX:XX:XX, ip=172.16.130.154, ap=d4:c8:b0:15:1d:40 [HUAWEI], server=Huawei,
192.168.0.5
21:08:11.722 DEBUG [c.n.w.web.cp.CaptivePortalController:1661] - processAuthRequest HUAWEI:
username=4C:57:CA:XX:XX:XX, ip=172.16.130.154, server=Huawei, site_id=3, dst='http://www.ru/'
21:08:11.722 DEBUG [c.n.w.web.cp.CaptivePortalController:1804] - processRedirectRequestCi
mac=4C:57:CA:XX:XX:XX, method=FORM, formName=58addf80bd045a2fa888c7a6,
redirectUrl=http://www.ru/, key=33f0eb37-ee12-4572-ad58-10a1c237de00
21:08:13.053 DEBUG [c.n.w.web.cp.CaptivePortalController:1530] - RedirectCi login: site_id=3,
username=4C:57:CA:2C:0F:4C, dst='http://www.ru/', dst_extra='null'
21:08:13.053 DEBUG [c.n.w.web.cp.CaptivePortalController:2102] - loginAtNasCi HUAWEI
mac=4C:57:CA:XX:XX:XX, ip=172.16.130.154, server=Huawei, dst='http://www.ru/'
21:08:13.057 DEBUG [com.netams.wnam.web.cp.Huawei:85] - backToHuawei login len=439,
server='172.16.130.75', username=4C:57:XX:XX:XX:XX, password=password, dst='http://www.ru/'
21:08:13.079 INFO [WnamRadius:522] - AUTH for new session
ID=Huawei000000000000019e7f4f000019-2c0f4c, request MAC=4C:57:CA:XX:XX:XX, IP=172.16.130.154,
cust_clientid=iSE
21:08:13.112 INFO [WnamRadius:683] - ACCT Start new session
ID=Huawei000000000000019e7f4f000019-2c0f4c, MAC=4C:57:CA:XX:XX:XX, IP=172.16.130.154,
NAS=172.16.130.75
21:13:13.124 INFO [WnamRadius:683] - ACCT Interim-Update existing
(Huawei000000000000019e7f4f000019-2c0f4c) session ID=Huawei000000000000019e7f4f000019-2c0f4c,
MAC=4C:57:CA:XX:XX:XX, IP=172.16.130.154, NAS=172.16.130.75
21:13:13.652 INFO [WnamRadius:683] - ACCT Stop existing
(Huawei000000000000019e7f4f000019-2c0f4c) session ID=Huawei000000000000019e7f4f000019-2c0f4c,
MAC=4C:57:CA:XX:XX:XX, IP=172.16.130.154, NAS=172.16.130.75

Беспроводные точки доступа Cambium Networks


Начиная с версии 1.3.1000 WNAM поддерживает взаимодействие с точками доступа Cambium
Networks моделей cnPilot E400, E500 и ePMP1000. Портал перехвата (хотспот) встроен в саму
точку доступа.

Для настройки взаимодействия вы долдны в административном интерфейсе WNAM создать


новую запись о сервере доступа типа "Cambium Networks":
Параметры "логин" и "пароль"н е используются. Точки доступа не умеют определять имена
абонентских устройств (перехват DHCP), и экспортировать статистику NetFlow.

Перед началом настройки точки доступа для взаимодействия с WNAM убедитесь, что базовые
параметры (адрес точки и т.п.) настроены верно, беспроводная сеть в открытом (без
авторизации виде) обеспечивает работу абонентов.

Для настройки гостевой сети в меню "Configure - WLAN" для требуемой беспроводной сети
выберите:

1. Во вкладке Guest Access метод External hotspot, политику Radius, режим HTTP, укажите ссылку
на внешний портал - сервер WNAM.

Формат ссылки: http://имявашегосервера/cp/cambium

Redirect URL (ссылка перенаправления после авторизации) - укажите то же самое, http://имяваш


егосервера/cp/cambium

Включите режим MAC Authentication Fallback только, если вы планируете делать безусловный
пропуск ранее известных (VIP) абонентов.
В перечень доверенных адресов (Add White List) добавьте IP адреса и имена сервера WNAM.

2. Во вкладке Radius Server укажите IP адрес сервера WNAM в разделах Authentication Server и A
ccounting Server, пароль (ключ) и другие параметры:
Не забудьте сохранить конфигурации.

На этом настройка закончена. При подключении к Wi-Fi сети неизвестного абонента в логе
wnam.log появятся записи:
18:15:16.907 DEBUG [c.n.w.web.cp.CaptivePortalController:523] - CP cambium redirect:
cmac=9C:4E:36:XX:XX:XX, ip=195.9.250.162, ap=00:04:56:b5:5d:6e, server=192.168.20.25
18:15:16.934 DEBUG [c.n.w.web.cp.CaptivePortalController:1571] - processAuthRequest ci:
key=8e71fe87-93f1-4905-b47a-5bea92bab9ad, mac=9C:4E:36:XX:XX:XX, username=null,
ip=195.9.250.162, site_id=9, phone=, smscode=null
18:15:16.936 DEBUG [c.n.w.web.cp.CaptivePortalController:1594] - processAuthRequest CAMBIUM:
username=9C:4E:36:XX:XX:XX, ip=195.9.250.162, server=192.168.20.25, site_id=9, dst='https://www
.lenta.ru'
18:15:16.937 DEBUG [c.n.w.web.cp.CaptivePortalController:1653] - captive portal redirected to
SMS page, username=9C:4E:36:XX:XX:XX, cust=new, form='sms'
18:15:53.213 DEBUG [c.n.w.web.cp.CaptivePortalController:829] - postSms: site_id=9,
username=9C:4E:36:XX:XX:XX, phone=79266274433, smscode=null,
ci.key=8e71fe87-93f1-4905-b47a-5bea92bab9ad
18:15:53.223 DEBUG [c.n.w.web.cp.CaptivePortalController:992] - CP SMS phase 1:
mac=9C:4E:36:XX:XX:XX, ip=195.9.250.162, phone=79266274433, smscode=2692
18:15:53.346 DEBUG [com.netams.wnam.services.SmsService:102] - smsc sms_to: 79266274433, text='
2692', header=WNAM
18:16:10.909 DEBUG [c.n.w.web.cp.CaptivePortalController:829] - postSms: site_id=9,
username=9C:4E:36:XX:XX:XX, phone=79266274433, smscode=2692,
ci.key=8e71fe87-93f1-4905-b47a-5bea92bab9ad
18:16:10.921 DEBUG [c.n.w.web.cp.CaptivePortalController:1071] - CP SMS phase 2:
mac=9C:4E:36:XX:XX:XX, ip=195.9.250.162, phone=79266274433, smscode=2692 CORRECT
18:16:10.927 DEBUG [c.n.w.web.cp.CaptivePortalController:1763] - processRedirectRequestCi
mac=9C:4E:36:XX:XX:XX, method=FORM, formName=redirect, redirectUrl=https://www.lenta.ru,
key=8e71fe87-93f1-4905-b47a-5bea92bab9ad
18:16:12.854 DEBUG [c.n.w.web.cp.CaptivePortalController:1374] - RedirectCi login: site_id=9,
username=9C:4E:36:DC:1B:98, dst='https://www.lenta.ru', dst_extra='null'
18:16:12.854 DEBUG [c.n.w.web.cp.CaptivePortalController:2015] - loginAtNasCi CAMBIUM
mac=9C:4E:36:XX:XX:XX, ip=195.9.250.162, server=192.168.20.25, dst='https://www.lenta.ru'
18:16:12.855 DEBUG [com.netams.wnam.web.cp.Cambium:39] - backToCambium query len=652,
action='192.168.20.25', username=9C:4E:36:XX:XX:XX, password=password
18:16:12.959 INFO [WnamRadius:520] - AUTH for new session ID=null, request
MAC=9C:4E:36:XX:XX:XX, IP=192.168.20.21, cust_clientid=null
18:16:13.035 INFO [WnamRadius:661] - ACCT Start new session
ID=00-04-56-B5-5D-6E-9C-4E-36-XX-XX-XX-0006-dc1b98, MAC=9C:4E:36:XX:XX:XX, IP=192.168.20.21,
NAS=192.168.20.25

Для обеспечения возможности безусловного пропуска абонентов на основе MAC-авторизации


необходимо включить соответствующий режим (MAC Authentication Fallback Use guest-access only
as fallback for clients failing MAC-authentication) во вкладке Guest Access, а также настроить метод
доступа во вкладке Access:
Здесь необходимо указать:

Policy - Radius
Delimiter - : (двоеточие)
Включить галочки Password и Upper-Case.
Беспроводные точки доступа Eltex
Начиная с версии 1.3.1050 WNAM поддерживает взаимодействие с беспроводными точками
доступа WEP-2ac, WEP-12ac, WOP-2ac, WOP-12ac производства ООО «Предприятие «Элтекс»

Эти точки доступа содержат в себе портал перехвата (хотспот), который может быть
использован для редиректа HTTP-сессии подключенного Wi-Fi абонента на внешний портал
авторизации WNAM.

Поддерживается только прошивка точки версии 1.9 и выше.

Для настройки взаимодействия WNAM и точки доступа Eltex необходимо первым делом настроить
саму точку доступа в режиме "Access Point" без авторизации, и проверить её работу.

Затем следует указать настройки RADIUS-сервера. Укажите IP адрес сервера WNAM и секретный
ключ, совпадающий с записью в /etc/freeradius/clients.conf. Включите Accounting.

В разделе "Captive portal - Global configuration" включите портал перехвата.


Создайте инстанс (экземпляр) портала.
Настройте портал. Укажите URL перенаправления на сервер WNAM (в примере WNAM сервер
работает на адресе 172.16.130.5, следовательно ссылка http://172.16.130.5:8080/cp/eltex, если
вы используете WNAM на порту 80, то ссылка будет http://172.16.130.5/cp/eltex)
Привяжите портал к виртуальной точке доступа для каждого из радио-интерфейсов точки
доступа:
Некоторые параметры необходимо настраивать в командной строке (CLI) точки доступа.
Подключитесь к ней через консоль или по ssh, и укажите:
set global-radius-server radius-acct-period 300
set cp-instance wnam permitted-ip 172.16.130.5
set cp-instance wnam proxy-mode absolute-path
set cp-instance wnam radius-accounting on
set cp-instance wnam radius-acct-period 300

В результате вывод команд get должен соответствовать следующему:


WEP-12ac# get cp-instance wnam detail
Property Value
-------------------------------------------------------------------
instance-id 1
admin-mode up
protocol http
verification Cportal
redirect down
redirect-url
external up
proxy-mode absolute-path
external-url http://172.16.130.5:8080/cp/eltex
permitted-ip 172.16.130.5
use-captcha
away-time 60
session-timeout 0
user-up-rate 0
user-down-rate 0
user-group-name Default
user-mobility-domain
global-radius on
radius-accounting on
radius-acct-period 300
radius-domain
radius-ip
radius-backupone-ip
radius-backuptwo-ip
radius-backupthree-ip
radius-ipv6
radius-backupone-ipv6
radius-backuptwo-ipv6
radius-backupthree-ipv6
radius-ip-network ipv4
encrypted-radius-key
encrypted-radius-backupone-key
encrypted-radius-backuptwo-key
encrypted-radius-backupthree-key
locale-count 1
virtual-portal-name wnam-portal
operational-mode 0
WEP-12ac# get global-radius-server detail
Property Value
--------------------------------------
radius-accounting on
radius-acct-period 300
radius-domain wnam
radius-ip 172.16.130.13
radius-backupone-ip
radius-backuptwo-ip
radius-backupthree-ip
radius-ip-network ipv4
radius-das-port 3799
radius-port 1812
radius-accounting-port 1813
accounting-wait-ip down
radius-ipv6 ::
radius-backupone-ipv6
radius-backuptwo-ipv6
radius-backupthree-ipv6

Теперь необходимо настроить WNAM. Создайте сервер доступа типа "Eltex", укажите IP адрес
точки доступа. Параметры login / password настраивать не нужно:
На этом настройка закончена. Попробуйте произвести подключение к точке доступа мобильным
устройством, пройти идентификацию и страницу перенаправления. Доступ в Интернет будет
предоставлен. В логе wnam.log появятся следующие записи:
10:27:18.491 DEBUG [c.n.w.web.cp.CaptivePortalController:575] - CP eltex clicked:
username=4C:57:CA:XX:XX:XX, ip=172.16.130.135, server=172.16.130.70,
server_identity=wnam-portal, apmac=A8:F9:4B:B4:8B:20 [Eltex], dst='http://captive.apple.com/?'
10:27:18.500 DEBUG [c.n.w.web.cp.CaptivePortalController:1543] - processAuthRequest ci:
key=9682a0ba-094a-4661-8630-be754525706d, mac=null, server=null, ip=null, site_id=null,
phone=null, smscode=null
10:27:18.502 DEBUG [c.n.w.web.cp.CaptivePortalController:1566] - processAuthRequest ELTEX:
username=4C:57:CA:XX:XX:XX, ip=172.16.130.135, server=172.16.130.70, site_id=3, domain_id=wnam,
dst='http://www.ru/'
10:27:18.503 DEBUG [c.n.w.web.cp.CaptivePortalController:1709] - processRedirectRequestCi
mac=4C:57:CA:XX:XX:XX, method=FORM, formName=redirect, redirectUrl=http://www.ru/,
key=9682a0ba-094a-4661-8630-be754525706d
10:27:21.169 DEBUG [c.n.w.web.cp.CaptivePortalController:1434] - RedirectCi login: site_id=3,
username=4C:57:CA:XX:XX:XX, dst='http://www.ru/', dst_extra='null'
10:27:21.169 DEBUG [c.n.w.web.cp.CaptivePortalController:1914] - loginAtNasCi ELTEX
mac=4C:57:CA:XX:XX:XX, ip=172.16.130.135, server=172.16.130.70, dst='http://www.ru/'
10:27:21.172 DEBUG [com.netams.wnam.web.cp.Eltex:40] - backToEltex login
server='172.16.130.70', user=4C:57:CA:XX:XX:XX, password=password, dst='http://www.ru/'
10:27:21.188 INFO [WnamRadius:662] - ACCT Start new session ID=6373BB57-74A80D0C-2c0f4c,
MAC=4C:57:CA:XX:XX:XX, IP=172.16.130.135, NAS=172.16.130.70
10:27:47.059 INFO [WnamRadius:662] - ACCT Interim-Update existing (6373BB57-74A80D0C-2c0f4c)
session ID=6373BB57-74A80D0C-2c0f4c, MAC=4C:57:CA:XX:XX:XX, IP=172.16.130.135,
NAS=172.16.130.70

При этом в списке активных сессий в WNAM появится схожая с примером запись:

Поскольку у точки доступа нет прикладного интерфейса (API), невозможно обеспечить сброс
активной сессии пользователя из интерфейса WNAM.

Точка доступа обеспечивает соблюдение ограничений, выставленных на площадке оказания


услуги, в части длительности сессии пользователя, лимита трафика по объему (общий), лимита
скорости в канале (прием и передача).
На этом настройка точки завершена.

Беспроводные точки доступа Rotek


Начиная с версии 1.4 WNAM поддерживает взаимодействие с Wi-Fi точками доступа Rotek (http:/
/www.rotek.ru)

Поддержка данного оборудование функционально эквивалентна устройствам на базе CooveChilli,


однако настройка имеет ряд особенностей. Тестирование проводилось на точек доступа
RT-BR24-WFN2E v2 с версией прошивки v7.54-5.43635.

Первоначальная настройка точки доступа (обновление прошивки, имя устройства, логин-пароль,


IP-адресация, SSID и его безопасность) должны проводиться согласно инструкциям
производителя.

После этого необходимо настроить Wi-Fi сеть с гостевым порталом (режим Hotspot UAM).

Перейдите в окно настройки SSID:

Выберите для радио-сети режим безопасности "Hotspot (UAM)", этим активируется сервис
хотспота на точке.

Укажите IP-адрес сервера WNAM в качестве адреса RADIUS primary server, а также secret
(ключ). Эта точка доступа (хотспот) должны быть прописаны на сервере WNAM в конфигурации
freeradius в файле /etc/freeradius/clients.conf
Если вы используете пересекающиеся IP-адресные пространства на сетях клиентов (вероятнее
всего, это так), до для разделения статистики по абонентам в WNAM между площадками
необходимо указать идентификатор площадки - это поду WISPr Location Name:
Вы должны указать хотспоту необходимость использования внешнего (external) сервера
управления и идентификации. Укажите ссылку на сервер WNAM в формате
http://имясервера:порт/cp/rotek
В окне настройки безопасности SSID выберите Open (сеть без пароля) или любой другой
предпочтительный вариант.
Укажите диапазон IP адресов, из которых абоненты вашей сети будут получать IP-адреса, а
также адрес самого хотспота и DNS-сервера.

В списке разрешенных адресов - White list - (доступных абоненту до авторизации) необходимо


разрешить доступ до сервера WNAM, и до DNS-сервера по их IP адресам.
На этом настройка точки доступа закончена. Не забудьте сохранить её конфигурацию, а для
надежности - перезагрузить точку доступа и убедиться, что все введенные параметры
сохранились.

Теперь необходимо настроить сервер WNAM. В настройках "Конфигурация-Сервера доступа"


создайте новую запись соответствующего типа. В качестве IP-адреса укажите адрес хотспота
точки доступа. Логин и пароль - не используются в настоящий момент.
Затем сделует создать запись о площадке (локации) оказания услуги. Обратите внимание на имя
(номер площадки) - он должен совпасть с WISPr Location Name, а также на диапазон сети
абонентов (192.168.5.0/24 в примере). Укажите также разрешенный сервер доступа (только что
настроенную запись).
Попробуйте выполнить подключение к Wi-Fi абонентским устройством, пройти цикл
авторизации. При этом интерфейс точки доступа отобразит статус подключения:
В дополнение к этому, интерфейс WNAM будет фиксировать состояние сессии подключения:

Внимание! Возможность "останова сессии" в настоящий момент не поддерживается!

В момент авторизации в лог-файле wnam.log будут присутствовать записи, аналогичные этим:


10:17:21.275 DEBUG [c.n.w.web.cp.CaptivePortalController:586] - CP Rotek redirect:
cid=4C:57:CA:XX:XX:XX, ip=192.168.5.3, ap='ec:4c:4d:56:35:28', Rotek=192.168.5.66:3990
10:17:21.320 DEBUG [c.n.w.web.cp.CaptivePortalController:1929] - processAuthRequest ROTEK:
username=4C:57:CA:XX:XX:XX, ip=192.168.5.3, server=192.168.5.66:3990, site_id=16,
domain_id=b52e73ebe0e0ea9031343b07a6573c74, dst='http://provider.ru/'
10:17:21.320 DEBUG [c.n.w.web.cp.CaptivePortalController:2088] - processRedirectRequestCi
mac=4C:57:CA:XX:XX:XX, method=FORM, formName=58ced8183b22c81878411fad, redirectUrl=http://provi
der.ru/, key=87b0afbd-2c66-4d75-9dad-88a43c2fe0dc
10:17:22.990 DEBUG [c.n.w.web.cp.CaptivePortalController:1793] - RedirectCi login: site_id=16,
username=4C:57:CA:XX:XX:XX, dst='http://provider.ru/', dst_extra='null'
10:17:22.993 DEBUG [c.n.w.web.cp.CaptivePortalController:2491] - loginAtNasCi ROTEK
mac=4C:57:CA:XX:XX:XX, ip=192.168.5.3, server=192.168.5.66:3990, dst='http://provider.ru/'
10:17:23.004 DEBUG [com.netams.wnam.web.cp.CoovaChilli:43] - backToRotek login len=509,
server='192.168.5.66:3990', username=4C:57:CA:XX:XX:XX, enc_password=c54f0098978f98f4, dst='htt
p://provider.ru/'
10:17:23.093 INFO [WnamRadius:594] - AUTH for new session ID=57739d0f00000001-2c0f4c, request
MAC=4C:57:CA:XX:XX:XX, IP=192.168.5.3, cust_clientid=
10:17:23.109 INFO [WnamRadius:767] - ACCT Start new session ID=57739d0f00000001-2c0f4c,
MAC=4C:57:CA:XX:XX:XX, IP=192.168.5.3, NAS=192.168.5.66
Если при подключении возникли проблемы в части RADIUS-взаимодействия, рекомендуется
запустить freeradius в режиме отладки (freeradius -X). Корректная последовательность событий
авторизации и аккаунтинга приведена ниже:

rad_recv: Access-Request packet from host 172.16.130.69 port 53106, id=59, length=273
ChilliSpot-Version = "1.3.0"
User-Name = "4C:57:CA:XX:XX:XX"
User-Password = "password"
Service-Type = Login-User
Acct-Session-Id = "57739d0f00000001"
Framed-IP-Address = 192.168.5.3
NAS-Port-Type = Wireless-802.11
NAS-Port = 1
NAS-Port-Id = "00000001"
Calling-Station-Id = "4C-57-CA-XX-XX-XX"
Called-Station-Id = "EC-4C-4D-56-35-28"
NAS-IP-Address = 192.168.5.66
NAS-Identifier = "rotek"
WISPr-Location-ID = "isocc=,cc=0,ac=0,network="
WISPr-Location-Name = "16"
WISPr-Logoff-URL = "http://192.168.5.66:3990/logoff"
Message-Authenticator = 0x214190c2a9c0eb3f33c8a0794f507179
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+group authorize {
++[preprocess] = ok
[pap] WARNING! No "known good" password found for the user. Authentication may fail because of
this.
++[pap] = noop
++[chap] = noop
rlm_perl: WNAM Q: AUTH Message-Authenticator=0x214190c2a9c0eb3f33c8a0794f507179
User-Password=password WISPr-Location-ID=isocc=,cc=0,ac=0,network= NAS-Port=1
Framed-IP-Address=192.168.5.3 ChilliSpot-Version=1.3.0 NAS-IP-Address=192.168.5.66
Calling-Station-Id=4C-57-CA-XX-XX-XX NAS-Identifier=rotek WISPr-Location-Name=16
User-Name=4C:57:CA:XX:XX:XX Acct-Session-Id=57739d0f00000001
Called-Station-Id=EC-4C-4D-56-35-28 NAS-Port-Type=Wireless-802.11 NAS-Port-Id=00000001
Service-Type=Login-User WISPr-Logoff-URL=http://192.168.5.66:3990/logoff
rlm_perl: RECV: IO::Socket::INET=GLOB(0x1c21918)
rlm_perl: WNAM A: OK Acct-Interim-Interval=300 Session-Timeout=600
WISPr-Bandwidth-Max-Down=5120000 WISPr-Bandwidth-Max-Up=1024000 (112)
rlm_perl: authorize reply: .OK.
rlm_perl: Added pair Message-Authenticator = 0x214190c2a9c0eb3f33c8a0794f507179
rlm_perl: Added pair User-Password = password
rlm_perl: Added pair WISPr-Location-ID = isocc=,cc=0,ac=0,network=
rlm_perl: Added pair NAS-Port = 1
rlm_perl: Added pair Framed-IP-Address = 192.168.5.3
rlm_perl: Added pair ChilliSpot-Version = 1.3.0
rlm_perl: Added pair NAS-IP-Address = 192.168.5.66
rlm_perl: Added pair Calling-Station-Id = 4C-57-CA-XX-XX-XX
rlm_perl: Added pair NAS-Identifier = rotek
rlm_perl: Added pair WISPr-Location-Name = 16
rlm_perl: Added pair User-Name = 4C:57:CA:XX:XX:XX
rlm_perl: Added pair Acct-Session-Id = 57739d0f00000001
rlm_perl: Added pair Called-Station-Id = EC-4C-4D-56-35-28
rlm_perl: Added pair NAS-Port-Type = Wireless-802.11
rlm_perl: Added pair NAS-Port-Id = 00000001
rlm_perl: Added pair Service-Type = Login-User
rlm_perl: Added pair WISPr-Logoff-URL = http://192.168.5.66:3990/logoff
rlm_perl: Added pair Session-Timeout = 600
rlm_perl: Added pair WISPr-Bandwidth-Max-Up = 1024000
rlm_perl: Added pair Acct-Interim-Interval = 300
rlm_perl: Added pair WISPr-Bandwidth-Max-Down = 5120000
rlm_perl: Added pair Cleartext-Password = password
rlm_perl: Added pair Auth-Type = PAP
++[perl] = ok
[auth_log] expand: %{Packet-Src-IP-Address} -> 172.16.130.69
[auth_log] expand:
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail
-%Y%m%d -> /var/log/freeradius/radacct/172.16.130.69/auth-detail-20170602
[auth_log]
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/auth-detail
-%Y%m%d expands to /var/log/freeradius/radacct/172.16.130.69/auth-detail-20170602
[auth_log] expand: %t -> Fri Jun 2 10:17:30 2017
++[auth_log] = ok
+} # group authorize = ok
Found Auth-Type = PAP
# Executing group from file /etc/freeradius/sites-enabled/default
+group PAP {
[pap] login attempt with password "password"
[pap] Using clear text password "password"
[pap] User authenticated successfully
++[pap] = ok
+} # group PAP = ok
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
+group post-auth {
[reply_log] expand: %{Packet-Src-IP-Address} -> 172.16.130.69
[reply_log] expand:
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detai
l-%Y%m%d -> /var/log/freeradius/radacct/172.16.130.69/reply-detail-20170602
[reply_log]
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/reply-detai
l-%Y%m%d expands to /var/log/freeradius/radacct/172.16.130.69/reply-detail-20170602
[reply_log] expand: %t -> Fri Jun 2 10:17:30 2017
++[reply_log] = ok
+} # group post-auth = ok
Sending Access-Accept of id 59 to 172.16.130.69 port 53106
Session-Timeout += 600
WISPr-Bandwidth-Max-Up += 1024000
Acct-Interim-Interval += 300
WISPr-Bandwidth-Max-Down += 5120000
Finished request 1.
Going to the next request
Waking up in 4.9 seconds.

rad_recv: Accounting-Request packet from host 172.16.130.69 port 39306, id=11, length=216
ChilliSpot-Version = "1.3.0"
ChilliSpot-Attr-10 = 0x00000002
Event-Timestamp = " 29 2016 13:04:08 MSK"
User-Name = "4C:57:CA:XX:XX:XX"
Acct-Status-Type = Start
Acct-Session-Id = "57739d0f00000001"
Framed-IP-Address = 192.168.5.3
NAS-Port-Type = Wireless-802.11
NAS-Port = 1
NAS-Port-Id = "00000001"
Calling-Station-Id = "4C-57-CA-XX-XX-XX"
Called-Station-Id = "EC-4C-4D-56-35-28"
NAS-IP-Address = 192.168.5.66
NAS-Identifier = "rotek"
WISPr-Location-ID = "isocc=,cc=0,ac=0,network="
WISPr-Location-Name = "16"
# Executing section preacct from file /etc/freeradius/sites-enabled/default
+group preacct {
++[preprocess] = ok
[acct_unique] Hashing 'NAS-Port = 1,NAS-Identifier = "rotek",NAS-IP-Address =
192.168.5.66,Acct-Session-Id = "57739d0f00000001",User-Name = "4C:57:CA:XX:XX:XX"'
[acct_unique] Acct-Unique-Session-ID = "9a52b5614889da5c".
++[acct_unique] = ok
+} # group preacct = ok
# Executing section accounting from file /etc/freeradius/sites-enabled/default
+group accounting {
[detail] expand: %{Packet-Src-IP-Address} -> 172.16.130.69
[detail] expand:
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m
%d -> /var/log/freeradius/radacct/172.16.130.69/detail-20170602
[detail]
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m
%d expands to /var/log/freeradius/radacct/172.16.130.69/detail-20170602
[detail] expand: %t -> Fri Jun 2 10:17:30 2017
++[detail] = ok
[radutmp] expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
[radutmp] expand: %{User-Name} -> 4C:57:CA:XX:XX:XX
++[radutmp] = ok
rlm_perl: WNAM Q: ACCT WISPr-Location-ID=isocc=,cc=0,ac=0,network= NAS-Port=1
Acct-Status-Type=Start Framed-IP-Address=192.168.5.3 ChilliSpot-Version=1.3.0
NAS-IP-Address=192.168.5.66 Calling-Station-Id=4C-57-CA-XX-XX-XX NAS-Identifier=rotek
Acct-Unique-Session-Id=9a52b5614889da5c ChilliSpot-Attr-10=0x00000002 WISPr-Location-Name=16
User-Name=4C:57:CA:XX:XX:XX Acct-Session-Id=57739d0f00000001
Called-Station-Id=EC-4C-4D-56-35-28 NAS-Port-Type=Wireless-802.11 NAS-Port-Id=00000001
rlm_perl: RECV: IO::Socket::INET=GLOB(0x1c21918)
rlm_perl: WNAM A: OK (2)
rlm_perl: Added pair WISPr-Location-ID = isocc=,cc=0,ac=0,network=
rlm_perl: Added pair NAS-Port = 1
rlm_perl: Added pair Acct-Status-Type = Start
rlm_perl: Added pair Framed-IP-Address = 192.168.5.3
rlm_perl: Added pair ChilliSpot-Version = 1.3.0
rlm_perl: Added pair NAS-IP-Address = 192.168.5.66
rlm_perl: Added pair Calling-Station-Id = 4C-57-CA-XX-XX-XX
rlm_perl: Added pair NAS-Identifier = rotek
rlm_perl: Added pair Acct-Unique-Session-Id = 9a52b5614889da5c
rlm_perl: Added pair ChilliSpot-Attr-10 = 0x00000002
rlm_perl: ERROR: Failed to create pair Event-Timestamp = 29 2016 13:04:08 MSK
rlm_perl: Added pair WISPr-Location-Name = 16
rlm_perl: Added pair User-Name = 4C:57:CA:XX:XX:XX
rlm_perl: Added pair Acct-Session-Id = 57739d0f00000001
rlm_perl: Added pair Called-Station-Id = EC-4C-4D-56-35-28
rlm_perl: Added pair NAS-Port-Type = Wireless-802.11
rlm_perl: Added pair NAS-Port-Id = 00000001
++[perl] = ok
[attr_filter.accounting_response] expand: %{User-Name} -> 4C:57:CA:XX:XX:XX
attr_filter: Matched entry DEFAULT at line 12
++[attr_filter.accounting_response] = updated
+} # group accounting = updated
Sending Accounting-Response of id 11 to 172.16.130.69 port 39306
Finished request 2.
Cleaning up request 2 ID 11 with timestamp +63

Беспроводные точки доступа Zyxel Keenetic


Начиная с версии 1.4.1411 WNAM поддерживает взаимодействие с точками
доступа/маршрутизаторами Zyxel Keenetic, на которые установлены современные прошивки.

Keenetic использует модифицированную версию CoovaChilli, поддерживает взаимодействие по


RADIUS, ограничение на длительности сессии и скорость в канале до абонента, позволяет
сбросить активную сессию заданного абонента, или все сессии.

В нижеследующем примере настройки использовалось устройство Keenetic Giga II с версией ПО


2.10.A.7.0

Устройство имело WAN адрес 172.16.130.88, и в качестве LAN сегмента использовалась


встроенная точка доступа с адресом на интерфейса 192.168.1.1.

Сервер авторизации WNAM работал в другой сети, связь с которой осуществлялась по Интернет
через OpenVPN туннель, так как описано здесь.

Домашняя сеть представлена сегментом Home; гостевая сеть не используется.


Помимо WAN подключения, настроено OpenVPN подключение; присвоен туннельный адрес
172.16.255.6

Настройка OpenVPN производится путем вставки клиентской части конфигурационного файла. В


данном примере используется авторизация по паре ключ-пароль, а не по клиентским
сертификатом (это сделано для совместимости сервера с клиентами Mikrotik).
Конфигурационный файл клиента приведен ниже:
client
dev tun
proto tcp
remote wnam-srv1.provider.net 11194
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-128-CBC
auth md5
verb 3
<ca>
-----BEGIN CERTIFICATE-----
openvpn
-----END CERTIFICATE-----
</ca>
<auth-user-pass>
keenetic
keenetic
</auth-user-pass>

Беспроводная сеть (точка доступа) настроена так, как показа ниже. Вы можете выбрать другое
имя сети, и отключить wi-fi безопасность.
Последним шагом настраивается сервис Captive Portal, по сути являющися конфигурацией к
ChilliSpot.

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

В окне выбора сегмента не выбирайте ничего.

В поле UAM Allowed укажите IP адрес сервера WNAM - это будет разрешенный абонентам до
авторизации адрес (аналог Walled Garden).

В поле UAM Server укажите путь до сервера авторизации WNAM, клиентского интерфейса.
Поскольку взаимодействие идет в туннеле, у нас указан туннельный адрес сервера WNAM, и
путь: http://172.16.255.1/cp/keenetic

В поле UAM Secret укажите ключ взаимодействия для шифрования паролей, это должен быть тот
же ключ, что указан в параметре "пароль" настроек сервера доступа (см. ниже.).

Укажите IP адрес RADIUS-сервера (это тот же сервер WNAM), и RADIUS-пароль (должен


совпадать с значением, указанным в /etc/freeradius/clienst.conf на сервере WNAM.

В качестве RADIUS Location ID вы должны указать идентификатор площадки, которую вы


настроили для этого keenetic на сервере WNAM. Это требуется для того, чтобы в случае
пересекающихся диапазонов клиентских IP-сетей на разных роутерах keenetic отделить
статистику этих сетей и площадок друг от друга.
Помимо этих настроек, в интервейсе командной строки роутера вы должны выполнить ряд
дополнительных действий. В этот интерфейс можно попасть через telnet.

Дополнительные команды:

Отключение аппаратного ускорения роутинга - без этого счетчики байт в RADIUS сообщениях, и
соответственно вся статистика по трафику, будет некорректной:
no ppe software
no ppe hardware

Установка NAS-IP-Address в параметрах RADIUS-сообщений, для того чтобы сервер WNAM мог
отделить трафик от разных роутеров. Рекомендуется указывать WAN адрес или туннельный
адрес роутера:
interface Chilli0 chilli nasip 172.16.255.6

На этом настройка роутера keenetic закончена. Вы можете посмотреть в журнал роутера, чтобы
убедитсья в работе CoovaChilli и OpenVPN-клиента:
Полный конфигурационный файл роутера приведет здесь.startup-config.txt

Теперь следует настроить WNAM. На самом сервере настройте OpenVPN-сервер, создайте запись
о новом маршрутизаторе keenetic в файлах ipp.txt и users.txt. Укажите RADIUS-ключ в
конфигурационном файле /etc/freeradius/clients.conf.

В веб-интерфейсе администратора WNAM создайте запись о сервере доступа типа Keeentic,


укажите туннельный IP адрес, логин и пароль (они же будут использоваться для сброса сессии
абонента через API роутера). Укажите "использовать счетчики аккаунтинга":
Создайте площадку с заданным идентификатором (номером) (в примере - 5), укажите в
выпадающем списке соответствующий сервер доступа (только что созданный), укажите
диапазон IP адресов площадки:
При успешном подключении Wi-Fi абонента WNAM продемонстрирует работающую сессию
подключения:
При этом в лог-файле /var/log/tomcat8/catalina.out появятся следующие строки:
23:42:13.325 DEBUG [c.n.w.web.cp.CaptivePortalController:630] - CP Keenetic redirect:
cid=4C:57:CA:XX:XX:XX, ip=192.168.1.2, ap='10:7b:ef:60:0f:58', Keenetic=192.168.1.1:3990,
challenge=fb39b73e23bd70cb0766e604b3e7c9cb
23:42:13.343 DEBUG [c.n.w.web.cp.CaptivePortalController:2158] - processAuthRequest KEENETIC:
username=4C:57:CA:XX:XX:XX, ip=192.168.1.2, server=192.168.1.1:3990, site_id=5,
domain_id=fb39b73e23bd70cb0766e604b3e7c9cb, dst='http://bash.im'
23:42:13.343 DEBUG [c.n.w.web.cp.CaptivePortalController:2327] - processRedirectRequestCi
mac=4C:57:CA:XX:XX:XX, method=FORM, formName=58bdc4965e4df6273ac60210, redirectUrl=http://bash.
im, key=a064a5a8-f940-4a49-af65-e79c306e4416
23:42:17.111 DEBUG [c.n.w.web.cp.CaptivePortalController:2016] - RedirectCi login: site_id=5,
username=4C:57:CA:XX:XX:XX, dst='http://bash.im', dst_extra='null'
23:42:17.112 DEBUG [c.n.w.web.cp.CaptivePortalController:2752] - loginAtNasCi KEENETIC
mac=4C:57:CA:XX:XX:XX, ip=192.168.1.2, server=192.168.1.1:3990, dst='http://bash.im'
23:42:17.115 DEBUG [com.netams.wnam.web.cp.CoovaChilli:62] - backToKeenetic login len=501,
server='192.168.1.1:3990', username=4C:57:CA:XX:XX:XX, enc_password=8b58c44d54d202af, dst='http
://bash.im'
23:42:17.235 INFO [WnamRadius:659] - AUTH for new session ID=59a71fbb00000001-2c0f4c, request
MAC=4C:57:CA:XX:XX:XX, IP=192.168.1.2, cust_clientid=null
23:42:17.261 INFO [WnamRadius:842] - ACCT Start new session ID=59a71fbb00000001-2c0f4c,
MAC=4C:57:CA:XX:XX:XX, IP=192.168.1.2, NAS=172.16.255.6
23:47:17.764 INFO [WnamRadius:842] - ACCT Interim-Update existing session
ID=59a71fbb00000001-2c0f4c, duration=00:05:00, MAC=4C:57:CA:XX:XX:XX, IP=192.168.1.2,
NAS=172.16.255.6
23:52:17.162 INFO [WnamRadius:842] - ACCT Interim-Update existing session
ID=59a71fbb00000001-2c0f4c, duration=00:09:59, MAC=4C:57:CA:XX:XX:XX, IP=192.168.1.2,
NAS=172.16.255.6
23:57:17.417 INFO [WnamRadius:842] - ACCT Interim-Update existing session
ID=59a71fbb00000001-2c0f4c, duration=00:15:00, MAC=4C:57:CA:XX:XX:XX, IP=192.168.1.2,
NAS=172.16.255.6
00:01:21.056 INFO [WnamRadius:842] - ACCT Stop existing session ID=59a71fbb00000001-2c0f4c,
duration=00:19:03, MAC=4C:57:CA:XX:XX:XX, IP=192.168.1.2, NAS=172.16.255.6

C точки зрения RADIUS-сервера в его лог файле будет примерно следующее (запуск через
freeradius -X):
rad_recv: Access-Request packet from host 172.16.255.6 port 53932, id=10, length=262
ChilliSpot-Version = "1.3.1.4"
User-Name = "4C:57:CA:XX:XX:XX"
User-Password = "\261-f\324\345\220\331D"
Service-Type = Login-User
Acct-Session-Id = "59a7168600000001"
Framed-IP-Address = 192.168.1.2
NAS-Port-Type = Wireless-802.11
NAS-Port = 1
NAS-Port-Id = "00000001"
Calling-Station-Id = "4C-57-CA-XX-XX-XX"
Called-Station-Id = "10-7B-EF-60-0F-58"
NAS-IP-Address = 172.16.255.6
NAS-Identifier = "nas01"
WISPr-Location-ID = "--dns1=8.8.4.4"
WISPr-Location-Name = "5"
WISPr-Logoff-URL = "http://192.168.1.1:3990/logoff"
Message-Authenticator = 0x0f04a9f4438becd4311576f74febd188

# Executing section authorize from file /etc/freeradius/sites-enabled/default


+group authorize {
++[preprocess] = ok
[pap] WARNING! No "known good" password found for the user. Authentication may fail because of
this.
++[pap] = noop
++[chap] = noop
rlm_perl: RECV: IO::Socket::INET=GLOB(0xfd2ec0)
rlm_perl: authorize reply: .OK.
rlm_perl: Added pair Message-Authenticator = 0x0f04a9f4438becd4311576f74febd188
rlm_perl: Added pair NAS-Port = 1
rlm_perl: Added pair Framed-IP-Address = 192.168.1.2
rlm_perl: Added pair Acct-Session-Id = 59a7168600000001
rlm_perl: Added pair NAS-Identifier = nas01
rlm_perl: Added pair Called-Station-Id = 10-7B-EF-60-0F-58
rlm_perl: Added pair User-Name = 4C:57:CA:XX:XX:XX
rlm_perl: Added pair WISPr-Logoff-URL = http://192.168.1.1:3990/logoff
rlm_perl: Added pair NAS-IP-Address = 172.16.255.6
rlm_perl: Added pair NAS-Port-Type = Wireless-802.11
rlm_perl: Added pair User-Password = \261-f\324\345\220\331D
rlm_perl: Added pair NAS-Port-Id = 00000001
rlm_perl: Added pair ChilliSpot-Version = 1.3.1.4
rlm_perl: Added pair Calling-Station-Id = 4C-57-CA-XX-XX-XX
rlm_perl: Added pair WISPr-Location-Name = 5
rlm_perl: Added pair Service-Type = Login-User
rlm_perl: Added pair WISPr-Location-ID = --dns1=8.8.4.4
rlm_perl: Added pair Acct-Interim-Interval = 300
rlm_perl: Added pair Cleartext-Password = \261-f\324\345\220\331D
rlm_perl: Added pair Auth-Type = PAP
++[perl] = ok
+} # group authorize = ok
Found Auth-Type = PAP
# Executing group from file /etc/freeradius/sites-enabled/default
+group PAP {
[pap] login attempt with password ""
[pap] Using clear text password ""
[pap] User authenticated successfully
++[pap] = ok
+} # group PAP = ok
WARNING: Empty post-auth section. Using default return values.
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
Sending Access-Accept of id 10 to 172.16.255.6 port 53932
Acct-Interim-Interval += 300
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
rad_recv: Accounting-Request packet from host 172.16.255.6 port 45617, id=1, length=206
ChilliSpot-Version = "1.3.1.4"
ChilliSpot-Attr-10 = 0x00000001
Event-Timestamp = " 30 2017 22:50:06 MSK"
User-Name = "4C:57:CA:XX:XX:XX"
Acct-Status-Type = Start
Acct-Session-Id = "59a7168600000001"
Framed-IP-Address = 192.168.1.2
NAS-Port-Type = Wireless-802.11
NAS-Port = 1
NAS-Port-Id = "00000001"
Calling-Station-Id = "4C-57-CA-XX-XX-XX"
Called-Station-Id = "10-7B-EF-60-0F-58"
NAS-IP-Address = 172.16.255.6
NAS-Identifier = "nas01"
WISPr-Location-ID = "--dns1=8.8.4.4"
WISPr-Location-Name = "5"

# Executing section preacct from file /etc/freeradius/sites-enabled/default


+group preacct {
++[preprocess] = ok
[acct_unique] Hashing 'NAS-Port = 1,NAS-Identifier = "nas01",NAS-IP-Address =
172.16.255.6,Acct-Session-Id = "59a7168600000001",User-Name = "4C:57:CA:XX:XX:XX"'
[acct_unique] Acct-Unique-Session-ID = "7e353f41a7bfac9e".
++[acct_unique] = ok
+} # group preacct = ok
# Executing section accounting from file /etc/freeradius/sites-enabled/default
+group accounting {
[radutmp] expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
[radutmp] expand: %{User-Name} -> 4C:57:CA:XX:XX:XX
++[radutmp] = ok
rlm_perl: RECV: IO::Socket::INET=GLOB(0xfd2ec0)
rlm_perl: Added pair NAS-Port = 1
rlm_perl: Added pair ChilliSpot-Attr-10 = 0x00000001
rlm_perl: Added pair Framed-IP-Address = 192.168.1.2
rlm_perl: Added pair Acct-Session-Id = 59a7168600000001
rlm_perl: Added pair NAS-Identifier = nas01
rlm_perl: Added pair Called-Station-Id = 10-7B-EF-60-0F-58
rlm_perl: Added pair User-Name = 4C:57:CA:XX:XX:XX
rlm_perl: ERROR: Failed to create pair Event-Timestamp = 30 2017 22:50:06 MSK
rlm_perl: Added pair NAS-IP-Address = 172.16.255.6
rlm_perl: Added pair Acct-Unique-Session-Id = 7e353f41a7bfac9e
rlm_perl: Added pair NAS-Port-Type = Wireless-802.11
rlm_perl: Added pair NAS-Port-Id = 00000001
rlm_perl: Added pair ChilliSpot-Version = 1.3.1.4
rlm_perl: Added pair Calling-Station-Id = 4C-57-CA-XX-XX-XX
rlm_perl: Added pair WISPr-Location-Name = 5
rlm_perl: Added pair Acct-Status-Type = Start
rlm_perl: Added pair WISPr-Location-ID = --dns1=8.8.4.4
++[perl] = ok
[attr_filter.accounting_response] expand: %{User-Name} -> 4C:57:CA:XX:XX:XX
attr_filter: Matched entry DEFAULT at line 12
++[attr_filter.accounting_response] = updated
+} # group accounting = updated
Sending Accounting-Response of id 1 to 172.16.255.6 port 45617
Finished request 1.

Беспроводный контроллер HP MSM


Начиная с версии 1.3.741 WNAM поддерживает работу с контроллером беспроводных точек HP
MSM. Это оригинальная линейка контроллеров HP (сейчас Hewlett Packard Enterprise).

Поддерживается ПО контроллера версии 6.6 и выше. Протестирована работа с версией 6.6.4.0,


контроллером MSM760 и точкой доступа MSM430. Ожидается, что WNAM будет работать с любой
аналогичной версией контроллера и точкой доступа.
Перед тем, как приступить к настройке взаимодействия WNAM и контроллера MSM, вы должны:

Установить и настроить контроллер, точку доступа, создать профиль VCS, настроить SSID
без авторизации, трансляцию адресов и убедиться, что Wi-Fi абоненты имеют обычный
доступ в интернет через контроллер без авторизации
Установить и настроить WNAM (freeradius, java, tomcat), убедиться в работоспособности
административного веб-интерфейса

В приведенном ниже примере сервер WNAM имеет адрес 172.16.130.5, интерфейс которого
работает на порту 8080. Контроллер имеет адрес 172.16.130.14. Портал пользователя работает
по протоколу HTTP без применения DNS-имен.

Настройка контроллера HP MSM состоит из следующих шагов:

1. Создание записи о RADIUS-сервере в разделе Authentication - RADIUS profiles:


Обратите внимание на использование протокола PAP, отсутствие отмеченных чекбоксов. Пароль
(secret) на взаимодействие контроллера и сервера должен совпадать с паролем, указанным на
сервере в настройках freeradius в файле /etc/freeradius/clients.conf.

2. В соседнем разделе определить формат МАС-адреса:


3. В разделе Public access установить следующие параметры:

Обратите внимание на использование протокола HTTP для редиректа. Возможна работа и по


HTTPS, однако это потребует установки действительного SSL-сертификата на контроллер и на
сервер WNAM.

4. В разделе атрибутов установите следующие значения:


Первые три значения присутствуют по умолчанию. Остальные правила необходимо настроить
согласно таблице:

Имя атрибута Значение Комментарии

ACCESS-LIST unauth,ACCEPT,tcp,172.16.130 Разрешающее правило


.5,8080 доступа не авторизованных
абонентов до самого портала
авторизации WNAM.

Обязательно необходимо
указать (заменить) IP адрес
портала и порт 8080 или 80

USE-ACCESS-LIST factory

USE-ACCESS-LIST-UNAUTH unauth
LOGIN-URL http://172.16.130.5:8080/cp/h Ссылка перенаправления
pmsm?ip=%c&mac=%m&url= трафика на внешний портал
%o&server=%l&server_identit авторизации (слитно, в одну
y=%a&apmac=%C&ssid=%E строку).

Обязательно заменить IP
адрес и порт на используемые
вами параметры сервера
WNAM.

Категорически запрещается
модифицировать любые
другие символы и параметры
в данной строке.

VSA-WISPR-ACCESS-PROCEDU 1.0
RE

Если вы используете авторизацию через социальные сети или ЕСИА, ограниченный пропуск
трафика до сервера вашей организации (при превышении лимита), вам также надо будет
добавить в данный список дополнительные разрешенные IP адреса или URL.

5. Примените созданные настройки веб-авторизации к имеющемуся VCS профилю:


На этом настройка контроллера закончена. Вам необходимо в административном интерфейсе
WNAM создать объект "сервер доступа" соответствующего типа:
Параметры Логин и Пароль значения не имеют (WNAM их не использует при работе с
контроллером).

Внимание: определение имен абонентов не работает с контроллером HP MSM (он не имеет


соответствующего функционала).

Внимание: сбор детальной статистики не работает с контроллером HP MSM (он имеет


аналогичный функционал sFlow, но WNAM в настоящий момент не поддерживает sFlow).

На этом настройка интеграции WNAM и HP MSM закончена. Можно проверить работу механизма
авторизации и учета сессий и трафика абонентов.

Беспроводный контроллер Ubiquiti UniFi


Начиная с версии 1.2.667 WNAM поддерживает прямую работу с контроллером беспроводных
точек Ubiquiti UniFi. При этом используется встроенный в контроллер механизм гостевого
портала. Таким образом, дополнительного портала перехвата в виде маршрутизатора Mikrotik
при использовании точек UniFi теперь не требуется. Более того, UniFi позволяет делать
несколько независимых площадок с несколькими точками доступа на каждой, с независимыми
настройками. WNAM также поддерживает несколько площадок (SITE), настроенных в UniFi.

Поддерживается ПО контроллера UniFi версии 4.8 и выше.

Поддерживается весь функционал WNAM, кроме: СОРМ, ограничение объёма сессии по трафику,
ограничение скорости абонента (ограничение функционала UniFi).

Обратите внимание, RADIUS-сервер для работы комбинации WNAM + UniFi не требуется.

Для настройки необходимо выполнить следующие шаги:

1. Установка UniFi

Необходимо придерживаться инструкции, приведенной на сайте производителя:


https://community.ubnt.com/t5/UniFi-Wireless/Updated-UniFi-Repo-info-APT-howto/m-p/1288883

Помните, для своей работы UniFi использует MongoDB. Однако, по неизвестным причинам
Ubiquiti предлагает использовать для установки пакеты mongodb типа mongodb-10gen или
mongodb-server, при том как официальная документация MongoDB предлагает устанавливать
пакеты mongodb-org, которые использует WNAM. В этом случае будет конфликт зависимостей
пакетов mongodb. Его можно решить следующим образом:

1.1. Добавить репозиторий unifi и скачать пакет:


apt-get download unifi

1.2. Скачать скрипт-конвертер munge_mongodb_deps.sh с GitHub, и запустить его:


wget https://raw.githubusercontent.com/ctindel/ubiquiti-docker/96695f237d4886edbe1deb0aa71a839e
53eb1fe0/unifi/munge_mongodb_deps.sh
chmod +x munge_mongodb_deps.sh
./munge_mongodb_deps.sh unifi_4.8.18-8395_all.deb /tmp

1.3. Запустить установку из пакета:


cd /tmp
dpkg -i unifi_4.8.18-8395_all.modified.deb

Selecting previously unselected package unifi.


(Reading database ... 55553 files and directories currently installed.)
Preparing to unpack unifi_4.8.18-8395_all.modified.deb ...
Unpacking unifi (4.8.18-8395) ...
Setting up unifi (4.8.18-8395) ...
update-rc.d: using dependency based boot sequencing
Starting Ubiquiti UniFi Controller: unifi.

1.4. Убедиться в том, что контроллер UniFi запустился:


netstat -na | grep 8443

tcp6 0 0 :::8443 :::* LISTEN

2. Настройка UniFi

На контроллере UniFi произвести базовую настройку системы, точек доступа, сети. Создать
открытую гостевую сеть, протестировать её работу. Затем перевести сеть в режим авторизации
через гостевой портал (выбор метода безопасности: Open, WEP, WPA остается за вами).
Выберите вариант "Guest Policy":
В меню настроек гостевого доступа выберите способ с авторизацией на внешнем сервере,
укажите его IP адрес, при необходимости имя сервера (если у вас настроен DNS):

Внимание! Гостевой портал UniFi поддерживает перенаправление только на порт 80. Поэтому
WNAM должен быть настроен на работу только на порту 80 (не 8080 или 443).

Внимание! Если сервер WNAM находится не в той же сети, что и гостевые клиенты, по
умолчанию портал UniFi будет блокировать траффик до WNAM. В этом случае вам потребуется
прописать адрес сервера WNAM в поле Allowed Subnets.

Применение гостевых настроек приведет к перезагрузке точек доступа. Причина в том, что
хотспот (перенаправление HTTP-трафика на внешний портал авторизации) находится не в
контроллере, а в самих точках доступа. Там это реализуется через специальные скрипты,
взаимодействующие с локальным ebtables.

3. Настройка WNAM

Необходимо создать объект "Сервер доступа" типа UniFi, указать его настройки (IP адрес,
местоположение, обязательно административные логин и пароль). WNAM использует UniFi API с
этими учетными данными для доступа к контроллеру.

Через API производится создание и останов сессий, сбор статистики по трафику и определение
имен мобильных устройств. Для сбора детальной статистики по протоколу NetFlow вы должны
использовать другой роутер, и соответствующий сервер доступа. UniFi NetFlow не поддерживает.

Теперь следует создать соответствующую запись о площадке (место оказания услуги Wi-Fi, где
установлены точки доступа).

Вы должны указать имя сети, в которой находятся устройства абонентов (получают IP адреса по
DHCP), например 172.16.130.0./24.

Если портал WNAM находится в другой сети, и между ним и абонентами присутствует трансляция
адресов (NAT), необходимо также указать этот "транслируемый адрес". Поскольку абонентские
запросы попадут на WNAM с этого адреса, WNAM должен знать, к какой площадке привязать
запрос (чтобы не получилось сообщение типа "попытка доступа с неизвестной площадки").Таким
образом, поле "Присвоенная IP подсеть" будет иметь вид:
172.16.13.0./24; 77.241.144.5

Параметр "Тэг" заполнять не нужно.

Параметр "Дополнительный ID на этом сервере" должен содержать идентификатор площадки


так, как его распознает контроллер UniFi. По умолчанию там присутствует одна площадка с
именем и идентификатором default. Однако если вы делаете несколько площадок в контроллере
UniFi с разными именами, вам также надо настроить несколько соответствующих площадок в
WNAM. Имена площадок, как вы их видите в контроллере, не соответствуют идентификаторам,
которые используются в UniFi API и о которых должен знать WNAM. Для получения соответствия
имени и идентификатора запросите на контроллере (после авторизации) ссылку:
https://172.16.130.13:8443/api/self/sites

В ответ вы получите что-то вроде:


{ "data" : [
{ "_id" : "55e5df420cf21c9a1d67f654" , "attr_hidden_id" : "default" , "attr_no_delete" : true ,

"desc" : "Default" , "name" : "default" ,


"num_ap" : 1 , "num_sta" : 0 , "role" : "admin"} ,
{ "_id" : "572dbd1e0cf27b0c7f7ffd6d" ,
"desc" : "TestSite" , "name" : "0583e7ja" ,
"num_ap" : 1 , "num_sta" : 0 , "role" : "admin"}
] , "meta" : { "rc" : "ok"}}

Здесь имени площадки Default соответствует идентификатор default, а площадке TestSite


идентификатор 0583e7ja. Его и надо поместить в поле "Дополнительный ID на этом сервере". Вн
имание! "Дополнительный идентификатор" - это НЕ название площадки и НЕ SSID, это значение
параметра name из вывода API /self/sites по ссылке выше. В примере это либо default, либо 0583
e7ja
На этом настройка WNAM и UniFi завершена. Можно пробовать подключение. Не авторизованный
клиент в таком случае в начале будет виден в интерфейсе UniFi в виде:

При обращении браузером с клиента происходит перенаправление его сессии на гостевой


портал UniFi, затем на портал авторизации WNAM, что видно в лог-файле wnam.log:

22:23:22.810 DEBUG [c.n.w.web.cp.CaptivePortalController:336] - CP unifi clicked:


username=E8:2A:EA:55:3D:13, ip=172.16.130.55, dst='http://lenta.ru/', ssid=UnifiCP,
server='default', ap_mac=dc:9f:db:8c:92:cf
22:23:22.841 DEBUG [c.n.w.web.cp.CaptivePortalController:976] - processAuthRequest UNIFI:
username=E8:2A:EA:55:3D:13, ip=172.16.130.55, server=default, site_id=9, dst='http://lenta.ru/'

При успешной авторизации абонента на портале и переходе в Интернет производится


авторизация его на контроллере:

22:23:22.841 DEBUG [c.n.w.web.cp.CaptivePortalController:1048] - processRedirectRequest


username=E8:2A:EA:55:3D:13, method=FORM
22:23:25.805 DEBUG [c.n.w.web.cp.CaptivePortalController:807] - Redirect login: site_id=9,
username=E8:2A:EA:55:3D:13, dst='http://bash.im'
22:23:25.820 DEBUG [c.n.w.web.cp.CaptivePortalController:1177] - loginAtNas UNIFI
username=E8:2A:EA:55:3D:13, ip=172.16.130.55, server=default, dst='http://bash.im'
22:23:25.820 DEBUG [com.netams.wnam.web.unifi.Unifi:81] - backToUnifi
username=E8:2A:EA:55:3D:13, server_address=default, site_id=9, as=VM (172.16.130.13),
ap_mac=dc:9f:db:8c:92:cf
22:23:25.884 DEBUG [c.n.wnam.services.UnifiApiService:142] - Unifi authorized
MAC=E8:2A:EA:55:3D:13 IP=172.16.130.55 at NAS IP=172.16.130.13, site default (ID=9)

При этом авторизованный абонент виден на портале в таком виде:

При этом в интерфейсе WNAM будет видна созданная сессия со всеми параметрами, в том числе
МАС-адресом точки доступа, номером радио-канала и SSID:
Периодически (раз в 1 минуту) WNAM обращается к UniFi для получения списка текущих
авторизованных клиентов, обновления счетчиков сессий, удаления просроченных сессий и
отключившихся клиентов.

В конфигурационном файле /etc/wnam.properties настраивается параметр


controller_session_length (в секундах), длительность сессии абонента по умолчанию (сутки). Это
значение можно переопределить в настройках площадки в разделе "ограничения", либо в
глобальных настройках ограничений. WNAM также поддерживает сброс всех текущих сессий на
сервере доступа, и сброс выбранной сессии.

4. Дополнительный способ авторизации

Внимание! Замечено, что в некоторых случаях авторизация абонента (время между нажатием им
кнопки "подключить" до реального разрешения доступа) идет медленно, вместо обычных 1-2
секунд до 10-20. Это раздражает пользователей. Причина кроется в известной недоработке
контроллера UniFi, о чем неоднократно было сообщено производителю:

https://community.ubnt.com/t5/UniFi-Wireless/Authorize-from-external-portal-server-very-slow/td-p
/697611/page/2

https://community.ubnt.com/t5/UniFi-Wireless/Guest-authorization-takes-longer-with-more-APs/td-p
/1362055

http://community.ubnt.com/t5/UniFi-Wireless/Authorize-from-external-portal-server-very-slow/m-p/
849782/highlight/true#M63653

http://community.ubnt.com/t5/UniFi-Wireless/External-hotspot-hardware-performance-max-AP-slow
-authorisation/td-p/1517875

Если вы столкнулись с подобной ситуацией, начиная с версии WNAM 1.3.891 поддерживается


возможность использовать другой способ организации гостевого портала на контроллере UniFi.

Для этого гостевую авторизацию на контроллере необходимо перевести в режим "без


авторизации" и "использовать кастомизацию портала":

Необходимо в поле "Allowed Subnets" указать IP-адрес сервера WNAM, иначе не авторизованные
пользователи не смогут на него попасть.

Далее необходимо на сервере, где установлен контроллер, внести изменения в штатную


страницу портала. Для этого необходимо её найти. Для площадки Default она находится
здесь: /var/lib/unifi/sites/default/portal/index.html

Для площадки (сайта) с другим индексом (как его найти см. выше), она находится (например)
по адресу /var/lib/unifi/sites/0583e7ja/portal/index.html где 0583e7ja - индекс сайта.

Необходимо все содержимое этого файла заменить на конструкцию-редиректор:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<title><unifi txt="WelcomePage.Title" /></title>
<meta http-equiv="refresh" content="0;
url=http://172.16.130.5/cp/unifi?site-id=0583e7ja&apmac=<unifi var="ap_mac" />&mac=<unifi
var="mac" />&ssid=<unifi var="ssid" />">
</head>
<body></body></html>

Вы должны в параметрах прописать URL до сервера WNAM (в примере http://172.16.130.5/cp/uni


fi) и исправить значение параметра site-id на верное.

Сохраните этот файл и попробуйте выполнить подключение. Никаких дополнительных


изменений в интерфейсе WNAM не требуется. Поддерживается одновременно обе схемы работы,
эта и старая.
Беспроводный контроллер на основе WiNG
Начиная с версии 1.4 WNAM поддерживает взаимодействие с контроллерами беспроводных
точек, построенными на программном обеспечении WiNG. Это оборудование производства
Extreme Networks, Zebra, Motorola и Symbol. Поддерживаются версии программного обеспечения
до 5.8.3 и 5.8.3+.

Для настройки контроллера необходимо пользоваться инструкцией производителя по


авторизации с применением внешнего портала (Externally Hosted Pages). Используются: DNS
Whitelist (для разрешения обращения абонентов к порталу WNAM до начала доступа в
Интернет), webpage external (перенаправление на внешний портал), авторизация по механизму
RADIUS (в качестве сервера выступает WNAM).

Предположим, что сервер WNAM имеет адрес 172.16.130.13, и его веб-интерфейс находится на
порту 80.

Документация по интерфейсу командной строки контроллера: http://documentation.extremenetw


orks.com/ExtremeWireless/WING_5.8_CRG_MN002230A01_EN.pdf

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

!
aaa-policy wnam_policy
authentication server 1 host 172.16.130.13 secret 0 wnam_radius
authentication server 1 nac
accounting server 1 host 172.16.130.13 secret 0 wnam_radius
!
dns-whitelist wnam_whitelist
permit 8.8.8.8
permit 172.16.130.13
!
captive-portal wnam_portal
server host 172.16.130.11 !
server mode centralized ! - self, centralized, centralized-controller
inactivity-timeout 300
webpage-location external
webpage external login http://172.16.130.13/cp/wing?username=WING_TAG_CLIENT_MAC&ip=WING_TAG_CL
IENT_IP&site=WING_TAG_RF_DOMAIN&ap_mac=WING_TAG_AP_MAC&ap_name=WING_TAG_AP_NAME
webpage external welcome http://172.16.130.13/cp/wing_welcome
webpage external fail http://172.16.130.13/cp/wing_welcome
webpage external agreement http://172.16.130.13/cp/wing_welcome
webpage external acknowledgement http://172.16.130.13/cp/wing_welcome
webpage external registration http://172.16.130.13/cp/wing_welcome
webpage external no-service http://172.16.130.13/cp/wing_welcome
accounting radius
use aaa-policy wnam_policy
use dns-whitelist wnam_whitelist
!
wlan FreeWiFi
ssid FreeWiFi
bridging-mode local
authentication-type none
no client-client-communication
use captive-portal wnam_portal
captive-portal-enforcement
accounting wait-client-ip
radius dynamic-authorization
!

Для настройки WNAM создайте в разделе "Сервера доступа" новую запись, выбрав в качестве
типа устройства - "Motorola/Zebra WiNG", укажите IP-адрес контроллера, а также в
конфигурационном файле FreeRADIUS /etc/freeradius/clients.conf пропишите этот адрес как
адрес нового RADIUS-клиента.

WNAM также поддерживает динамический сброс сессии активного абонента путем отправки
RADIUS CoA пакета контроллеру. Для этого в настройках сервера доступа также укажите RADIUS
secret key и порт CoA (по умолчанию: 3799), а также на контроллере включите опцию RADIUS D
ynamic Authorization в настройках SSID - Advanced.

Маршрутизатор Alcatel-Lucent SR7750


Начиная с версии 1.3.741 WNAM поддерживает работу с маршрутизатором Alcatel-Lucent SR7750,
который выполняет функции BRAS на сети, построенной с использованием любого Wi-Fi
оборудования.

Поддерживается одновременная работа со множеством площадок (физических мест


предоставления услуги WiFi), разделенных на разные VLAN и имеющих разные сервисные и SLA
профили. При этом для каждой площадки будут действовать индивидуальные параметры
авторизации, перенаправления, ограничений и статистики.Таким образом, один маршрутизатор
может эффективно обслуживать сотни площадок предоставления WiFi и тысячи одновременно
работающих абонентов.

Поддержка взаимодействия с Alcatel-Lucent SR7750 требует дополнительной лицензии.

Документация по настройке WNAM и маршрутизатора Alcatel-Lucent SR7750, техническая


поддержка предоставляются по запросу.

Маршрутизатор Cisco ISG


Начиная с версии 1.1.490 система управления беспроводным доступом поддерживает работу в
сетях,маршрутизацию в которых осуществляют устройства Cisco ISG.

К семейству устройств ISG (Intelligent Services Gateway) относятся высокопроизводительные


маршрутизаторы операторского уровня, такие как Cisco 7200, 7300, 7600, 10000, ASR1000 и
другие. При использовании специальной версии программного обеспечения они позволяют
обеспечивать агрегацию и контроль доступа больших сетей передачи данных, с сотнями тысяч
абонентов. Маршрутизаторы ISG - единственные в линейке маршрутизаторов Cisco, способные
обеспечить функционал "портала перехвата", необходимый для проведения авторизации
пользователя сети, в том числе беспроводного.

Для реализации поддержки ISG необходимо в административном интерфейсе WNAM создать


сервер доступа с заданным типом, и параметрами:
В отличие от типовых настроек сервера доступа, необходимо указать ещё два дополнительных
параметра, определяющих наборы RADIUS-атрибутов, передаваемых маршрутизатору.

В качестве атрибутов предварительно авторизации необходимо передать имя сервиса,


вызывающей перенаправление неавторизованной сессии на сервер WNAM (для проведения
авторизации).

Сервис LOCAL_L4R, в свою очередь, ссылается на список доступа 197, в котором определены
правила перенаправления всего трафика, кроме трафика до сервера авторизации, а также
указание на сервер (через правило REDIRECT_NOPAY) 10.219.7.71 порт 81.

Для перехвата всего трфвика, попадающего на сервер авторизации, установлен прокси-сервер


nginx со следующим конфигурационным файлом:

/etc/nginx/sites-enabled/wnam-redirect
server {
listen *:81;
server_name vnam;
expires -10s;
keepalive_timeout 0;
rewrite ^(.*)$ http://10.219.7.71/cp/isg?dst=$scheme://$host$request_uri redirect;
}

Согласно этой конфигурации, все HTTP-запросы неавторизованных пользователей


перенаправляются на портал авторизации WNAM. Аналогичным способом надо сделать
HTTPS-перенаправление.

MAC- , IP-. ISG 3 , - , . - IP- -. :

1. ри помощи скрипта /usr/local/bin/wnam-leases.pl

! DHCP- WNAM. ISG . 10.10.100.0/24

Необходимо указывать в файле /etc/wnam.properties параметр:


linuxcp_leasescheck_script=/usr/local/bin/wnam-leases.pl

Этим способом реализуется механизм pull, т.е. выполняется проверка МАС адреса в момент
подключения клиента. При большой нагрузке на сервер и большом числе записей в таблице
DHCP данный способ работает медленно.

2. , /usr/local/bin/wnam-dhcpd-bridge

DHCP- /etc/dhcp/dhcpd.conf :

group "wifi" {
on commit {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
set clhost = pick-first-value(host-decl-name, option fqdn.hostname, option host-name, "");
execute ("/usr/local/bin/wnam-dhcpd-bridge", "127.0.0.1", "password", "commit", "wnam", clip,
clhw, clhost);
}

on release {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
set clhost = pick-first-value(host-decl-name, option fqdn.hostname, option host-name, "");
execute ("/usr/local/bin/wnam-dhcpd-bridge", "127.0.0.1", "password", "release", "wnam", clip,
clhw, clhost);
}

on expiry {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
set clhost = pick-first-value(host-decl-name, option fqdn.hostname, option host-name, "");
execute ("/usr/local/bin/wnam-dhcpd-bridge", "127.0.0.1", "password", "expiry", "wnam", clip,
clhw, clhost);
}
}

push, .. WNAM . WNAM , - :


16:34:36.749 DEBUG [c.n.wnam.services.WnamApiService:154] - DHCP commit IP=10.1.0.158,
MAC=00:1F:27:90:74:CA, cust_clientid='tst-sw1'

/usr/local/bin/wnam-dhcpd-bridge принимает параметры:

IP адрес сервера WNAM


пароль обмена (должен соответствовать параметру "password" из /etc/wnam.properties
команда
идентификатор сервера (не используется)
IP адрес
MAC адрес
имя устройства клиента

В файле конфигурации также настраиваются два таймаута (в секундах):


dhcp_cache_timeout=43200 # DHCP
isg_cache_timeout=43200 # ISG, .. " ".

: http://www.netams.com/files/wnam/misc/

Необходимо также привязать сервер доступа типа ISG к площадке, им обслуживаемой (иначе
работать не будет):
- , .

, WNAM ISG , . WNAM RADIUS CoA , , . "INTERNET", ( 100).

Никаких дополнительных настроек на стороне FreeRADIUS не требуется.

Ниже приведен лог процесса успешной авторизации пользователя (10.10.100.10) на сервере


WNAM (10.219.7.71):
10:15:16.330 DEBUG [c.n.wnam.services.LinuxCPService:329] - create ISG session IP=10.10.100.10,
NAS=10.219.7.75, MAC=00:00:00:00:00:01, SESS=0ADB074B7600000000000054
10:15:17.813 DEBUG [c.n.w.web.cp.CaptivePortalController:240] - CP isg redirect:
IP=10.10.100.10, MAC=00:18:E7:0E:37:EF, ID='TP2-TKI-mAPM', CUST=known, phone=null
10:15:17.814 DEBUG [c.n.wnam.services.LinuxCPService:343] - update ISG session IP=10.10.100.10,
NAS=10.219.7.75, MAC=00:18:E7:0E:37:EF, SESS=0ADB074B7600000000000054
10:15:17.816 DEBUG [c.n.w.web.cp.CaptivePortalController:697] - processAuthRequest ISG:
username=00:18:E7:0E:37:EF, ip=10.10.100.10, server=, site_id=null, dst=''
10:15:17.817 DEBUG [c.n.w.web.cp.CaptivePortalController:760] - processRedirectRequest
username=00:18:E7:0E:37:EF, method=FORM
10:15:19.594 DEBUG [c.n.w.web.cp.CaptivePortalController:591] - Redirect login: site_id=2,
username=00:18:E7:0E:37:EF, dst='http://bash.im'
10:15:19.595 DEBUG [c.n.w.web.cp.CaptivePortalController:829] - loginAtNas ISG
username=00:18:E7:0E:37:EF, ip=10.10.100.10, server=, dst='http://bash.im'
10:15:19.597 DEBUG [c.n.wnam.services.LinuxCPService:276] - open ISG access REQ for
IP=10.10.100.10, MAC=00:18:E7:0E:37:EF
10:15:19.612 DEBUG [c.n.wnam.services.LinuxCPService:301] - open ISG access SUCCESS for
IP=10.10.100.10, MAC=00:18:E7:0E:37:EF
10:15:19.618 DEBUG [c.n.wnam.services.WnamCmdService:537] - ACCT-Start uhid task
NAS=10.219.7.75, CUST=00:18:E7:0E:37:EF, IP=10.10.100.10, DB=wnam_db
10:15:19.618 DEBUG [c.n.wnam.services.WnamCmdService:173] - ACCT-Start uhid processing
NAS=10.219.7.75, CUST=00:18:E7:0E:37:EF, IP=10.10.100.10, DB=wnam_db

Ниже приведен фрагмент конфигурационного файла маршрутизатора ISG (его адрес -


10.219.7.75).

boot-start-marker
boot system flash disk0:c7200-k91p-mz.122-31.SB3.bin
boot-end-marker
!
!
aaa new-model
!
!
aaa group server radius ISG-RADIUS
server 10.219.7.71 auth-port 1812 acct-port 1813
ip radius source-interface FastEthernet0/1.2
!
aaa authentication login TAL_LIST group ISG-RADIUS
aaa authorization exec default local
aaa authorization network TAL_LIST group ISG-RADIUS
aaa authorization subscriber-service default local group ISG-RADIUS
aaa accounting delay-start all
aaa accounting update periodic 1 jitter maximum 0
aaa accounting network TAL_LIST start-stop group ISG-RADIUS
!
!
!
aaa server radius dynamic-author
client 10.219.7.71
client 10.219.7.76
client 10.10.100.10
server-key 7 04480E051D2458
auth-type any
!
aaa session-id common
ip subnet-zero
no ip icmp rate-limit unreachable
ip cef
!
!
ip dhcp relay information option
ip dhcp relay information policy keep
ip dhcp relay information trust-all
!
!
redirect server-group REDIRECT_NOPAY
server ip 10.219.7.71 port 81
!
!
!
class-map type traffic match-any CLASS-TO-REDIRECT
match access-group output 197
match access-group input 197
!
class-map type traffic match-any INTERNET
match access-group output 100
match access-group input 100
!
class-map type control match-all ISG-IP-UNAUTH
match authen-status unauthenticated
match timer UNAUTH-TIMER
!
policy-map type service LOCAL_L4R
1 class type traffic CLASS-TO-REDIRECT
redirect to group REDIRECT_NOPAY
!
!
policy-map type service INTERNET
1 class type traffic INTERNET
accounting aaa list TAL_LIST
!
!
policy-map type control ISG-CUSTOMERS-POLICY
class type control ISG-IP-UNAUTH event timed-policy-expiry
1 service disconnect
!
class type control always event session-start
1 collect identifier source-ip-address
10 authorize aaa list TAL_LIST password cisco identifier source-ip-address
20 set-timer UNAUTH-TIMER 1
!
class type control always event account-logoff
1 service disconnect
!
class type control always event session-restart
10 authorize aaa list TAL_LIST password cisco identifier source-ip-address
20 set-timer UNAUTH-TIMER 1
!
!
!
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet0/0
no ip address
speed auto
duplex auto
!
interface FastEthernet0/0.400 ! transport network - to access routers
encapsulation dot1Q 400
ip address 172.16.125.1 255.255.255.252
no snmp trap link-status
service-policy type control ISG-CUSTOMERS-POLICY
ip subscriber routed
initiator unclassified ip-address
!
interface FastEthernet0/1
no ip address
speed auto
duplex auto
!
interface FastEthernet0/1.2 ! wan network - to border router and Internet
encapsulation dot1Q 2
ip address 10.219.7.75 255.255.248.0
no snmp trap link-status
!
ip classless
ip route 0.0.0.0 0.0.0.0 10.219.2.1
ip route 10.10.100.0 255.255.255.0 172.16.125.2
!
!
access-list 100 permit ip any any
access-list 197 deny ip host 10.219.7.71 any
access-list 197 deny ip any host 10.219.7.71
access-list 197 permit tcp any any eq www
access-list 197 permit tcp any eq www any
access-list 197 permit tcp any any eq 443
access-list 197 permit tcp any eq 443 any
access-list 197 deny ip any any
!
!
radius-server attribute 44 include-in-access-req vrf default
radius-server attribute 44 extend-with-addr
radius-server attribute 8 include-in-access-req
radius-server attribute 32 include-in-access-req
radius-server attribute 32 include-in-accounting-req
radius-server attribute 55 include-in-acct-req
radius-server attribute 55 access-request include
radius-server attribute nas-port format e UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
radius-server host 10.219.7.71 auth-port 1812 acct-port 1813 key 7 095F4B0A0B0003
radius-server unique-ident 118
radius-server vsa send cisco-nas-port
radius-server vsa send accounting
radius-server vsa send authentication
!

Маршрутизатор Linux
Портал перехвата, на котором производится авторизация сессий пользователей беспроводной
сети, можно реализовать и на Linux-маршрутизаторе. Для этого необходимо, чтобы:

этот сервер был маршрутизатором для пользователей беспроводной сети (шлюзом по


умолчанию)
на этом же сервере работало ПО WNAM
этот же сервер выполнял роль DHCP-сервера для пользователей

Работа портала перехвата обеспечивается следующими дополнительными компонентами: isc-dhc


p-server, iptables, ipset, nginx. Об их настройке ниже.

Применение RADIUS-сервера не требуется.

Установка и настройка isc-dhcp-server

Производится штатным образом из пакета. Дополнительных настроек не требуется. Не забудьте


указать имя интерфейса, на котором принимать запросы, в файле /etc/default/isc-dhcp-server

Для того, чтобы WNAM при обращении пользователей к сети мог понять, какому IP адресу
соответствует MAC-адрес устройства абонента (и каково имя устройства), необходим механизм
передачи этой информации до сервера WNAM. Напомним, что идентификация пользователей
основана на определении и учёте МАС-адресов устройств. Использование arp вместо dhcp не
решает проблему, так как абоненты могут находиться в маршрутизируемой сети. Необходимо
взять скрипт связки http://www.netams.com/files/wnam/misc/wnam-leases.pl и положить его в /us
r/local/bin

Добавить права на исполнение: chmod +x /usr/local/bin/wnam-leases.pl

Установить модуль Text::DHCPLeases : cpan -i Text::DHCPLeases или apt-get


install libtext-dhcpleases-perl

Проверить работоспособность скрипта: /usr/local/bin/wnam-leases.pl (должен вернуть пустой


ответ)

Настройка межсетевого экрана

Необходимо установить пакеты ipset, netfilter-persistent

Отредактировать файл правил /usr/share/netfilter-persistent/plugins.d/15-ip4tables таким


образом, чтобы он содержал инициализацию ipset:
ipset -X
ipset --restore </etc/iptables/ipset.rules
iptables-restore < /etc/iptables/rules.v4 2> /dev/null

Необходимо создать файл /etc/iptables/ipset.rules следующего содержания:


create ACCESS hash:ip family inet hashsize 1024 maxelem 65536 counters timeout 1800

Указанный в последнем параметре абсолютный тайм-аут нахождения записи в таблице должен


быть чуть больше (на 300 секунд, например) настроенного в WNAM параметра длительности
сессии (см. ниже) и служит дополнительным защитным механизмом.

Необходимо создать файл /etc/iptables/rules.v4 следующего содержания (eth0-внешний


интерфейс, eth1 - внутренний интерфейс):
*nat
:PREROUTING ACCEPT [7882:475437]
:INPUT ACCEPT [7333:440931]
:OUTPUT ACCEPT [1214:82126]
:POSTROUTING ACCEPT [275:16624]
-A POSTROUTING -o eth0 -j MASQUERADE
-A PREROUTING -p tcp -m tcp -d _IP__ --dport 80 -j RETURN
-A PREROUTING -p tcp -m tcp -d _IP__ --dport 80 -j RETURN
-A PREROUTING -p tcp -m tcp --dport 80 -m set --match-set ACCESS src -j RETURN
-A PREROUTING -p tcp -m tcp -i eth1 --dport 80 -j REDIRECT --to-port 81
COMMIT
*filter
:INPUT ACCEPT [712781:180062776]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [812150:164158586]
:ACCESS - [0:0]
:FORWARD_EXT - [0:0]
:INPUT_EXT - [0:0]
-A INPUT -i eth0 -g INPUT_EXT
-A FORWARD -i eth0 -g FORWARD_EXT
-A FORWARD -i eth1 -g ACCESS
-A ACCESS -m set --match-set ACCESS src -j ACCEPT
-A ACCESS -p udp --dport 53 -j ACCEPT
-A ACCESS -j DROP
-A FORWARD_EXT -m state --state INVALID -j DROP
-A FORWARD_EXT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD_EXT -j DROP
-A INPUT_EXT -m state --state INVALID -j DROP
-A INPUT_EXT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT_EXT -p tcp -m state --state NEW -m multiport --dports 22,80 -j ACCEPT
-A INPUT_EXT -j DROP
COMMIT

Необходимо протестировать работу правил через iptables-apply /etc/iptables/rules.v4

Внимание! Ошибки в настройках межсетевого экрана могут привести к потере управления


сервером!

В конце необходимо дать возможность любому пользователю (в частности, пользователю


tomcat7) запускать утилиту ipset: chmod a+s /sbin/ipset

Настройка прокси-сервера

Для того, чтобы трафик не авторизованных пользователей попадал на портал перехвата,


необходимо установить обратный прокси-сервер nginx и настроить его в минимальной
конфигурации. Для этого в файле /etc/nginx/sites-enabled/wnam укажите:
server {
listen 81;
server_name wnam;
expires -10s;
keepalive_timeout 0;
rewrite ^(.*)$ http://_IP__/cp/linux?dst=$scheme://$host$request_uri redirect;
access_log /var/log/nginx/access-redir.log;
if ($http_user_agent ~* (CaptiveNetworkSupport)) { return 200; }
}

/etc/nginx/sites-enabled/

Настройка WNAM

Необходимо создать сервер доступа типа Linux с адресом 127.0.0.1 (включив сбор NetFlow), и
соответствующую площадку:

Настройка конфигурационного файла


Время жизни авторизованной сессии (абсолютный/максимальный, и неактивной сессии) и путь
до скрипта работы с DHCP настраиваются в файле /etc/wnam.properties. Там же надо указать,
что сбор статистики ведётся по NetFlow:
linuxcp_leasescheck_script=/usr/local/bin/wnam-leases.pl
linuxcp_session_timeout=1500
linuxcp_inactive_timeout=600
is_netflow_acct=true

После изменений потребуется перезапуск WNAM (процесса tomcat7).

Настройка модуля NetFlow

Внимание! Для сбора статистики требуется применение NetFlow!

Для получения корректных счётчиков байт вам необходимо установить модуль ядра ipt_netflow.

Дистрибутив с инструкцией по установке можно получить здесь: http://sourceforge.net/projects/i


pt-netflow/

После установки пропишите авто-запуск модуля в файле /etc/modprobe.d/ipt_NETFLOW.conf :


options ipt_NETFLOW destination=127.0.0.1:20002 maxflows=0 active_timeout=300

Добавьте в конфигурацию межсетевого экрана в начало цепочки FORWARD запись:


-A FORWARD -j NETFLOW

Перезапустите межсетевой экран и запустите модуль. Он будет собирать статистику по всем


потокам трафика, проходящим через ваш сервер, и отправлять её в WNAM.

Настройка безусловного доступа авторизованных пользователей

При необходимости разрешить доступ ранее авторизованным (т.е. известным системе)


пользователям без необходимости запуска браузера и подтверждения на портале перехвата
WNAM можно воспользоваться тем фактом, что DHCP-сервер работает на том же сервере, что и
портал. Решение основано на запуске скрипта в момент выделения и освобождения абонентом
IP-адреса. Необходимо в файл /etc/dhcp/dhcpd.conf добавить следующие строки:
subnet 172.16.70.0 netmask 255.255.255.0 {
.......
on commit {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
set clhost = pick-first-value(host-decl-name, option fqdn.hostname, option host-name, "");
execute("/usr/local/bin/wnam-dhcpd-bridge.pl", "commit", clip, clhw, clhost);
}
on release {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
execute("/usr/local/bin/wnam-dhcpd-bridge.pl", "release", clip, clhw, host-decl-name);
}
on expiry {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
execute("/usr/local/bin/wnam-dhcpd-bridge.pl", "expiry", clip, clhw, host-decl-name);
}
}

Необходимо взять скрипт wnam-dhcpd-bridge.pl по адресу http://www.netams.com/files/wnam/mi


sc/ и переложить его в каталог /usr/local/bin/, сделав исполняемым.
При операции выдачи/возврата адреса DHCP-сервер вызывает скрипт wnam-dhcpd-bridge.pl с
соответствующим параметрами, а тот в свою очередь передаёт команду серверу WNAM. Если
окажется, что подключившийся пользователь уже имеется в базе данных, для него откроется
сессия и создастся запись в таблице ipset. В таком случае рекомендуется указывать время жизни
сессии абонента равным 12 часам (linuxcp_session_timeout=43200), а время жизни записи в
IPSET чуть большим (43300). В случае успешного подключения в логе /var/log/tomcat7/wnam.log
будет создана следующая цепочка записей:
13:18:33.730 DEBUG [c.n.wnam.services.WnamCmdService:240] - Start handling client connection
13:18:33.838 DEBUG [c.n.wnam.services.LinuxCPService:154] - LINUX_CP openAccess
IP=172.16.70.12, res='' (0)
13:18:33.845 INFO [c.n.wnam.services.LinuxCPService:172] - LINUX_CP new session
'Linux-172.16.70.12-1453407513816', request MAC=18:AE:64:9A:28:F8, IP=172.16.70.12,
cust_clientid=iPhone
13:18:33.854 DEBUG [c.n.wnam.services.WnamCmdService:259] - Finish handling client connection

Маршрутизатор Mikrotik
Для работы WNAM требуется устройство, осуществляющее перехват HTTP-сессии нового
абонента, его авторизацию, дальнейший учёт использования сети. Для небольших сетей
наиболее оптимальным является применение хотспота (hotspot), доступного в маршрутизаторах
Mikrotik. Для построения радио-сети доступа абонентов может использоваться любое
оборудование (UniFi, D-Link, радио-интерфейс в том же Mikrotik).

Пример конфигурационного файла маршрутизатора доступен по адресу http://www.netams.com/f


iles/wnam/misc/mikrotik.txt

Настройка маршрутизатора через веб-интерфейс предполагает несколько шагов. Данное


руководство НЕ является полным руководством по настройке маршрутизаторов Mikrotik. Более
подробно процедура настройки описана на сайте производителя.

Настройка IP-адресации. Здесь адрес 10.130.1.1 установлен на внутреннем интерфейсе


маршрутизатора (ether2-master-local, привязанный к мосту bridge-local), а 172.16.130.9 на
внешнем интерфейсе ether1-gateway, "смотрящем" в сеть Интернет.
Для предоставления IP-адресов клиентам внутренней сети необходимо создать пул адресов.

Пул адресов необходимо применить к настройкам DHCP-сервера:


Также необходимо задать параметры, которые DHCP-сервер передает клиенту. Обратите
внимание, что DHCP-клиенты получают IP-адрес самого маршрутизатора Mikrotik в качества
шлюза по умолчанию. Если вы используете точки доступа UniFi, им необходимо передать адрес
контроллера через DHCP опции (тип 43).
Чтобы разрешить пользователям внутренней сети доступ в Интернет, необходимо настроить
соответствующее правило NAT (masquerade, на внешнем интерфейсе). Остальные правила
добавляются автоматически при включении хотспота.
Внимание! Для корректного учёта трафика и работы ограничений скорости убедитесь, что в
таблице правил межсетевого экрана (firewall) отключено или отсутствует правило fasttrack:

action=fasttrack-connection chain=forward comment="default configuration"


connection-state=established,related

При настройках, сделанных выше, пользователи вашей внутренней сети будут иметь
беспрепятственный доступ в Интернет. Пока он не настроен должным образом, нет смысла
переходить к настройке хотспота (Hotspot) ниже. В приведенном примере создано два хотспота
(второй деактивирован).

Настройка хотспота (сервера) должна описывать интерфейс, на котором производится перехват


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

Для авторизации следует выбрать метод "HTTP PAP". Также требуется включить аккаунтинг и
сбор промежуточной статистики (Interim Update).

Если вы используете пересекающиеся адресные пространства на ваших нескольких хотспотах,


то для корректной привязки сессии абонента к площадке необходимо указать параметр Location
ID, равный номеру площадки.
Затем необходимо настроить профиль пользователя, который будет применяться к каждому
подключенному и авторизованному абоненту. Здесь можно указать ограничение скорости
передачи данных на абонента, а также максимальную длительность каждой сессии. По
завершении указанного в Session Timeout времени хотспот автоматически закроет сессию, и
пользователь будет вынужден снова перейти на страницу редиректа (просмотр рекламы или
перенаправление на ваш сайт). Эти параметры можно также настроить в свойствах площадки,
или общих свойствах, в интерфейсе WNAM "Ограничения" (имеют больший приоритет).
Если в вашей сети присутствуют устройства, которым нужен непрерывны йбезусловный доступ в
интернет без хотспота (например, кассовые терминалы, терминалы мобильной оплаты, смартфон
босса), вы можете внести запись о таких устройствах (при известном МАС-адресе устройства) во
вкладке IP Bindings. IP адрес фиксировать не требуется:

Также можно воспользоваться заранее созданной в административном интерфейсе записью о VI


P-пользователе, включить МАС-авторизацию. В таком режиме привилегированные абоненты
будут управляться WNAM, а не хотспотом, и их база данных будет общая на все подключенные к
серверу хотспоты.

Если сервер WNAM находится не в той же сети, что и пользователи хотспота, то по умолчанию
трафик до него неавторизованным пользователям будет блокирован, и авторизация будет
недоступна. Требуется создать соответствующую "разрешающую" запись в настройках Walled
Garden.
В приведенном примере сервер WNAM имеет IP-адрес 172.16.130.5 (расположен "снаружи"
хотспота), и принимает запросы авторизации клиентов на порту 8080 (на котором работает
веб-сервер tomcat в данном примере). Если tomcat работает на порту 80, и сервер WNAM
дсотупен по потру 80 (то есть без указания порта), укажите здесь 80:

Наконец, поскольку для авторизации и аккаунтинга применяется протокол RADIUS, требуется


настроить связь с RADIUS-сервером. В приведенном примере сервер WNAM имеет адрес
172.16.130.13.
Требуется указать UDP порты (по умолчанию), ключ (секрет), соответствующий настроенному на
сервере в файле /etc/freeradius/clients.conf
Для сбора сведений по протоколу NetFlow о трафике абонентов (IP адреса, TCP/IP порты
удалённых узлов сети Интернет) требуется включить режим отправки статистики на сервер
WNAM. Для этого включите сбор (traffic flow) на внутреннем интерфейсе роутера:

И затем - укажите принимающую сторону (сервер WNAM) для пакетов NetFlow:


Последним действием необходимо поместить файл rlogin.html в директорию /hotspot/ файловой
системы маршрутизатора Mikrotik. Для этого требуется утилита Winbox.exe (либо файл можно
создать через CLI).

Внимание! Положите файл в корневую директорию хотспота, а не в поддиректорию /lv/


(латвийскую версию его)!
Образец этого файла находится здесь: http://www.netams.com/files/wnam/misc/

Независимо от применяемого метода авторизации доступа (прозрачный, с отправкой или


получением СМС) файл будет одним и тем же. Его цель - при обращении пользователя к
хотспоту перевести сессию авторизации на сервер WNAM.

Вы обязаны в этом файле самостоятельно, в текстовом редакторе, перед загрузкой его в


маршрутизатор, изменить следующие строки:

action="http://172.16.130.5:8080/cp/mikrotik" - указать ссылку (путь) до сервера WNAM, вместе


с TCP-портом. Порт должен соответствовать тому, на котором вы ранее настроили веб-сервер to
mcat для работы веб-интерфейса WNAM (80 либо 8080). Обязательно сохранить параметры
"/cp/mikrotik" в конце ссылки. Даже если вы используете несколько хотспотов или несколько
маршрутизаторов Mikrotik, ссылка должна быть одной и той же.

name="site-id" value = "1" - указать ключ площадки, её порядковый номер. Если вы используете
несколько площадок в настройках WNAM, пересекающиеся IP-адреса, и используете
таргетированный по площадкам показ рекламы, требуется указывать уникальный ключ (номер)
каждой площадки.

Также можно заменить файл login.html, он позволяет отображать абоненту осмысленное


сообщение в случае ошибки.

На этом настройка маршрутизатора Mikrotik закончена.

В административном интерфейсе WNAM необходимо создать объект типа "Сервер доступа",


выбрать тип "Mikrotik", указать его IP-адрес, логин и пароль для доступа в режиме "для чтения"
для определения имен абонентов:
Внимание! Если вы сталкиваетесь с ситуацией, когда после разрыва сессии по тайм-ауту
устройство абонента не распознает эту ситуацию и не отображает абоненту мини-браузер,
можно попробовать сбрасывать неактивные записи об устройствах из таблицы хостов хотспота.
Для этого можно воспользоваться следующим рецептом (http://wiki.mikbill.ru/billing/nas_access_s
erver/mikrotik_hosts):

Подключаемся к Mikrotik через Winbox

Перейдите в меню System|Scheduler и добавьте новый инстанс


Настраиваем все как на скрине, а в поле On Event поместим следующий код

:foreach i in [ /ip hotspot host find where authorized =no and bypassed =no ] do={
/ip hotspot host remove $i
}

Скрипт будет удалять неавторизованные хосты соглавно расписания.

3 Создадим еще один инстанс


Настроим все как на скрине, а в поле On Event поместим следующий код

:foreach i in [ /ip hotspot host find where idle-time>00:01:00 ] do={


/ip hotspot host remove $i
}

Этот скрипт будет удалять все сессии, время простоя которых больше одной минуты.

Маршрутизатор OpenWrt/dd-wrt с порталом CoovaChilli


Начиная с версии 1.3.886 WNAM поддерживает прямое взаимодействие с порталом перехвата,
организованном при помощи программного обеспечения CoovaChilli (https://coova.github.io/),
которое является наследником Chillispot (http://www.chillispot.org/)

CoovaChilli широко применяется в качестве портала перехвата (хотспота) на прошивках Lede


Project (https://lede-project.org/), OpenWrt (https://openwrt.org/) и dd-wrt (http://www.dd-wrt.co
m/). Эти прошивки устанавливаются взамен заводских на сотнях типов различных устройств
(точек доступа). Таким образом, практически любую "бытовую" точку доступа можно превратить
в хотспот, полностью взаимодействующий с системой управления Wi-Fi доступом WNAM.

Для полноценной настройки WNAM для взаимодействия с хотспотом на OpenWrt/dd-wrt


необходимо выполнить следующие действия:

1. Проверка совместимости и выбор прошивки


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

https://wiki.openwrt.org/toh/start (более предпочтительный тип прошивки)

http://www.dd-wrt.com/site/support/router-database , http://www.dd-wrt.com/site/support/other-d
ownloads

Внимание: самостоятельно перепрошивая ваш роутер открытой и бесплатной прошивкой, вы


лишаетесь оригинальной гарантии производителя устройства.

Внимание: ООО "Нетамс" не оказывает бесплатных консультаций по выбору прошивки,


перепрошивке устройств, восстановлению прошитых устройств после сбоев и так далее.

2. Выбор прошивки и установка её на ваше устройство

Для установки прошивки вы должны воспользоваться инструкциями на сайте, где вы скачали


прошивку, форумами и поисковыми системами.

После установки прошивки вы должны произвести её первоначальную настройку: пароль, IP


адреса внутреннего и внешнего интерфейсов, трансляция адресов, настройка WLAN и так далее.

Дальнейшие инструкции будут приведены в расчете на установленную прошивку OpenWrt Chaos


Calmer 15.05 на точку доступа Ubiquiti UniFi. В этой точке доступа нет LAN интерфейса,
встроенный единственный порт используется как WAN.

3. Установка пакетов на точку доступа

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

coova-chilli
dnsmasq
dropbear
kmod-ipt-conntrack
kmod-mac80211
kmod-tun
softflowd

OpenWrt не имеет графических средств настройки пакетов, поэтому настроим их позже.

4. Базовая настройка роутера

Необходимо настроить беспроводной интерфейс роутера: создать SSID и назначить


IP-адресацию на интерфейсе br-lan. Внимание: поскольку CoovaChilli использует туннели,
пользователи гостевого портала не будут получать IP адреса из этой сети, для этого необходимо
отключить dhcp сервис на этом интерфейсе. Следовательно, выбор подсети для "внутреннего"
интерфейса - дело произвольное и можно указать unmanaged. Скриншоты основных окон
настройки приведены ниже:
В данном примере используются:

Адрес WAN интерфейса: 172.16.130.3/24


Адрес LAN интерфейса: 10.130.4.1/24
SSID (имя сети): OpenWrt, не скрытая, без пароля

Внимание: ООО "Нетамс" не оказывает бесплатных консультаций по настройке OpenWrt

5. Настройка CoovaChilli

Портал перехвата CoovaChilli использует туннельные интерфейсы и сложную схему с генерацией


конфигурационных файлов из файла-описания. Подробнее про это можно почитать здесь: https:
//wiki.openwrt.org/doc/howto/wireless.hotspot.coova-chilli

Для настройки необходимо отредактировать единственный конфигурационный файл /etc/config/c


hilli, пример которого (с комментариями) приведен ниже:
config chilli
# option disabled 1
# Your HotSpotSystem account details
option radiusnasid "openwrt"
option radiussecret "secret" # "" FreeRADIUS-
option uamsecret "" #
# WISPr settings
# It is possible your provider has specific demands on these values. But for WISPr the values
are
# as shown below. (cc=2-digit ISO country; idd=phone-country;ac=phone-area-code)
# example: "isocc=se,cc=46,ac=584,network=CampingTiveden"
# the <SSID> does not actually need to be the SSID, but WISPr RFC calls it SSID
# the <sub-id> is just so you know which device on your network gave the problem. Can be
Alfanumeric.
option locationname "K18-VM" # ,
option radiuslocationname "<SSID>,<sub-ID>"
option radiuslocationid "isocc=<cc>,cc=<idd>,ac=<ac>,network=<SSID>"
# Radius parameters (change to the one for your provider)
option radiusserver1 172.16.130.5 # IP RADIUS , WNAM
option radiusserver2 172.16.130.5 # IP RADIUS , WNAM,
# Your device's LAN interface on which to put the hotspot
option dhcpif br-lan # ,
# set DNS to whatever is fastest. On slow saturated lines, best use your local router for
caching.
# on fast & wide lines, use or Google or your ISP's dns, whichever is fastest
option dns1 8.8.8.8 # DNS,
option dns2 8.8.4.4 # DNS,
# Tunnel and Subnet
option tundev 'tun0'
option net 192.168.180.0/22 # : IP . , ,
option radiuslisten 192.168.182.1 # : . , , " " WNAM
option lease 86400 # 1 day
option leaseplus 600 # plus 10 minutes
# Universal access method (UAM) parameters
option uamserver "http://172.16.130.5:8080/cp/coovachilli" # , WNAM
option uamuiport 4990 # HotSpot UAM "UI" Port (on subscriber network)
option uamanydns 1
#option uamaliasip 1.0.0.1 # default: http://1.0.0.1 will goto login page
option uamaliasname login # http://login will goto login page
#option uamlogoutip 1.0.0.0 # default: http://1.0.0.0 will logout
# # default: http://logout will logout
option nouamsuccess 1 # no success page, to original requested URL
# Hosts; services; network segments the client can access without first authenticating (walled
garden)
# Hosts are evaluated every 'interval', but this does not work well on multi-homed
(multi-IP'ed) hosts, use IP instead.
option uamallowed "172.16.130.5" # IP WNAM
# Domain suffixes the client can access without first authenticating (walled garden)
# Host on the domain are checked by spying on DNS requests, so this does work for multi-homed
hosts too.
#option uamdomain
".paypal.com,.paypalobjects.com,.worldpay.com,.rbsworldpay.com,.adyen.com,.hotspotsystem.com"
# Various debug and optimization values
option swapoctets 1 # swap input and output octets
option interval 3600 # config file and host lookup refresh
# Add the chilli firewall rules
option ipup '/etc/chilli/up.sh'
option ipdown '/etc/chilli/down.sh'

Согласно приведенной выше конфигурации особо важными параметрами надо считать


следующие:

option radiussecret - пароль взаимодействия с WNAM по протоколу RADIUS


option radiusserver1 - адрес сервера на котором работает FreeRADIUS (обычно совпадает с
адресом сервера WNAM)
option net - подсеть с IP адресами клиентов (площадка)
option radiuslisten - виртуальный адрес сервера доступа
option uamserver - ссылка на внешний портал авторизации - сервер WNAM
option uamallowed - разрешенный адрес - сервер WNAM

Внимание:

1. в некоторых случаях, в фаерволе необходимо дополнительно разрешить маршрутизацию


между интерфейсом авторизации (br-lan в нашем случае) и интерфейсом на котором
находится сервер WNAM.
2. поскольку вы используете частную адресацию на сетевых интерфейсах, к которым
подключены абоненты, вы должны для всех своих площадок и серверов доступа выбирать
уникальные IP адреса и подсети.

Запустите CoovaChilli: /etc/init.d/chilli start

Если все в порядке, то в выводе команды ps вы обнаружите:


chilli -c /var/run/chilli_cfg021cfa.conf --pidfile /var/run/chilli_cfg021cfa.pid --cmdsocket
/var/run/chilli_cfg021cfa.sock --unixipc /var/run/chilli_cfg021cfa.ipc

6. Настройка softflowd

Для отслеживания посещенных абонентами ресурсов вам необходимо установить пакет softflowd,
который является коллектором NetFlow данных. После установки отредактируйте его
конфигурационный файл /etc/config/softflowd:
config softflowd
option enabled '1'
option interface 'tun0'
option pcap_file ''
option timeout ''
option max_flows '8192'
option host_port '172.16.130.5:20002'
option pid_file '/var/run/softflowd.pid'
option control_socket '/var/run/softflowd.ctl'
option export_version '5'
option hoplimit ''
option tracking_level 'full'
option track_ipv6 '0'
option sampling_rate '1'

Важных параметров три: имя интерфейса, на котором проводить сбор данных (tun0), частота
сэмплинга (sampling_rate=1), адрес и порт коллектора, это внешний адрес сервера WNAM и порт
20002 (172.16.130.5:20002)

Внимание: поскольку softflowd не позволяет указывать адрес интерфейса-источника трафика


NetFlow, он будет выбран автоматически, и обычно это WNAM интерфейс, что создает
дополнительную задачу при настройке сервера доступа (ниже).

Запустите softflowd: /etc/init.d/softflowd restart

7. Настройка WNAM

В административном интерфейсе WNAM необходимо


добавить, как обычно, запись о сервере доступа:

Обратите внимание, что в настройках сервера


доступа в качестве его адреса указан виртуальный
адрес 192.168.182.1 (это адрес, который будет
выставлен в поле NAS-IP-Address поступающих от
сервера доступа пакетов RADIUS). При этом сами
RADIUS и NetFlow пакеты будут поступать с адреса
172.16.130.3. Необходимо этот адрес прописать в
зеленом поле комментариев в формате "netflow_ip=1
72.16.130.3", а также в секции клиентов файла
настроек FreeRADIUS /etc/freeradius/clients.conf :
client 172.16.130.0/24 {
secret=secret
}

Затем необходимо создать запись о площадке:


Обратите внимание, что здесь задана клиентская
подсеть 192.168.180.0/22, так же как она указана в /
etc/config/chilli на роутере. Необходимо также
выбрать ранее созданный "разрешенный сервер
доступа".
CoovaChilli поддерживает следующие типы
ограничений:
по объему трафика
по длительности сессии доступа
по скорости передачи данных

При этом все остальные ограничения WNAM (например, число авторизационных СМС, рабочие
часы), а также параметры авторизации, перенаправления, социальные сети и т.п. так же
полностью поддерживаются независимо от типа устройства доступа. В настоящий момент не
реализован принудительный сброс сессии абонента/всех сессий абонента.

8. Проверка

При подключении к беспроводной сети на роутере


OpenWrt, на котором работает настроенный хотспот
CoovaChilli, происходит следующее.
В момент попытки получения мобильным устройством
абонента IP адреса CoovaChilli перехватывает этот
запрос, выделяет абоненты адрес из пула, создает
соответствующие правила в iptables и запорачивает
трафик в туннельный интерфейс tun0. При попытке
абонентского устройства обратиться по HTTP-ссылке
производится редирект сессии абонента на внешний
портал авторизации согласно настройкам в
/etc/config/chilli, в нашем примере это http://172.16.1
30.5:8080/cp/coovachilli. Это - ссылка на сервер
WNAM. Обратите внимание на обязательные
параметры /cp/coovachilli в URL. При редиректе
дополнительно передаются следующие параметры
роутера (пример):
res=notyet
uamip=192.168.182.1
uamport=3990
challenge=161c53097a163d8263c94d720676f431
called=DC-9F-DB-89-80-C9
mac=4C-57-CA-XX-XX-XX
ip=192.168.180.5
nasid=openwrt
sessionid=5807bc5900000002
userurl=http%3a%2f%2fbash.im%2f
md=8E71CEACE13C1906A5D1D1F9C2EC19E6

Все эти параметры обрабатываются сервером WNAM


по стандартной для всех типов устройств схеме
(проверка авторизованности по МАС адресу,
авторизация при необходимости, показ рекламы,
вход через соцсети и т.п.). По завершении всех
процессов производится допуск абонента в сеть, то
есть абонентскому браузеру выдается автоматически
отправляемая на форма, которая вызывает попытку
авторизацию по МАС-адресу на портале CoovaChilli
(192.168.182.1:3390). CoovaChilli, в свою очередь,
использует RADIUS-авторизацию у WNAM, и начинает
сессию доступа, что отображается в RADIUS-пакетах
(freeradius в отладочном режиме):
rad_recv: Access-Request packet from host 172.16.130.3 port 47961, id=81, length=310
ChilliSpot-Version = "1.3.1-svn"
User-Name = "4C:57:CA:XX:XX:XX"
User-Password = "password"
Service-Type = Login-User
Acct-Session-Id = "5814ac5400000003"
Framed-IP-Address = 192.168.180.5
NAS-Port-Type = Wireless-802.11
NAS-Port = 3
NAS-Port-Id = "00000003"
Calling-Station-Id = "4C-57-CA-XX-XX-XX"
Called-Station-Id = "DC-9F-DB-89-80-C9"
NAS-IP-Address = 192.168.182.1
NAS-Identifier = "openwrt"
WISPr-Location-ID = "isocc=<cc>,cc=<idd>,ac=<ac>,network=<SSID>"
WISPr-Location-Name = "<SSID>,<sub-ID>"
WISPr-Logoff-URL = "http://192.168.182.1:3990/logoff"
Message-Authenticator = 0x0d4bdbdbd05dc45b3d3d2fe9eb2340ef
rad_recv: Accounting-Request packet from host 172.16.130.3 port 35749, id=14, length=252
ChilliSpot-Version = "1.3.1-svn"
ChilliSpot-Attr-10 = 0x00000001
Event-Timestamp = " 29 2016 17:08:14 MSK"
User-Name = "4C:57:CA:XX:XX:XX"
Acct-Status-Type = Start
Acct-Session-Id = "5814ac5400000003"
Framed-IP-Address = 192.168.180.5
NAS-Port-Type = Wireless-802.11
NAS-Port = 3
NAS-Port-Id = "00000003"
Calling-Station-Id = "4C-57-CA-XX-XX-XX"
Called-Station-Id = "DC-9F-DB-89-80-C9"
NAS-IP-Address = 192.168.182.1
NAS-Identifier = "openwrt"
WISPr-Location-ID = "isocc=<cc>,cc=<idd>,ac=<ac>,network=<SSID>"
WISPr-Location-Name = "<SSID>,<sub-ID>"

Одновременно в административном интерфейсе WNAM появится запись о сессии:

Она может также сопровождаться детализацией трафика по потокам, если softflowd настроен
верно:
На этом настройка OpenWrt/CoovaChilli/WNAM завершена.

Маршрутизатор pfSense
Поддержка взаимодействия WNAM с маршрутизатором pfSense (http://www.pfsense.org) появила
сь, начиная с версии ПО WNAM 1.2.567.

pfSense представляет собой основанный на кодовой базе ОС FreeBSD специализированный


дистрибутив, позволяющий организовать на основе x86 компьютера полноценный
маршрутизатор, шлюз сети Internet, с большим набором возможностей и управлением через
веб-интерфейс. Переда началом настойки взаимодействия вашего сервера pfSense c WNAM вы
должны настроить и отладить сам pfSense, в том числе настроить сервис DHCP, маршрутизацию,
правила межсетевого экранирования и трансляции адресов между локальной (где находятся
любый точки доступа, и абоненты Wi-Fi), и глобальной (внешней, Internet) сетью.

Внимание! Поддерживается pfSense версий 2.2.х, с версией 2.3 могут быть проблемы.

При работе в качестве шлюза с авторизацией доступа pfSense использует встроенный компонент
Captive Portal. Необходимо создать новый портал через меню "Services - Captive Portal". Портал
здесь называется "зоной":

Необходимо задать имя портала (зоны), интерфейс, на котором он будет работать (это
интерфейс LAN, на котором находятся Wi-Fi точки доступа, и их абоненты).

Далее, нажав на кнопку "е", необходимо установить параметры портала, как показано на
рисунке:
Ниже перечислены параметры портала, которые необходимо заполнить:

Параметр Описание

Interfaces Выбрать LAN - имя интерфейса, на котором


будет работать портал

Idle timeout Тайм-аут неактивности пользователя (сессия


закончится, если не будет трафика указанное
количество минут)

Hard timeout Абсолютный тайм-аут сессии пользователя, в


минутах. Может быть переопределен в
настройках "Ограничения"
Pre-authentication redirect URL Указать ссылку на сервер WNAM, в формате

http://адрес_сервера:порт/cp/pfsense

например

http://10.200.0.2/cp/pfsense

Per-user bandwidth restriction Установите значение ограничений скорости


передачи для абонента (в кбит/с), либо
просто включите параметр (Enable per-user
bandwidth restriction), поля ограничений не
заполняйте,

и укажите значение в меню WNAM


("Ограничения") глобально или для площадки

Authentication RADIUS Authentication - RADIUS Protocol - PAP

Primary RADIUS server - IP address IP-адрес сервера WNAM, например 10.200.0.2

Primary RADIUS server - Shared secret Пароль взаимодействия с RADIUS-сервером,


должен совпадать с аналогичным параметром
в файле /etc/freeradius/clients.conf на сервере
WNAM

Accounting send RADIUS accounting packets

Accounting updates interim update

RADIUS NAS IP attribute WAN, указать имя (и адрес) внешнего


сетевого интерфейса

Session-Timeout Use RADIUS Session-Timeout attributes

Type default

MAC address format default

Portal page contents взять файл по ссылке: http://www.netams.co


m/files/wnam/misc/index.php и загрузить его в
данном пункте меню настроек.

при помощи этого файла производится


перенаправление перехваченной порталом
pfSense HTTP-сессии абонента на сервер
WNAM для целей авторизации

В файле, который определяет перенаправление на внешний портал авторизации (сервер


WNAM), index.php, необходимо изменить идентификатор площадки (параметр "site-id"), указав
номер площадки из конфигурации WNAM. В противном случае будет подставляться имя зоны (в
примере - HomeK18). Вы также можете создавать зоны с именами (идентификаторами),
численно равными номеру площадки из WNAM. Всё это требуется, если вы используете более
чем одну зону на одном портале pfSense.
Необходимо также разрешить трафик в обход портала pfSense для еще не авторизованных
клиентов. Как минимум, до DNS-сервера (в примере - до сервера Google 8.8.8.8), и до самого
портала авторизации WNAM (в примере: 172.16.130.5):

Для учёта сведений по потокам трафика (на какие внешние ресурсы обращались абоненты),
необходимо организовать сбор сведений по трафику и отправку из в сторону WNAM по
протоколу NetFlow. Для этого вы должны установить и настроить пакет softflowd (включен в
набор штатных пакетов pfSense). Параметры настройки приведены ниже:
Вы должны указать интерфейс (LAN), IP-адрес сервера WNAM, порт коллектора (20002),
протокол (5), тип трекинга (full), а также таймауты. Затем необходимо включить softflowd в меню
"Status - Services".

Внимание: сбор статистики по объему трафика ведется по значениям счетчиков, получаемых в


сообщениях RADIUS Accounting-Interim, а статистика по самому трафику (кто и какие ресурсы
посещал) - по NetFlow.

Внимание: WNAM устанавливает параметр отправки промежуточных сообщений аккаунтинга


(счетчики трафика абонента) в 5 минут (по умолчанию в pfSense - 1 минута).

Для определения имен устройств абонентов необходимо дополнительно включить механизм


информирования сервера WNAM о присвоении IP-адреса абонентским устройствам встроенным в
pfSense DHCP-сервером.

1. Необходимо настроить и проверить сам DHCP-сервер. Затем, поскольку вы будете вручную


вносить изменения в текстовый конфигурационный файл сервера, через Web-интерфейс
донастраивать DHCP-сервер нельзя.
2. Необходимо зайти в консоль (shell) pfSense и установить пакеты:
a. pkg bootstrap
b. pkg install perl5
c. pkg install p5-IO-Socket-IP
d. pkg install joe
3. Необходимо создать файл-скрипт оповещения WNAM: /usr/local/bin/joe
/usr/local/bin/wnam-dhcpd-bridge.pl
#!/usr/local/bin/perl
use constant WNAM_HOST => "172.16.130.5";
use IO::Socket::INET;
$| = 1;
my $sock = new IO::Socket::INET(PeerAddr => WNAM_HOST, PeerPort => 20001, Proto => 'tcp',
Timeout => 0.5) or undef $sock;
if (defined $sock) {
if (defined $ARGV[0]){
my $type = $ARGV[0];
my $ip = $ARGV[1];
my $mac = uc $ARGV[2];
my $name = $ARGV[3];
if (defined $type and defined $ip and defined $mac) {
print $sock "DHCP type=$type ip=$ip mac=$mac name=$name\n";
}
}
}
4. Необходимо дать скрипту права на исполнение: chmod
+x /usr/local/bin/wnam-dhcpd-bridge.pl
5. Необходимо отредактировать конфигурационный файл сервера DHCP: /usr/local/bin/joe
/var/dhcpd/etc/dhcpd.conf и добавить в него строки:

on commit {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
set clhost = pick-first-value(host-decl-name, option fqdn.hostname, option host-name,
"");
execute("/usr/local/bin/wnam-dhcpd-bridge.pl", "commit", clip, clhw, clhost);
}

6. Последний шаг - перезапуск сервиса DHCP: "Services - DHCP Server".

После завершения настройки pfSence необходимо


создать сервер доступа в конфигурации WNAM,
указав соответствующий тип, и внешний (WAN) адрес
pfSense. Пароль не нужен.
Внимание! Если у вас используются пересекающиеся
IP-подсети, необходимо модифицировать под pfSense (первый раз, и каждый раз после
обновления) для включения возможности передачи в RADIUS-пакетах идентификатора

площадки.
Допустим, площадка оказания услуги имеет номер 9.

Зайдите в интерфейс командной строки и установите редактор:


pkg add http://pkg.freebsd.org/freebsd:10:x86:64/release_3/All/nano-2.4.3.txz

Затем необходимо отредактировать файлы:

[2.3.2-RELEASE][admin@pfsense.k18.netams.com]/etc/inc: nano
/usr/local/captiveportal/radius_authentication.inc

// Extra data to identify the client and nas


$rauth->putAttribute(RADIUS_FRAMED_IP_ADDRESS, $clientip, addr);
$rauth->putAttribute(RADIUS_CALLED_STATION_ID, $calledstationid);
$rauth->putAttribute(RADIUS_CALLING_STATION_ID, $callingstationid);
$rauth->putVendorAttribute(14122, 1, "9");

// Send request
$result = $rauth->send();
и далее:
[2.3.2-RELEASE][admin@pfsense.k18.netams.com]/etc/inc: nano
/usr/local/captiveportal/radius_accounting.inc
$racct->putAttribute(RADIUS_FRAMED_IP_ADDRESS, $clientip, "addr");
$racct->putAttribute(RADIUS_CALLED_STATION_ID, $calledstationid);
$racct->putAttribute(RADIUS_CALLING_STATION_ID, $callingstationid);
$racct->putVendorAttribute(14122, 1, "9");

// Send request
$result = $racct->send();

// Evaluation of the response

После сохранения при попытке авторизации в лог-файле RADIUS-сервера получится:

rad_recv: Access-Request packet from host 172.16.130.4 port 40167, id=96, length=138
NAS-IP-Address = 172.16.130.4
NAS-Identifier = "pfsense"
User-Name = "4C:57:CA:2C:0F:4C"
User-Password = "password"
Service-Type = Login-User
NAS-Port-Type = Ethernet
NAS-Port = 2042
Framed-IP-Address = 172.16.70.48
Called-Station-Id = "172.16.130.4"
Calling-Station-Id = "4c:57:ca:2c:0f:4c"
WISPr-Location-ID = "9"
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+group authorize {
++[preprocess] = ok
[pap] WARNING! No "known good" password found for the user. Authentication may fail because of
this.
++[pap] = noop
++[chap] = noop
rlm_perl: WNAM Q: AUTH NAS-Port-Type=Ethernet Called-Station-Id=172.16.130.4
NAS-IP-Address=172.16.130.4 Calling-Station-Id=4c:57:ca:2c:0f:4c Framed-IP-Address=172.16.70.
48 NAS-Identifier=pfsense User-Name=4C:57:CA:2C:0F:4C User-Password=password
Service-Type=Login-User WISPr-Location-ID=9 NAS-Port=2042
rlm_perl: RECV: IO::Socket::INET=GLOB(0x1456770)
rlm_perl: WNAM A: OK Acct-Interim-Interval=300 Session-Timeout=300 (48)
rlm_perl: authorize reply: .OK.
rlm_perl: Added pair NAS-Port-Type = Ethernet
rlm_perl: Added pair Called-Station-Id = 172.16.130.4
rlm_perl: Added pair NAS-IP-Address = 172.16.130.4
rlm_perl: Added pair Calling-Station-Id = 4c:57:ca:2c:0f:4c
rlm_perl: Added pair Framed-IP-Address = 172.16.70.48
rlm_perl: Added pair NAS-Identifier = pfsense
rlm_perl: Added pair User-Name = 4C:57:CA:2C:0F:4C
rlm_perl: Added pair User-Password = password
rlm_perl: Added pair Service-Type = Login-User
rlm_perl: Added pair WISPr-Location-ID = 9
rlm_perl: Added pair NAS-Port = 2042
rlm_perl: Added pair Acct-Interim-Interval = 300
rlm_perl: Added pair Session-Timeout = 300
rlm_perl: Added pair Cleartext-Password = password
rlm_perl: Added pair Auth-Type = PAP
++[perl] = ok
+} # group authorize = ok
Found Auth-Type = PAP
# Executing group from file /etc/freeradius/sites-enabled/default
+group PAP {
[pap] login attempt with password "password"
[pap] Using clear text password "password"
[pap] User authenticated successfully
++[pap] = ok
+} # group PAP = ok
WARNING: Empty post-auth section. Using default return values.
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
Sending Access-Accept of id 96 to 172.16.130.4 port 40167
Acct-Interim-Interval += 300
Session-Timeout += 300
Finished request 36.
Going to the next request
Waking up in 4.9 seconds.

rad_recv: Accounting-Request packet from host 172.16.130.4 port 64326, id=19, length=159
NAS-IP-Address = 172.16.130.4
NAS-Identifier = "pfsense"
User-Name = "4C:57:CA:2C:0F:4C"
Acct-Status-Type = Start
Acct-Authentic = RADIUS
NAS-IP-Address = 172.16.130.4
NAS-Identifier = "pfsense"
NAS-Port-Type = Ethernet
NAS-Port = 2042
Acct-Session-Id = "214606a2575e53cd"
Framed-IP-Address = 172.16.70.48
Called-Station-Id = "172.16.130.4"
Calling-Station-Id = "4c:57:ca:2c:0f:4c"
WISPr-Location-ID = "9"
# Executing section preacct from file /etc/freeradius/sites-enabled/default
+group preacct {
++[preprocess] = ok
[acct_unique] Hashing 'NAS-Port = 2042,NAS-Identifier = "pfsense",NAS-IP-Address =
172.16.130.4,Acct-Session-Id = "214606a2575e53cd",User-Name = "4C:57:CA:2C:0F:4C"'
[acct_unique] Acct-Unique-Session-ID = "5e89ff48449fd085".
++[acct_unique] = ok
+} # group preacct = ok
# Executing section accounting from file /etc/freeradius/sites-enabled/default
+group accounting {
[detail] expand: %{Packet-Src-IP-Address} -> 172.16.130.4
[detail] expand:
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y
%m%d -> /var/log/freeradius/radacct/172.16.130.4/detail-20170209
[detail]
/var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y
%m%d expands to /var/log/freeradius/radacct/172.16.130.4/detail-20170209
[detail] expand: %t -> Thu Feb 9 19:51:29 2017
++[detail] = ok
[radutmp] expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
[radutmp] expand: %{User-Name} -> 4C:57:CA:2C:0F:4C
++[radutmp] = ok
rlm_perl: WNAM Q: ACCT NAS-Port-Type=Ethernet Called-Station-Id=172.16.130.4
Acct-Session-Id=214606a2575e53cd Acct-Status-Type=Start NAS-IP-Address=172.16.130.4
Calling-Station-Id=4c:57:ca:2c:0f:4c Framed-IP-Address=172.16.70.48 NAS-Identifier=pfsense
Acct-Authentic=RADIUS User-Name=4C:57:CA:2C:0F:4C WISPr-Location-ID=9 NAS-Port=2042
Acct-Unique-Session-Id=5e89ff48449fd085
rlm_perl: RECV: IO::Socket::INET=GLOB(0x1456770)
rlm_perl: WNAM A: OK (2)
rlm_perl: Added pair NAS-Port-Type = Ethernet
rlm_perl: Added pair Called-Station-Id = 172.16.130.4
rlm_perl: Added pair Acct-Session-Id = 214606a2575e53cd
rlm_perl: Added pair Acct-Status-Type = Start
rlm_perl: Added pair NAS-IP-Address = 172.16.130.4
rlm_perl: Added pair NAS-IP-Address = 172.16.130.4
rlm_perl: Added pair Calling-Station-Id = 4c:57:ca:2c:0f:4c
rlm_perl: Added pair Framed-IP-Address = 172.16.70.48
rlm_perl: Added pair NAS-Identifier = pfsense
rlm_perl: Added pair NAS-Identifier = pfsense
rlm_perl: Added pair Acct-Authentic = RADIUS
rlm_perl: Added pair User-Name = 4C:57:CA:2C:0F:4C
rlm_perl: Added pair WISPr-Location-ID = 9
rlm_perl: Added pair NAS-Port = 2042
rlm_perl: Added pair Acct-Unique-Session-Id = 5e89ff48449fd085
++[perl] = ok
[attr_filter.accounting_response] expand: %{User-Name} -> 4C:57:CA:2C:0F:4C
attr_filter: Matched entry DEFAULT at line 12
++[attr_filter.accounting_response] = updated
+} # group accounting = updated
Sending Accounting-Response of id 19 to 172.16.130.4 port 64326
Finished request 37.
Cleaning up request 37 ID 19 with timestamp +1486
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 36 ID 96 with timestamp +1486
Ready to process requests.

Общие правила получения статистики по трафику


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

1. Для всех типов устройств доступа, кроме "Маршрутизатор Linux", счётчики по трафику
получаются обсчётом поступающих сообщений типа RADIUS Acct.
2.
2. Для устройства доступа "Маршрутизатор Linux" счетчики трафика берутся из статистики
протокола NetFlow, потому что RADIUS не используется вовсе.
3. Чтобы RADIUS Acct пакеты от серверов доступа корректно воспринимались ядром системы
WNAM, необходимо:
a. Указывать параметр "Использовать счетчики аккаунтинга" в настройках сервера
доступа
b. Убедиться, что IP-адрес сервера доступа, указанный в его настройках, совпадает с
IP-адресом, с которого происходит отправка пакетов RADIUS самим сервером
доступа, и совпадает со значением параметра "MAS-IP-Address" в RADIUS-пакете
c. Этот IP адрес должен быть указан в файле /etc/freeradius/clients.conf (в виде адреса
или в подсети), а также совпадают ключ (пароль) и там, и на сервере доступа
d. Работающий на сервере WNAM или в вашей сети межсетевой экран пропускает
UDP-пакеты от сервера доступа до сервера WNAM по портам 1812 и 1813
4. При использовании RADIUS Acct для типовых устройств сбор статистики NetFlow позволяет
делать записи о "потоках трафика" в привязке к сессиям, чтобы можно было определить,
на какие внешние ресурсы (IP-адреса и порты) обращался абонент.
5. Чтобы NetFlow пакеты от устройств доступа корректно воспринимались ядром системы
WNAM, необходимо:
a. Указывать параметр "Принимать детализацию потоков NetFlow" в настройках сервера
доступа
b. Убедиться, что IP-адрес сервера доступа, указанный в его настройках, совпадает с
IP-адресом, с которого происходит отправка пакетов NetFlow самим сервером доступа
c. Использовать версию 5 протокола NetFlow (начиная с версии 1.2.685 поддерживается
и версия 9)
d. Работающий на сервере WNAM или в вашей сети межсетевой экран пропускает
UDP-пакеты от сервера доступа до сервера WNAM по порту 20002

Внимание! Если вас интересует учёт ссылок, которые посещал абонент, то примите к сведению
следующее:

Потенциально WNAM может принимать эти сведения, если они были собраны агентом
wnam_agent и отправлены на порт UDP:20001 сервера. Агент работает путём прослушивания
сетевого интерфейса (в режиме pcap), разбора TCP/HTTP сессий, поиска параметров GET/POST и
Host: в трафике.

Однако, такой подход имеет множество недостатков, из-за которых определение посещенных
ссылок на практике не используется. Вот перечень причин:

1. Посещение пользователем одной веб-страницы де-факто приводит к тому, что браузер


пользователя запрашивает сотни ссылок со сторонних ресурсов (реклама, CDN, скрипты и
т.п.), из которых вычислить "основной" ресурс зачастую невозможно
2. Значительная часть сайтов работает по протоколу HTTPS, разбор трафика которых
невозможен
3. Использование современных методов работы браузеров (например, через AJAX) сводит на
нет поиск параметров ссылки
4. Использование "тяжелого" контента типа видео отрицательно сказывается на
производительности сервера при разборе трафика

Определить, посещал ли пользователь заданный сайт можно, если использовать учёт потоков
трафика через NetFlow, и затем воспользоваться отчетом типа "Розыск пользователя по времени,
потокам трафика и посещенным URL". Если указать URL ресурса, произойдет преобразование
имени в IP-адрес, и затем поиск по таблице потоков по IP адресу.

Внимание! Сбор статистики NetFlow приводит к быстрому росту базы данных mongodb, так что
вы должны следить за тем, чтобы место на диске сервера WNAM внезапно не закончилось.

Шлюз доступа Zyxel UAG


Начиная с версии 1.4.1345 WNAM поддерживает взаимодействие с шлюзами унифицированного
доступа Zyxel UAG. Шлюзя является и маршрутизатором Интернет, и контроллером точек
доступа, имеет в себе встроенный хотспот (портал перехвата), с которым взаимодействует
WNAM.

Настройка шлюза в целом повторяет настройку контроллера NXC. Настройка WNAM такая же
(выберите Zyxel NXC в качестве типа сервера доступа).

В приведенном ниже примере предположеим, что:

Сервер WNAM имеет адрес 10.8.8.189


Контроллер имеет адрес 10.8.8.11
Беспроводные абоненты имеют адреса в сети 172.16.0.0/16

Скриншоты настроек контроллера приведены ниже:


Конфигурационный файл контроллера приведен ниже:
! saved at 2017-09-18 12:12:41
! model: UAG5100
! firmware version: 4.18(AAPN.0)
!
interface-name ge1 wan1
interface-name ge2 wan2
interface-name ge3 lan1
interface-name ge4 lan2
interface-name ge5 dmz
!
aaa group server radius wnam
server encrypted-key $4$...
server acct-interim-interval 5
server acct-retry-count 3
server group-attribute 11
server timeout 5
server nas-ip 10.8.8.11
case-sensitive
server acct-secret ...
server acct-interim activate
server host 10.8.8.189 auth-port 1812
server acct-address 10.8.8.189 acct-port 1813
!
username admin encrypted-password $4... user-type admin
username radius-users user-type ext-user
username radius-users logon-re-auth-time 10
username radius-users logon-time-setting default
!
aaa authentication WNAM local group wnam
!
port-grouping lan1
port 3
!
port-grouping lan2
port 4
!
port-grouping dmz
port 5
!
account pppoe WAN1_PPPoE_ACCOUNT
!
account pppoe WAN2_PPPoE_ACCOUNT
!
ip dhcp pool Network_Pool_LAN1
network 172.16.0.0 255.255.0.0
default-router 172.16.0.1
first-dns-server Device
starting-address 172.16.0.20 pool-size 4096
lease 1 0 0
!
ip dhcp pool Network_Pool_LAN2
network 172.17.0.0 255.255.0.0
default-router 172.17.0.1
first-dns-server Device
starting-address 172.17.1.1 pool-size 4096
lease 1
!
ip dhcp pool Network_Pool_DMZ
network 172.18.0.0 255.255.0.0
default-router 172.18.0.1
first-dns-server Device
starting-address 172.18.1.1 pool-size 4096
lease 1
!
interface wan1
ip address 10.8.8.11 255.255.255.0
type external
ip gateway 10.8.8.254 metric 0
upstream 1048576
downstream 1048576
mtu 1500
!
interface wan2
ip address dhcp
type external
shutdown
!
interface lan1
ip address 172.16.0.1 255.255.0.0
ip dhcp-pool Network_Pool_LAN1
type internal
!
interface lan2
ip address 172.17.0.1 255.255.0.0
ip dhcp-pool Network_Pool_LAN2
type internal
shutdown
!
interface dmz
ip address 172.18.0.1 255.255.0.0
ip dhcp-pool Network_Pool_DMZ
type internal
shutdown
!
interface wan1_ppp
account WAN1_PPPoE_ACCOUNT
!
interface wan2_ppp
account WAN2_PPPoE_ACCOUNT
!
address-object LAN1_SUBNET interface-subnet lan1
address-object LAN2_SUBNET interface-subnet lan2
address-object DMZ_SUBNET interface-subnet dmz
address-object wnam 10.8.8.189
address-object Wan_subnet 172.16.0.0/16
!
object-group address WNAM_Group
address-object wnam
address-object Wan_subnet
!
service-object Any_UDP udp range 1 65535
service-object Any_TCP tcp range 1 65535
service-object AH protocol 51
service-object AIM tcp eq 5190
service-object NEW_ICQ tcp eq 5190
service-object AUTH tcp eq 113
service-object BGP tcp eq 179
service-object BOOTP_CLIENT udp eq 68
service-object BOOTP_SERVER udp eq 67
service-object CAPWAP-CONTROL udp eq 5246
service-object CAPWAP-DATA udp eq 5247
service-object CU_SEEME_TCP1 tcp eq 7648
service-object CU_SEEME_TCP2 tcp eq 24032
service-object CU_SEEME_UDP1 udp eq 7648
service-object CU_SEEME_UDP2 udp eq 24032
service-object DNS_TCP tcp eq 53
service-object DNS_UDP udp eq 53
service-object ESP protocol 50
service-object FINGER tcp eq 79
service-object FTP tcp range 20 21
service-object GRE protocol 47
service-object H323 tcp eq 1720
service-object HTTP tcp eq 80
service-object HTTPS tcp eq 443
service-object ICQ udp eq 4000
service-object IKE udp eq 500
service-object IMAP4 tcp eq 143
service-object IMAP4S tcp eq 993
service-object IP6to4 protocol 41
service-object IRC_TCP tcp eq 6667
service-object IRC_UDP udp eq 6667
service-object MSN tcp eq 1863
service-object MULTICAST protocol 2
service-object NEWS tcp eq 144
service-object NetBIOS_TCP1 tcp range 137 139
service-object NetBIOS_TCP2 tcp eq 445
service-object NetBIOS_UDP1 udp range 137 139
service-object NetBIOS_UDP2 udp eq 445
service-object NFS udp eq 2049
service-object NNTP tcp eq 119
service-object NTP udp eq 123
service-object PING icmp echo
service-object POP3 tcp eq 110
service-object POP3S tcp eq 995
service-object PPTP tcp eq 1723
service-object PPTP_TUNNEL protocol 47
service-object RCMD tcp eq 512
service-object RDP tcp eq 3389
service-object REAL-AUDIO tcp eq 7070
service-object REXEC tcp eq 514
service-object RLOGIN tcp eq 513
service-object ROADRUNNER_TCP tcp eq 1026
service-object ROADRUNNER_UDP udp eq 1026
service-object RTELNET tcp eq 107
service-object RTSP_TCP tcp eq 554
service-object RTSP_UDP udp eq 554
service-object SFTP tcp eq 115
service-object SMTP tcp eq 25
service-object SMTPS tcp eq 465
service-object SNMP_TCP tcp eq 161
service-object SNMP_UDP udp eq 161
service-object SNMP-TRAPS_TCP tcp eq 162
service-object SNMP-TRAPS_UDP udp eq 162
service-object SQL-NET tcp eq 1521
service-object SSDP udp eq 1900
service-object SSH_TCP tcp eq 22
service-object SSH_UDP udp eq 22
service-object STRMWORKS udp eq 1558
service-object SYSLOG udp eq 514
service-object TACACS udp eq 49
service-object TELNET tcp eq 23
service-object TFTP udp eq 69
service-object VDOLIVE tcp eq 7000
service-object VRRP protocol 112
service-object NATT udp eq 4500
service-object RIP udp eq 520
service-object OSPF protocol 89
service-object SIP udp eq 5060
service-object Kerberos-TCP tcp eq 88
service-object MS-RPC tcp eq 135
service-object LDAP-TCP tcp eq 389
service-object LPR tcp eq 515
service-object LDAPS-TCP tcp eq 636
service-object VNC5800 tcp eq 5800
service-object VNC5900 tcp eq 5900
service-object Kerberos-UDP udp eq 88
service-object LDAP-UDP udp eq 389
service-object LDAPS-UDP udp eq 636
service-object L2TP-UDP udp eq 1701
service-object RADIUS-AUTH udp eq 1812
service-object RADIUS-ACCT udp eq 1813
service-object BONJOUR udp eq 5353
service-object PRINTER_DISCOVER udp eq 8000
!
object-group service CU-SEEME
service-object CU_SEEME_TCP1
service-object CU_SEEME_TCP2
service-object CU_SEEME_UDP1
service-object CU_SEEME_UDP2
!
object-group service DNS
service-object DNS_TCP
service-object DNS_UDP
!
object-group service IRC
service-object IRC_TCP
service-object IRC_UDP
!
object-group service NetBIOS
service-object NetBIOS_TCP1
service-object NetBIOS_TCP2
service-object NetBIOS_UDP1
service-object NetBIOS_UDP2
!
object-group service ROADRUNNER
service-object ROADRUNNER_TCP
service-object ROADRUNNER_UDP
!
object-group service RTSP
service-object RTSP_TCP
service-object RTSP_UDP
!
object-group service SNMP
service-object SNMP_TCP
service-object SNMP_UDP
!
object-group service SNMP-TRAPS
service-object SNMP-TRAPS_TCP
service-object SNMP-TRAPS_UDP
!
object-group service SSH
service-object SSH_TCP
service-object SSH_UDP
!
object-group service Default_Allow_WAN_To_Device
description System Default Allow From WAN To Device
service-object AH
service-object ESP
service-object HTTPS
service-object IKE
service-object NATT
service-object GRE
service-object VRRP
!
object-group service Default_Allow_DMZ_To_Device
description System Default Allow From DMZ To Device
object-group DNS
object-group NetBIOS
service-object PRINTER_DISCOVER
!
wlan-security-profile default
mode none
eap internal default
server-auth 1 activate
server-auth 1 ip address 10.8.8.189 port 1812 secret f...
mac-auth auth-method default
wpa-psk-encrypted $4$...
!
wlan-ssid-profile default
ssid WNAM
qos wmm
security default
bandselect mode disable
bandselect drop-probe-request 8
bandselect drop-authentication 3
bandselect time-out-period 120
bandselect check-sta-interval 600
bandselect min-sort-interval 300
!
wlan-monitor-profile default
activate
scan-method auto
scan-dwell 100
!
wlan-radio-profile default
role ap
band 2.4G band-mode bgn
2g-channel 6
ch-width 20/40
dtim-period 2
beacon-interval 100
ampdu
limit-ampdu 50000
rssi-dbm -76
rssi-kickout -105
rssi-interval 2
rssi-optype 3
rssi-retrycount 6
rssi-verifytime 10
rssi-privilegetime 300
subframe-ampdu 32
amsdu
limit-amsdu 4096
block-ack
guard-interval short
tx-mask 7
rx-mask 7
dcs time-interval 720
dcs sensitivity-level high
dcs client-aware enable
dcs dcs-2g-method auto
dcs channel-deployment 3-channel
dcs dcs-5g-method auto
dcs dfs-aware enable
activate
dcs activate
!
wlan-radio-profile default2
role ap
band 5G band-mode an
2g-channel 6
ch-width 20/40
dtim-period 2
beacon-interval 100
ampdu
limit-ampdu 50000
rssi-dbm -76
rssi-kickout -105
rssi-interval 2
rssi-optype 3
rssi-retrycount 6
rssi-verifytime 10
rssi-privilegetime 300
subframe-ampdu 32
amsdu
limit-amsdu 4096
block-ack
guard-interval short
tx-mask 7
rx-mask 7
dcs time-interval 720
dcs sensitivity-level high
dcs client-aware enable
dcs dcs-2g-method auto
dcs channel-deployment 3-channel
dcs dcs-5g-method auto
dcs dfs-aware enable
!
wlan-radio-profile Disabled-2G
role ap
band 2.4G band-mode bgn
2g-channel 6
ch-width 20
dtim-period 2
beacon-interval 100
ampdu
limit-ampdu 50000
rssi-dbm -76
rssi-kickout -105
rssi-interval 2
rssi-optype 3
rssi-retrycount 6
rssi-verifytime 10
rssi-privilegetime 300
subframe-ampdu 32
amsdu
limit-amsdu 4096
block-ack
guard-interval short
tx-mask 7
rx-mask 7
dcs time-interval 720
dcs sensitivity-level high
dcs client-aware enable
dcs dcs-2g-method auto
dcs channel-deployment 3-channel
dcs dcs-5g-method auto
dcs dfs-aware enable
!
wlan-radio-profile Disabled-5G
role ap
band 5G band-mode an
2g-channel 6
ch-width 20/40
dtim-period 2
beacon-interval 100
ampdu
limit-ampdu 50000
rssi-dbm -76
rssi-kickout -105
rssi-interval 2
rssi-optype 3
rssi-retrycount 6
rssi-verifytime 10
rssi-privilegetime 300
subframe-ampdu 32
amsdu
limit-amsdu 4096
block-ack
guard-interval short
tx-mask 7
rx-mask 7
dcs time-interval 720
dcs sensitivity-level high
dcs client-aware enable
dcs dcs-2g-method auto
dcs channel-deployment 3-channel
dcs dcs-5g-method auto
dcs dfs-aware enable
!
ap-group-profile default
lan-provision model nwa5301-nj lan1 activate pvid 1
lan-provision model nwa5301-nj lan2 activate pvid 1
lan-provision model nwa5301-nj lan3 activate pvid 1
lan-provision model nwa5301-nj vlan0 activate vid 1 join lan1 untag lan2 untag lan3 untag
lan-provision model wac6502d-e lan1 activate pvid 1
lan-provision model wac6502d-e vlan0 activate vid 1 join lan1 untag
lan-provision model wac6502d-s lan1 activate pvid 1
lan-provision model wac6502d-s vlan0 activate vid 1 join lan1 untag
lan-provision model wac6503d-s lan1 activate pvid 1
lan-provision model wac6503d-s vlan0 activate vid 1 join lan1 untag
lan-provision model wac6553d-e lan1 activate pvid 1
lan-provision model wac6553d-e vlan0 activate vid 1 join lan1 untag
lan-provision model wac6103d-i lan1 activate pvid 1
lan-provision model wac6103d-i vlan0 activate vid 1 join lan1 untag
slot1 ap-profile default
slot1 ssid-profile 1 default
slot2 ap-profile default2
slot2 ssid-profile 1 default
load-balancing mode station
load-balancing max sta 10
load-balancing traffic level high
load-balancing alpha 5
load-balancing beta 10
load-balancing sigma 60
load-balancing timeout 20
load-balancing liInterval 10
load-balancing kickInterval 20
!
ap-group-profile Unclassified
lan-provision model nwa5301-nj lan1 activate pvid 1
lan-provision model nwa5301-nj lan2 activate pvid 1
lan-provision model nwa5301-nj lan3 activate pvid 1
lan-provision model nwa5301-nj vlan0 activate vid 1 join lan1 untag lan2 untag lan3 untag
lan-provision model wac6502d-e lan1 activate pvid 1
lan-provision model wac6502d-e vlan0 activate vid 1 join lan1 untag
lan-provision model wac6502d-s lan1 activate pvid 1
lan-provision model wac6502d-s vlan0 activate vid 1 join lan1 untag
lan-provision model wac6503d-s lan1 activate pvid 1
lan-provision model wac6503d-s vlan0 activate vid 1 join lan1 untag
lan-provision model wac6553d-e lan1 activate pvid 1
lan-provision model wac6553d-e vlan0 activate vid 1 join lan1 untag
lan-provision model wac6103d-i lan1 activate pvid 1
lan-provision model wac6103d-i vlan0 activate vid 1 join lan1 untag
slot1 ap-profile Disabled-2G
slot2 ap-profile Disabled-5G
load-balancing mode station
load-balancing max sta 10
load-balancing traffic level high
load-balancing alpha 5
load-balancing beta 10
load-balancing sigma 60
load-balancing timeout 20
load-balancing liInterval 10
load-balancing kickInterval 20
!
ap-group-profile wnam
lan-provision model nwa5301-nj lan1 activate pvid 1
lan-provision model nwa5301-nj lan2 activate pvid 1
lan-provision model nwa5301-nj lan3 activate pvid 1
lan-provision model nwa5301-nj vlan0 activate vid 1 join lan1 untag lan2 untag lan3 untag
lan-provision model wac6502d-e lan1 activate pvid 1
lan-provision model wac6502d-e vlan0 activate vid 1 join lan1 untag
lan-provision model wac6502d-s lan1 activate pvid 1
lan-provision model wac6502d-s vlan0 activate vid 1 join lan1 untag
lan-provision model wac6503d-s lan1 activate pvid 1
lan-provision model wac6503d-s vlan0 activate vid 1 join lan1 untag
lan-provision model wac6553d-e lan1 activate pvid 1
lan-provision model wac6553d-e vlan0 activate vid 1 join lan1 untag
lan-provision model wac6103d-i lan1 activate pvid 1
lan-provision model wac6103d-i vlan0 activate vid 1 join lan1 untag
slot2 ap-profile default2
slot1 output-power 30dBm
slot2 output-power 30dBm
slot1 ssid-profile 1 default
slot2 ssid-profile 1 default
slot1 ap-profile default
!
ap-group first-priority wnam
!
rogue-ap detection
activate
!
rogue-ap containment
no activate
!
no auto-healing activate
auto-healing healing-interval 10
auto-healing power-threshold -70
auto-healing healing-threshold -85
auto-healing margin 2
auto-healing healing-margin 10
!
capwap ap add EC:43:F6:FD:29:1C
!
ap-group-member default member EC:43:F6:FD:29:1C
!
capwap manual-add enable
capwap ap fallback disable
capwap ap fallback interval 30
!
capwap ap EC:43:F6:FD:29:1C
!
zone LAN1
interface lan1
!
zone LAN2
interface lan2
!
zone WAN
interface wan1
interface wan1_ppp
interface wan2
interface wan2_ppp
!
zone DMZ
interface dmz
!
zone IPSec_VPN
!
ip dns security-options 1
name Customize
address-object-group any
!
ip dns security-options default
name Default
address-object-group any
!
ip http server
ip http authentication WNAM
!
ip http secure-server cert default
!
hostname uag5100
!
ip ssh server cert default
ip ssh server
!
console baud 115200
!
ip ftp server cert default
ip ftp server
!
ntp
!
snmp-server
!
package site official
!
session-limit activate
session-limit limit 256
!
auth-server authentication WNAM
!
idp signature update auto
!
idp signature update weekly sun 0
!
no bwm activate
!
no secure-policy activate
!
secure-policy 1
from LAN1
action allow
name LAN1_Outgoing
!
secure-policy 2
from LAN1
to Device
action allow
name LAN1_to_Device
!
secure-policy 3
from LAN2
action allow
name LAN2_Outgoing
!
secure-policy 4
from LAN2
to Device
action allow
name LAN2_to_Device
!
secure-policy 5
from IPSec_VPN
action allow
name IPSec_VPN_Outgoing
!
secure-policy 6
from IPSec_VPN
to Device
action allow
name IPSec_VPN_to_Device
!
secure-policy 7
from DMZ
to Device
action allow
service Default_Allow_DMZ_To_Device
name DMZ_to_Device
!
secure-policy 8
from DMZ
to WAN
action allow
name DMZ_to_WAN
!
secure-policy 9
service Default_Allow_WAN_To_Device
action allow
from WAN
to Device
name WAN_to_Device
!
secure-policy default-rule action deny log
!
bwm 1
no activate
type per-user
incoming-interface interface lan2
outgoing-interface trunk SYSTEM_DEFAULT_WAN_TRUNK
inbound guarantee-bandwidth 512 priority 4
outbound guarantee-bandwidth 512 priority 4
!
alg ftp
alg ftp transformation
!
users retry-limit
users retry-count 5
users lockout-period 30
!
users update-lease automation
!
app-watch-dog activate
!
app-watch-dog interval 300
!
htm phase 1 add all
!
web-auth login setting
logout-ip 1.1.1.1
!
web-auth type default-web-portal
!
web-auth type default-user-agreement
!
web-auth type profile WNAM
type web-portal external
web-portal login-url http://10.8.8.189/cp/zyxel
web-portal welcome-url http://ya.ru
web-portal session-url http://ya.ru
!
web-auth activate
!
web-auth exceptional-service DNS
!
web-auth policy 1
activate
authentication force
authentication-type WNAM
source Wan_subnet
!
web-auth policy 2
activate
authentication-type WNAM
destination wnam
!
web-auth default-rule authentication required no log
!
ip ipnp activate
!
ip ipnp config
interface lan2
!
walled-garden activate
!
walled-garden domain-ip rule 1
activate
type ip
name wnam
ip-address 10.8.8.189/24
!
billing wlan-ssid-profile default
!
billing profile billing_30mins
price 0
time-period minute 30
!
printer-manager button a billing_30mins
printer-manager button b billing_30mins
printer-manager button c billing_30mins
!
ip upnp
upnp-igd activate
listen-interface lan2
!
payment-service account-delivery onscreen activate
!
sms-service provider-select vianett
!
l2-isolation activate
!
l2-isolation
interface lan2
!
free-time reset-register 00:00
free-time time-period 30
!
wtp-logging system-log suppression
!
wtp-logging mail 1 category all level all
wtp-logging mail 2 category all level all
!
no usb-storage activate
no diag-info copy usb-storage
!
no logging usb-storage
!
logging system-log suppression
!
logging mail 1 category all level all
!
logging mail 2 category all level all
!

Административный интерфейс WNAM


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

- http://server/wnam/home

При подключении запрашивается окно авторизации, предполагающее ввод логина и пароля:

После успешного ввода пароля отобразится главное окно интерфейса WNAM. В него всегда
можно вернуться, выбрав в меню "Сводка". Окно состоит из меню и четырёх панелей:
Меню позволяет выбрать одно из действий. Cправа находится опция редактирования настроек
текущего пользователя (смена пароля), и кнопка выхода.

Четыре панели отображают различную статистическую информацию о работе WNAM на текущий


момент. Верхние два графика, "Трафик пользователей, Мб" и "Подключения пользователей"
отображают суммарную статистику по трафику и подключениям к системе за последние сутки.
Отображаемые значения могут отличаться от реальных вследствие работы алгоритмов
сглаживания графика при его отрисовке. Также работа графика зависит от возможной разницы
в системном времени и временнóй зоне на сервере WNAM и на компьютере с браузером, откуда
ведется работа с интерфейсом.

Нижняя левая панель отображают статистику по количеству настроенных в системе объектов,


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

Нижняя правая панель отображает состояние сервера, на котором выполняется WNAM, а именно
загрузка процессора, памяти, диска сервера приложений. Внимание: в нормальном состоянии
загрузка оперативной памяти может приближаться к 90%, и это нормально, так как
операционная система Linux обычно поглощает всю имеющуюся оперативную память под буфера
и кэши. Загрузка процессора не должна превышать 50%. Также отображается задержка ответа
локального RADIUS-сервера, и время работы базы данных и самой программы WNAM.

Пользователи
Раздел "Пользователи" содержит список зарегистрированных в системе пользователей -
абонентов беспроводной сети. Эти записи создаются системой автоматически в момент их
первого подключения, создаются вручную администратором, или импортируются из таблицы.

Основное окно "список" содержит листаемую таблицу с краткими характеристиками записей о


пользователе:

Поле "мгновенный поиск" позволяет найти запись о пользователе по части МАС-адреса или
номеру телефона. Таблицу можно отфильтровать по типу записи (блокировка, список, ваучер, с
телефоном и т.п.), по времени создания записи.
Значок "смартфон" в столбце МАС напротив МАС-адреса устройства пользователя показывает,
что для данного пользователя была проведена авторизация через СМС, и при наведении на
значок можно увидеть номер телефона пользователя.

Значок "восклицательный знак" справа от идентификатора в столбце "Пользователь" говорит о


том, что данная учётная запись пользователя блокирована.

Значок "шестеренка" в столбце МАС говорит о том, что созданная вручную запись принадлежит
устройству, доступ которого надо осуществлять на безусловной основе (без демонстрации
рекламы).

Значок "карандаш" справа от идентификатора в столбце "Пользователь" говорит о том, что


запись была создана вручную.

Значок со стрелкой справа от идентификатора в столбце "Пользователь" говорит о том, что


запись была импортирована из "белого" или "черного" списка.

Значок "глобус" справа от идентификатора в столбце "Пользователь" говорит о том, что у


записи есть профиль социальной сети, использованной для входа..

При нажатии на любую строку в таблице открывается окно, содержащее детальные сведения об
учётной записи пользователя в системе:

Если система WNAM каким-то из способов определила идентификатор устройства пользователя


(из анализа переданных параметров в DHCP-запросе), этот идентификатор будет отображён.

Вендор (производитель) устройства определяется по первым трём байтам МАС-адреса


(аппаратного адреса) устройства при помощи встроенной таблицы соответствий.
Указывается код, который был отправлен абоненту по СМС при авторизации, либо условные
коды "MAN", "WL", "BL", "VOUCHER".

В поле "Комментарий" система автоматически подставляет параметры из заголовков запросов


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

Параметры блокировки позволяют задать время, на которое блокируется доступ для данного
устройства (от 1 часа до 1 года, либо навсегда). Можно также разблокировать заблокированное
устройство.

Ряд кнопок внизу окна позволяет осуществить следующие действия:

Все сессии пользователя - переход в окно сессий, с применённым фильтром по МАС-адресу


пользователя
Очистить сессии - удалить все записи о сессиях данного пользователя
Удалить - удалить запись о пользователе (записи о сессиях остаются)
Сохранить изменения - сохраняет информацию о пользователе, если были внесены
изменения в редактируемые поля (имя, комментарий, блокировка)
Закрыть - закрывает окно

Кнопка "Добавить пользователя" даёт возможность оператору внести запись о пользователе


заранее и вручную.

Обязательными идентификаторами являются телефон и имя абонента.

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

Если указан МАС-адрес устройства абонента, то при его подключении не будет проводится
переход на страницу идентификации, а будет совершено действие, определенное в настройках
"Перенаправление", так как абонент уже идентифицирован.

Можно указать необязательный комментарий о том, что это за абонент.

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

Параметр "Автоматический пропуск без рекламы" предназначен для создания записей для
устройств, для которых нет возможности провести идентификацию, например - беспроводные
терминалы (внимание: это будет работать не со всеми типами терминалов и серверов доступа).

Кнопка "Выписать ваучер" описана в соответствующем разделе.

Кнопки "Загрузить белый список" и "Загрузить черный список" позволяют заранее


импортировать подготовленный файл, содержащий перечень желательных или нежелательных
абонентов.

На странице приведен пример формата файла, и ссылки на шаблоны файлов, которые вы


можете отредактировать, например, в Excel.

Инкрементальный список добавляет записи в таблицу (в виде "разрешенных" или


"запрещенных"). Если встречается существующая запись, она обновляется.

Объединенный список замещает все имеющиеся записи данного типа (по коду WL или BL). Это
требуется, если вы самостоятельно ведете один файл со списком, например, "белых адресов",
вносите изменения только в него, и каждый рах загружаете его в WNAM.

Для "белого списка" вы также можете указать время блокировки записи, и признак
автоматического пропуска.

Сеcсии
Раздел "Сессии" содержит список сессий - фактов подключения и работы зарегистрированных в
системе пользователей - абонентов беспроводной сети. Эти записи создаются системой
автоматически в момент каждого нового подключения пользователя к сети.

Основное окно содержит листаемую таблицу с краткими характеристиками записей о сессии:

"Мгновенный поиск" позволяет быстро отфильтровать таблицу по MAC-адресу сессии (абонента)


или текущему IP-адресу.

Таблица содержит текущий IP-адрес пользователя (обычно, уникальный для сессии), времена
начала и окончания сессии, счётчики переданных и полученных байт. Если сессия ещё идёт (не
закончена), поле "время окончания" не будет заполнено. Для серверов доступа некоторых типов
(Linux, Mikrotik) возможно выполнить операцию "сброс сессии".

Нажатие на любую строку таблицы вызовет появление окна, содержащего детальные сведения о
данной сессии пользователя:
Отображается текущий IP-адрес устройства пользователя, время начала и длительность сессии,
счётчики байт, площадка на которой в данный момент находится абонент (определяется по
передаваемым идентификаторам site-id, либо на основе текущего IP-адреса абонента в
соответствии с параметрами объекта "Площадка").

При наличии возможности (если передаётся сервером доступа) определяется адрес, модель,
название и иные параметры точки доступа (Wi-Fi устройства), которое предоставляет сервис
абоненту, и номер 802.11 радио-канала.

Идентификатор сессии соответствует идентификатору сессии RADIUS-Acct.

Расположенные ниже кнопки позволяют:

перейти на страницу с отображением потоков трафика в данной сессии, если настроен


приём сведений о потоках по протоколу NetFlow
перейти на страницу со списком пользователей, открыв окно с детализацией параметров
пользователя, которому принадлежит эта сессия
закрыть окно

Страница со списком потоков NetFlow в данной сессии отображает сведения об IP-адресах,


протоколах и портах групп пакетов, переданных и отправленных для данного абонента:

Конфигурация
Раздел меню "Конфигурация" позволяет выполнить все настройки, связанные с обеспечением
работы WNAM.

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

Данное меню позволяет создавать учётные записи пользователей административного


веб-интерфейса WNAM. Интерфейс имеет ролевую модель, то есть каждый пользователь имеет
индивидуальные возможности просматривать и редактировать информацию через этот
интерфейс, сообразно назначенной ему роли.

В основной таблице отображается перечень зарегистрированных в системе учётных записей, и


их основные параметры.

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


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

Перечень допустимых ролей:

Название роли Назначение Может размещать Ограничен набором


рекламу площадок

Администратор Администратор всей Да Нет


системы. Может
изменять все
настройки,
просматривать любые
отчеты

Оператор Оператор Нет Нет


(специалист)
владельца системы.
Может изменять
ограниченное число
настроек и
просматривать отчеты

Оператор портала Может только Нет Нет


редактировать
страницы в
"Конструкторе
страниц"
Наблюдатель Представитель Нет Да
контролирующей
организации.
Доступны только
отчеты типа "Розыск"

Рекламодатель Владелец рекламных Да Да


блоков и рекламных
кампаний. Имеет
отдельный
(ограниченный)
интерфейс рекламы

Рекламный агент Управляющий Да Да


рекламодателями и
владелец группы
рекламных блоков и
рекламных кампаний.
Имеет отдельный
(ограниченный)
интерфейс рекламы

Владелец площадки Владелец площадки Да, если дано право Да


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

Три последние роли дают пользователю возможность работы в отдельном интерфейсе. Возможно
сть создавать пользователей данных ролей становится доступна при приобретении
соответствующей лицензии WNAM.

При нажатии на кнопку "Параметры" возникает окно установки параметров сложности пароля

пользователей веб-интерфейса. По умолчанию сложность пароля не регулируется. При

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

попытке смены пароля имеющимся пользователем.


Доступно указание следующих ограничений:

Минимальная длина (1...12 символов)


Наличие цифр
Наличие спецсимволов
Наличие больших и маленьких букв

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


записи о пользователе. Аналогичное окно возникает при попытке создать новую учётную запись
пользователя:
Для ролей "Наблюдатель", "Владелец площадки", "Рекламный агент", "Рекламодатель" требуется
указание списка площадок, доступных пользователю с данной ролью:
Этот список формируется при вызове окна "Доступные площадки", где перечисляются все
созданные в системе площадки, даётся возможность выбрать некоторые из них (возможен
множественный выбор "все" или "никакие"):

При указании площадок из списка наблюдателю будет доступна статистика только по


пользователям с данных площадок.

Для части ролей доступна дополниительная вкладка "Права". Так, для рекламодателя доступны:
Для роли "Владелец площадки" доступны следующие параметры:
Значение прав перечислено ниже:

Название поля Описание и применение

Скрывать МАС и телефон Позволяет не демонстрировать конкретные


номера телефонов абонентов, и МАС-адреса
их мобильных устройств, в интерфейсе
владельца площадки. Некоторые символы в
номерах заменяются на ХХ или **. При
скрытии не доступен отчет типа "Выгрузка
номеров телефонов"

Скрывать площадки и сервера доступа Не отображать список площадок и серверов


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

Не доступно - конструктор страниц не


доступен, страницу
авторизации/приветствия на площадке
изменить нельзя
Выбор шаблонов - конструктор страниц не
доступен, страницу
авторизации/приветствия на площадке
изменить можно из набора, который
доступен (даны права)
Редактирование шаблонов - конструктор
страниц доступен в упрощенном режиме, ст
раницу авторизации/приветствия на
площадке изменить можно
Экспертный режим - конструктор страниц
доступен в упрощенном и экспертном
режимах, страницу авторизации/приветстви
я на площадке изменить можно

Только работа с ваучерами Специальный режим владельца площадки, в


котором в интерфейсе доступен вариант
только выписки ваучеров (для
администратора гостиницы)

Направлять страницы на модерацию При включении помечает все страницы,


созданные или модифицированные
пользователем, как требующие модерации
(подтверждения со стороны администратора).
Только после подтверждения страница может
быть назначена площадке.

Лимит числа страниц Позволяет задачть лимит (в штуках) на число


страниц, которыми владеет пользователь

Может управлять опросами Может создавать опросы и назначать их на


площадках (в режиме приветствия)

Может редактировать рекламные кампании Может создавать и редактировать имеющиеся


рекламные кампании и назначать их в показ
(требует лицензии)

Может управлять рекламными кампаниями Может включать/выключать имеющиеся


рекламные кампании без возможности
редактирования (требует лицензии)

Начиная с версии 1.4.1463 доступна также отправка E-mail сообщений пользователям.

Сообщения отправляются из окна свойств записи о пользователе: тестовое сообщение, и


сообщение с ссылкой для входа без пароля и установки пароля (может использоваться при
предоставлении аккаунтов владельцам плоащдок):
Для работы этой функции требуется, чтобы в вашей сети был настроен поччтовый сервер, он
принимал собщения от сервера WNAM, а в конфигурационном файле /etc/wnam.properties были
верно настроены следующие параметры:
smtp_server=mail.provider.ru
smtp_port=25
smtp_user=
smtp_password=
email_from=root@provider.ru

Сервера доступа

Данный пункт меню позволяет создавать, просматривать и редактировать записи об объектах


типа "сервер доступа".

Сервером доступа в терминологии WNAM является маршрутизатор или беспроводный


контроллер, посредством которого обеспечивается предоставление услуги доступа в Интернет
пользователю беспроводной сети. В случае, если маршрутизатором является устройство Mikrotik,
или сервер Linux, беспроводную (Wi-Fi) часть может обеспечить радио-оборудование любого
производителя. В случае использования профессиональных Wi-Fi систем на основе управляемых
контроллером точек доступа (Bluesocket, Ruckus, Cisco) сервером доступа является контроллер.

Более точно, в качестве сервера доступа настраивается так называемый портал перехвата
(хотспот), встроенный в маршрутизатор или беспроводный контроллер. В маршрутизаторе или
контроллере может быть одновременно настроено несколько хотспотов, каждый со своими
настройками (параметры Wi-Fi сети и т.п.).

Основное окно позволяет просматривать список созданных в системе серверов доступа, и их


основные параметры:
При нажатии на строку таблицы возникает окно редактирования параметров сервера доступа
(аналогично окну создания записи о новом сервере доступа):

В качестве параметров указываются:

Типа сервера доступа - один из вариантов поддерживаемых WNAM устройств. Несмотря на то,
что механизмы работы поддерживаемых устройств значительно различаются, с точки зрения
администратора и тем более пользователя WNAM работа с ними одинакова.

Поддерживаются следующие типы:

Тип устройства доступа Описание устройства доступа

Mikrotik Маршрутизатор производства Mikrotik, может


быть как виртуальной машиной на
компьютере, так и стационарным устройством
(проводной маршрутизатор типа RB2011 либо
совмещенный с точкой доступа WiFi
RB951Ui-2HnD)

Cisco WLC Беспроводный контроллер Cisco WLC, может


быть как виртуальной машиной (vWLC), так и
аппаратным устройством CT2504/5508.
Поддерживаются версии программного
обеспечения >7.4, а с версией WNAM 1.3.969
- и версии контроллера 7.0

UniFi Программный контроллер беспроводных точек


UniFi

Bluesocket vWLC Беспроводный контроллер Bluesocket (бывши


й Adtran)

Ruckus ZoneDirector Беспроводный контроллер Ruckus


ZoneDirector

Linux router Маршрутизатор Linux, выполняющий роль


портала перехвата и DHCP-сервера.
Поддерживается только в случае его
совмещения с сервером WNAM.

Zyxel NXC Беспроводный контроллер Zyxel NXC 2500 и


5500

Cisco ISG Маршрутизаторы Cisco с функцией Intelligent


Services Gateway, на платформах 7200, 7300,
10000, ASR

pfSense Маршрутизаторы на основе прошивки pfSense

Aruba Беспроводный контроллер Aruba

Alcatel-Lucent SR Маршрутизаторы Alcatel-Lucent серии SR

HP MSM Беспроводный контроллер HP MSM

TP-LINK EAP Программный контроллер беспроводных точек


TP-LINK EAP

Подробнее о настройке каждого из типов устройств доступа написано в соответствующем


разделе.

Обязательным параметром является IP-адрес устройства доступа. На основе указанного адреса


будет проводиться сопоставление RADIUS-пакетов, получаемых сервером от устройства доступа,
и их дальнейшая обработка. Вы обязаны указать здесь адрес, с которого устройство доступа
будет отправлять RADIUS-пакеты. Таким образом сервер доступа - это RADIUS-клиент для
сервера FreeRADIUS, работающего совместно с WNAM. Этот адрес ожидается в качестве
значения параметра NAS-IP-Address RADIUS-пакетов, которые сервер доступа (клиент) шлёт в
сторону WNAM.

В случае маршрутизатора Mikrotik и контроллера Bluesocket указание имени пользователя и


пароля позволит обеспечить привязку DHCP-имени пользователя к его учётной записи и
определение ряда дополнительных параметров в момент начала аккаунтинга (RADIUS Acct-Start)
сессии пользователя. Это происходит путём запроса (через API устройства) со стороны сервера
WNAM, с применением указанных параметров входа. Рекомендуется создать соответствующую
учётную запись на устройстве с правами "на чтение".

Указанные ниже параметры позволяют включить для данного сервера доступа:

Параметр Назначение

Использовать счетчики аккаунтинга Учитывать значение байт


(получено/передано) из RADIUS-Acct сессий
пользователя

Менять местами счетчики приёма/передачи При поступлении данных по трафику в


сообщениях RADIUS Acct менять местами
значения в полях RX и TX. Каждый тип
устройства доступа (хотспота) имеет своё
представление о том, что считать за входящий
и исходящий трафик для пользователя.

Определять имена абонентов Обращаться к серверу доступа за


DHCP-идентификаторами устройств

Принимать детализацию потоков NetFlow Получать сведения о потоках трафика от


сервера доступа, если он настроен их
отправлять на сервер WNAM (UDP port 20002,
version 5). Работает для маршрутизаторов
Mikrotik, контроллера Cisco (только
аппаратные модели) и softflowd.

Внимание! Сервер WNAM принимает netflow


пакеты только с IP-адреса, указанного в
настройках выше. Если по каким-то причинам
вы отправляете Nеtflow с какого-то другого
адреса (например, со стороннего
edge-роутера), у вас есть две возможности:

1. Создать еще одну запись сервера доступа


произвольного типа, с указанием верного
IP адреса и включения в настройках
"принимать детализацию NetFlow";
2. Указать дополнительный netflow-адрес для
данного сервера доступа. Для этого в
зеленом поле "Комментарии" выше вы
должны написать: netflow_ip=172.16.130.3
(указав верный IP адрес)
Некоторые сервера доступа (например, Mikrotik или Linux), позволяю по команде сбросить все
активные сессии абонентов, для чего есть оранжевая кнопка.

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

Площадки

Данный пункт меню позволяет создавать, просматривать и редактировать записи об объектах


типа "Площадка".

Площадкой в терминологии WNAM называется точка оказания услуги конечному абоненту Wi-Fi,
которая характеризуется IP-сетью, из адресного пространства которой устройства абонентов
будут получать адреса. Например, индивидуальной площадкой может быть сеть, расположенная
за хотспотом маршрутизатора Mikrotik, сеть одного кафе/ресторана/бизнес-центра. Вся
статистическая информация в отчётах будет формироваться с точностью "до площадки". Таким
образом, не рекомендуется использовать один хотспот/одну площадку для подключения
абонентов с нескольких территориально разнесённых объектов. Вы не сможете в статистике
различить, с какого из объектов была установлена сессия. К тому же, наличие одного большого
широковещательного домена (VLAN) на все ваши объекты создаст проблемы производительности
Wi-Fi сети.

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


доступа и нескольких площадок, с распределением сессий по ним на основе IP-адресов, либо на
основе идентификаторов площадок, настраиваемых непосредственно на Wi-Fi контроллере.

Крайне рекомендуется использовать не пересекающиеся IP-адресные пространства на ваших


площадках, во избежание путаницы. Приватные адреса бесплатны.

В основном окне меню приведена таблица-перечень всех площадок с их краткими свойствами.


Выключенные площадки отображаются серым цветом и курсивом.

Внимание! Выключенные площадки не учитываются при подсчете числа лицензий на площадку.


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

Основными параметрами площадки являются номер (идентификатор, впоследствии изменить


нельзя, обязательно должно быть числом), адрес и название, контактная информация,
присвоенная подсеть (IP-адреса).

Внимание! Задаваемые в поле "Присвоенная IP подсеть" адреса должны описывать блок


адресов, которые абонентские устройства получают по DHCP на этой площадке. Если вы укажете
какие-то другие адреса, то скорее всего ничего работать не будет.

Номер подсети задаётся в формате сеть/маска, причём маска подсети приведена в десятичном
эквиваленте (число единичных бит). Напомним, что маске 255.255.255.0 соответствует /24, а
маске 255.255.255.128 соответствует /25.

Если вы используете трансляцию адресов, и ваши клиенты проходят через NAT, вы можете
указать и дополнительный "внешний адрес" в формате "192.168.20.0/22; 88.32.211.29"

При использовании контроллеров UniFi, TP-LINK, роутера ISG нужно (заранее создав запись о
нём в "серверах доступа") выбрать его из списка, при этом будет более детально проводиться
сопоставление параметров сессии подключившегося на данной площадке абонента.
Переключатели в верхней части окна параметров площадки позволяют установить индивидуальн
ые настройки для методов авторизации, перенаправления, ограничений и социальных сетей,
которые будут применяться только к абонентам, подключившимся на данной площадке. При
выборе варианта "по умолчанию" будут применены настройки, указанные в основных пунктах
меню "конфигурация". Подробнее параметры описаны на странице Авторизация
Вариант "По умолчанию, замена страницы" предусматривает использование параметров
авторизации (в частности, способа и деталей отправки СМС-сообщений) так, как это определено
в настройках "Конфигурация-авторизация", при этом только для данной площадки указанная в
общих настройках страница заменяется на заданную здесь страницу.

Для параметров перенаправления возможно задавать страницу пост-авторизации, фактически


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

Здесь также вы можете выбрать отображение рекламы из "рекламных кампаний" и проведение


опросов.
Вы также можете настраивать индивидуальные ограничения с привязкой к площадкам,
например для одной выделенной площадки указать интервал работы (рабочие часы), чтобы
пользователи не подключались к сети ночью из соседних домов. Подробнее параметры описаны
на странице Ограничения
Настройки отдельной площадки поддерживают указание пакета лимита на число СМС,
отправляемых для данной площадки.

Лимит может быть пополняемым в указанное число месяца.

Начиная с версии 1.4.1463 возможно автоматическое уведомление администраторов и


владельцев площадки по приближению к лимиту (80%) и исчерпанию лимита (100%).
Сообщение отправляется на адрес, указанный в настройках параметров пользователя.
При приближении к лимиту, и при его исчерпанию, также появляется соответствующий символ в
списке площадок:

Группировка площадок

Группировка площадок

Точки доступа Wi-Fi

Начиная с версии 1.3.800 WNAM поддерживает учёт точек доступа Wi-Fi, используемых при
оказании услуги. Информация о точек доступа (её МАС-адреса) поступает от контроллера
UniFi/TP-LINK напрямую, либо от Wi-Fi контроллера по протоколу RADIUS в поле
Calling-Station-Id.

В любом случае точка доступа идентифицируется по её МАС-адресу.

В некоторых случаях WNAM лицензируется по числу точек доступа в базе данных. При
превышении этого числа, при попытке подключения абонента через новую точу доступа, ему
будет отказано.

Список точек доступа приведен в таблице:

При появлении новых точек доступа он будет дополняться автоматически.

Можно также заранее импортировать точки доступа с контроллера (в настоящий момент


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

Авторизация

В пункте меню "Авторизация" настраивается способ, применяемый при авторизации


(идентификации) пользователей беспроводной сети, и его параметры.

Идентификация позволяет провести сопоставление аппаратного (МАС) адреса устройства


абонента, и его номера телефона, как того требует закон. Эта информация хранится в базе
данных WNAM, в параметрах "Учётной записи пользователя". Повторная идентификация
производится через заданный промежуток времени (на случай смены пользователем номера
телефона); до этого момента повторная идентификация не производится.

Возможны следующие методы авторизации:


Отсутствие авторизации - запись о пользователе создаётся без сведений о его номере
телефона
Получение СМС от абонента - абонент сам должен отправить код авторизации на
указанный номер (таким образом, сам платит за СМС). Подробнее смотрите здесь.
Отправка СМС абоненту с кодом (с подтверждением абонентом этого кода в браузере на
втором шаге авторизации) - вы платите за отправку СМС.
Отправка абоненту телефонного звонка, в котором механический голос произносит код
доступа. Подробнее смотрите здесь.
Получение звонка от абонента. Он вынужден совершить вызов со своего телефона на
указанный номер (звонок будет сброшен). Подробнее смотрите здесь.
Идентификация в гостиничной системе "Эдельвейс"
Идентификация в гостиничной системе "UCS Shelter"
Идентификация через заранее созданную учетную запись "логин-пароль" или в Active
Directory (домене Windows)

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

Провайдер СМС - организация, которая по вашему поручению отправляет СМС абонентам. Это
может быть:

Один из поставщиков услуг, имеющих прикладной интерфейс отправки, работающий по


протоколу HTTP. На настоящий момент это:
websms.by
smstraffic.ru
smsc.ru
МТС:Коммуникатор
любой другой оператор с СМС-шлюзом, работающим по протоколам HTTP GET или
POST
тестовый провайдер (без отправки). СМС не отправляются, код подтверждения
автоматически подставляется в форме ввода кода на следующем шаге (с версии
1.4.1431)
Ваш сотовый оператор. Отправка сообщений организуется через GSM USB модем с вашей
сим-картой. Модем установлен непосредственно в сервер WNAM. Взаимодействие с ним
производится через Linux-утилиту gammu
Ваш сотовый оператор. Отправка сообщений организуется через GSM USB модем с вашей
сим-картой. Модем установлен в USB порт маршрутизатора Mikrotik, настроенного как
сервер доступа и находящегося на площадке предоставления Wi-Fi. Подробнее об этом
методе написано здесь.
Поставщик услуг отправки СМС, работающий по протоколу SMPP. При этом для отправки
используется Linux-утилита kannel. Подробнее о настройке kannel написано здесь

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

Заголовок СМС - строка, которая будет указана в качестве "Отправителя" в полученном


пользователем СМС. В большинстве случаев она также устанавливается для вас
СМС-провайдером. При использовании SMPP-подключения вы должны согласовать эту строку
(ваше название) в SMPP-оператором.

Текст СМС - тело сообщения. В нём могут присутствовать ключевые слова %CODE% и
%DEVICE%, которые будут заменены на соответственно код авторизации и МАС-адрес
устройства при формировании сообщения перед отправкой. В тексте сообщения допустимы
русские буквы, которые будут восприниматься в кодировке UTF-8. Поддерживается также
генерация URL ссылок для СМС-сообщений.

Можно выбрать длину случайно генерируемого ответного кода - 3, 4, 5 или 6 цифр.

Параметр "Длительность авторизации номера" отвечает за время, которое привязка "МАС-номер"


будет существовать, и не требовать повторной идентификации. По умолчанию это 180 дней.
После прохождения этого времени с момента первой идентификации при последующем
подключении уже известного абонента к сети у него будет запрошена повторная
идентификация. Внимание! WNAM имеет общую базу данных абонентов; это означает, что если
кто-то прошел идентификацию на площадке "А", и появился на площадке "Б" при том, что
указанный в настройках "Б" срок действия идентификации ещё не истёк, повторная
идентификация запрошена не будет.

При наличии нескольких площадок можно создать несколько отличающихся шаблонов


СМС-сообщений. Параметр "Имя страницы" позволяет выбрать одну из заранее созданных форм
(шаблонов) с текстом приветствия, условий предоставления услуги и запроса СМС-авторизации.

Шаблон (внешний вид) страницы идентификации задается в конструкторе. Здесь необходимо


выбрать одну из ранее созданных в конструкторе страниц. Тип страницы, которая отображается
в появляющемся окне, соответствует выбранному методу идентификации.

Параметр "Страница также содержит перенаправление" позволяет предоставить доступ в сеть


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

Параметр "Рекламные кампании" дает возможность вместо указанной страницы динамически


подставлять рекламный блок из "Рекламных кампаний", если они настроены и приобретена
соответствующая лицензия.

Параметр "Авторизованные становятся VIP" дает возможность автоматически присваивать


созданным записям пользователей VIP-статус, который дает возможность "прозрачного"
подключения без каптив портала и рекламы для МАС-авторизации на хотспоте.

Параметр "Перезапрашивать номер" предписывает системе делать запрос ввода номера


телефона при каждом подключении к сети, даже у абонентов, которые ранее прошли
идентификацию и срок которой пока не истек. Если номер введен такой же, какой был ранее
указан для абонента с данным МАС-адресом, произойдет перенаправление на следующую
страницу (redirect), если номер новый - повторная идентификация выбранным методом (СМС,
звонок).

По ссылке

Начиная с версии 1.4.1340 WNAM поддерживает СМС-авторизацию по ссылке, отправляемой в


сообщении.

В настройках текста сообщения авторизации помимо стандартных %CODE% и %MAC% можно


указать и параметр %URL%.
При этом абоненту в СМС-сообщении будет отправлена http-ссылка на специальный путь (URL)
на сервере WNAM, переход абонента по которой вызовет успешное завершение идентификации.
Например, полученная ссылка может иметь вид http://wifi.provider.ru/cp/activate/IX8UHFCN. Обр
атите внимание, что при использовании мини-браузера (CNA) есть риск отключения Wi-Fi при
переходе по ссылке, т.е. этот способ лучше использовать только при включенном подавлении
CNA. Поведение абонентского устройства зависит от его операционной системы. Если ваша
ссылка будет доступна и из интернета (при сотовом подключении), то пользователь сможет
завершить идентификацию и так, а при повторном подключении к Wi-Fi устройство будет уже
идентифицировано.

После ввода номера телефона и отправки СМС-сообщения сервером WNAM на стадии ввода кода
уже будет доставлено СМС-сообщение:

Авторизацию можно пройти либо вводом кода, либо переходом по ссылке. Во втором случае
откроется СМС-приложение телефона:
При переходе по ссылке из СМС откроется системный браузер, произойдет авторизация и
пользователь окажется на шаге приветствия (см. лог wnam.log):
00:10:53.079 DEBUG [c.n.w.web.cp.CaptivePortalController:2268] - captive portal redirected to
SMS page, username=4C:57:CA:XX:XX:XX, cust=4C:57:CA:XX:XX:XX, form='58bdc48c5e4df6273ac60202'
00:11:00.137 DEBUG [c.n.w.web.cp.CaptivePortalController:1101] - postSms: site_id=5,
username=4C:57:CA:XX:XX:XX, phone=791XXXXXXX, smscode=null,
ci.key=1dac7f20-4c20-4e63-9180-74ee6cda1457
00:11:00.163 DEBUG [c.n.w.web.cp.CaptivePortalController:1323] - CP SMS phase 1:
mac=4C:57:CA:XX:XX:XX, ip=192.168.1.3, phone=791XXXXXXX, smscode=9118
00:11:00.238 DEBUG [com.netams.wnam.services.SmsService:117] - smsc sms_to: 791XXXXXXX text='
9118 http://172.16.255.1/cp/activate/BJLOGQYR', header=WNAM
00:11:00.419 DEBUG [c.n.w.web.cp.CaptivePortalController:634] - CP Keenetic redirect:
cid=4C:57:CA:XX:XX:XX, ip=192.168.1.3, ap='10:7b:ef:60:0f:58', Keenetic=192.168.1.1:3990,
challenge=495b4251eb77b28997e318304870fdcf
00:11:00.430 DEBUG [c.n.w.web.cp.CaptivePortalController:2198] - processAuthRequest KEENETIC:
username=4C:57:CA:XX:XX:XX, ip=192.168.1.3, server=192.168.1.1:3990, site_id=5,
domain_id=495b4251eb77b28997e318304870fdcf, dst='http://bash.im'
00:11:00.431 DEBUG [c.n.w.web.cp.CaptivePortalController:2250] - captive portal clicked 'cp'
while SMS req exist: code=9118, retry attempts=2
00:11:00.433 DEBUG [c.n.w.web.cp.CaptivePortalController:2268] - captive portal redirected to
SMS page, username=4C:57:CA:XX:XX:XX, cust=4C:57:CA:XX:XX:XX, form='58bdc48c5e4df6273ac60202'
00:11:29.923 DEBUG [c.n.w.web.cp.CaptivePortalController:1478] - CP SMS phase 2:
mac=4C:57:CA:XX:XX:XX, ip=192.168.1.3, phone=79151996203, smscode=9118 ACTIVATION
00:11:29.925 DEBUG [c.n.w.web.cp.CaptivePortalController:2387] - processRedirectRequestCi
mac=4C:57:CA:XX:XX:XX, method=FORM, formName=58bdc4965e4df6273ac60210,
redirectUrl=http://bash.im, key=1dac7f20-4c20-4e63-9180-74ee6cda1457
Перенаправление

Меню "Перенаправление" позволяет задать действие, проводимое при каждом подключении


пользователя к сети.

Напомним, что идентификация (привязка к номеру телефона с отправкой СМС и т.п.)


производится один раз в указанный период (по умолчанию 180 дней), при первом подключении
пользователя к вашей сети. Перенаправление возникает при каждом подключении абонента к
сети, либо когда у него заканчивается установленная сессия по лимиту её длительности, либо
по какой-то ещё причине (роуминг, выключение устройства) контроллер считает сессию
законченной.

Вы можете выбрать одно из следующих действий:

Отправлять пользователя по URL (ссылке), первоначально им запрошенной


Отправлять пользователя по указанной ссылке (например, на ваш сайт)
Отображать пользователю некоторую страницу (форму, шаблон которой редактируется
вами).
Показывать рекламный баннер согласно алгоритмам "рекламной кампании" в ее
расширенном варианте
Провести опрос пользователя
Задать работающий на площадке тарифный план платного доступа

В третьем случае форма может содержать как простое приветствие (Согласие с условиями, для
продолжения нажмите на "Войти"), так и созданный вами статический рекламный блок.
Шаблон (внешний вид) страницы перенаправления создается в конструкторе . В данном меню
вам будет необходимо выбрать одну из созданных в конструкторе страниц. Вы можете выбрать
одну из заранее созданных страниц путём нажатия кнопки "Выбор":

Обратите внимание, что в теле формы (страницы шаблона) типа "страница приветствия", и её
производных клонов, присутствует конструкция $(dst). По умолчанию она замещается ссылкой,
по которой обращался пользователь при попытке выхода в Интернет.

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


перенаправлялся на ваш сайт (вашей организации, промо-сайт и т.п.), необходимо:

либо

внутри формы заменить все строки вида $(dst) на "http://вашсайт.ru"

либо

в поле "Отправлять по ссылке:" выше в странице настройки перенаправления указать


вашу ссылку http://вашсайт.ru (при этом радио-переключатель напротив этого варианта
остаётся не активным, пускай останется "Отображать страницу приветствия").

Внимание! Начиная с версии 1.4.1351 WNAM поддерживает указание дополнительных


параметров в URL перенаправления, которые могут быть использован вашим сайтом (или
сервисом рекламной платформы, на которую вы производите перенаправление) для таргетинга
или учёта пользователей.

Для этого в URL перенаправления вы можете добавить произвольные параметры, содержащие


ключевые метки, которые в момент генерации ссылки перенаправления будут заменены на
реальные значения.

Например, если ваш URL перенаправления задан так: http://bash.im?MAC=$(mac)&IP=$(ip)&PHO


NE=$(phone)&SITE=$(site-id)&APMAC=$(ap-id)

то при перенаправлении абонентского устройства ссылка, запрашивая им после входа а


Интернет, будет иметь вид: http://www.ru/?MAC=E4:02:9B:7B:8F:B8&IP=10.130.3.116&PHONE=7
9997776655&SITE=1&APMAC=4C:57:CA:2C:0F:4C

В ссылке допускается использовать следующие ключевые конструкции, которые будут


заменены:

$(mac) - МАС адрес абонентского устройства


$(ip) - текущий IP адрес абонентского устройства
$(phone) - номер телефона абонента, заданный и проверенный при идентификации
$(site-id) - идентификатор площадки, где осуществляется подключение
$(ap-id) - МАС адрес Wi-Fi точки доступа, через которую идет подключение, если известен

Внимание! При использовании параметрического указания URL перенаправления, в котором


содержатся символы &, применяемые для разделения переменных (пар ключ=значение), совмес
тно с маршрутизаторами Микротик, последние самостоятельно производят замену символа & на
&amp; в результате чего ссылка перенаправления будет иметь вид: http://www.ru/?MAC=E4:02:
9B:7B:8F:B8&amp;IP=10.130.3.116&amp;PHONE=79997776655&amp;SITE=1&amp;APMAC=4C:57
:CA:2C:0F:4C. В этом случае нормальный веб-сервер не в состоянии разобрать и передать
обработчику (приложению) все параметры в неизменном виде. Все претензии на счёт такого
поведения пожалуйста, передавайте компании Mikrotik. Пример.

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

Аналогичный набор ограничений может быть выставлен и на индивидуальную площадку, в


соответствующей вкладке её настроек.
Следующие параметры WNAM расчитывает и применяет до авторизации доступа пользователя:
Число сессий за период - позволяет задать лимит числа сессий, например не более 2 за 24
часа
Рабочие часы с ... до - задает рабочие часы, в которые доступ предоставляется
Работы в выходные - разрешает или запрещает работу в выходной (сб, вс) день;
праздники и переносы не учитываются
Лимит числа СМС на абонента за время - позволяет задать лимит числа отправляемых на
пользователя (по МАС адресу) идентификационных СМС за период
Лимит числа СМС на площадку за время - позволяет задать лимит числа отправляемых на
всю площадку идентификационных СМС за период
Пакеты СМС на площадку, в месяц: - позволяет задавать автоматически пополняемый
лимит (пакет в шт) СМС на площадку; пополнение происходит в заданный день
Действие после исчерпания лимита - ссылка или страница
Прозрачный допуск на заданное число минут если ранее не было сессий {на этой
площадке, на любой площадке} - позволяет для идентифицированного абонента в момент
его подключения к сети, где работает МАС-авторизация доступа, открыть сессию доступа
на заданное время при условии, что до того на этой (или на всех) площадках не было
сессий этого пользователя более, чем заданное число часов назад. Это дает возможность
позволить известным, вернувшимся после отсутствия в сети пользователям прозрачно и
временно подключиться к сети для приема почты и рекламных сообщений с последующим
отключением, и перенаправлением на страницу приветствия.

Следующие параметры WNAM расчитывает и передает серверу доступа в RADIUS AUTH


атрибутах после авторизации доступа пользователя:

Длительность сессии абонента


Скорость, кБит/с: приём,передача
Объём трафика за сессию, мегабайт

Внимание! Работоспособность этих атрибутов зависит от типа сервера доступа.

Шаблон страницы "Ограничения" отображает пользователю информацию о причине, по которой


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

Платный доступ

Начиная с версии 1.3.1105 WNAM поддерживает механизмы взимания оплаты с абонента сети
Wi-Fi для организации платного доступа.

Внимание! Данная функция является лицензируемой. Обращайтесь на support@netams.com за


дополнительной информацией.

Внимание! Программное обеспечение WNAM не является биллинговой системой и не имеет


соответствующего сертификата. Использование WNAM для оказания платных услуг связи
требует а) наличие у вас лицензии Оператора связи и б) наличие у вас сертифицированной
системы биллинга.

Внимание! Работа абонентов с оплаченным доступом (платных абонентов) в "прозрачном


режиме", т.е. с автоматическим подключением к Wi-Fi сети без всплывающих окон требует
поддержки вашим оборудованием (контроллер, хотспот) режима МАС-авторизации устройств по
МАС-адресу. При этом не гарантируется защита от злоумышленников, подделывающих
(подменяющих) МАС-адреса мобильных устройств.
Настройка

Подключиться к платежной системе. В настоящий момент поддерживается Яндекс.Касса (https://


kassa.yandex.ru/). Необходимо получить идентификаторы и прописать их в настройках
/etc/wnam.properties:
yamoney_shopid=
yamoney_scid=
yamoney_url=https://money.yandex.ru/eshop.xml
yamoney_password=YYYYY

Для проведения тестирования укажите yamoney_url=https://demomoney.yandex.ru/eshop.xml

В личном кабинете Яндекс.Кассы укажите URL возврата веб-сессии абонента на адрес вашего
сервера WNAM, а также пути до API проверки валидности платежа:
https://wnam.provider.ru/api/yandex/check
https://wnam.provider.ru/api/yandex/aviso
https://wnam.provider.ru/api/yandex/success
https://wnam.provider.ru/api/yandex/fail

Вы обязаны установить SSL сертификат на ваш сервер WNAM (https://wnam.provider.ru/), в

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

купить, либо подписаться на сервис от Let's Encrypt.

Необходимо в административном интерфейсе WNAM, в конструкторе страниц, создать страницу

типа "Приветствие" или "Другое" с шаблоном, соответствующим платежной форме, на которой

абонент будет выбирать одну из тарифных опций для совершения платежа. Образец такой

страницы приведен на сайте http://www.netams.com/files/wnam/portalpages/pay.html. Вы

должны отредактировать страницу (указать варианты платежей согласно вашему

предполагаемому тарифу) в "экспертном режиме" конструктора.

Затем вы должны создать тариф в меню "Конфигурация - платный доступ". Система WNAM

позволяет иметь неограниченное число созданных тарифов.


В разделе "Действие" необходимо отредактировать тариф. Описание тарифа состоит из набора

обязательных полей (свойств тарифа), а также списка из одного или более тарифных

элементов:

Название тарифа - произвольное слово, которое затем будет отображаться в отчетности.

Параметры "Число сессий в день доступа без оплаты" и "Число сессий в день доступа без оплаты

" позволяют задать желаемое число. Рекомендуемые значения: 1 и 3.

Страница выбора тарифа позволяет задать созданную на предыдущем шаге в конструкторе

страницу:
Параметр "Длительность бесплатной сессии, сек." определяет время, в течение которого абонент

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

логика работы WNAM описана ниже.

Параметр "Действие по исчерпанию лимита числа


бесплатных сессий" определяет, что произойдет,
когда абонент достигнет установленного
ограничения. Возможны два варианта: показ формы
(страницы с запретом) либо безусловны переход по
ссылке (адрес сайта должен находиться в Walled
Garden хотспота).
Параметр "Отключен" позволяет отключить работу по
тарифу (прием оплаты будет невозможен).
Параметр "Показывать рекламу даже тем, кто
оплатил" отключает безусловный пропуск устройств
абонентов при МАС-авторизации с целью
демонстрации даже платным абонентам хотспота и
страницы с рекламным материалом.
Параметр "Платежный шлюз" имеет только одно
допустимое значение: Yandex.Kassa.

Затем идет набор одного или более "тарифных


элементов", которые определяют сетку тарифа, то
есть суммы оплаты за предоставление доступа на
заданное время.
Внимание! Параметры (длительность, стоимость)
должны в точности повторять набор параметров,
заданных в форме оплаты (функция doPay(X,Y)).
Каждый из тарифных элементов редактируется
отдельно. Параметр "Промо код" в настоящий момент
не используется:
По завершении редактирования параметров тарифа и его тарифных элементов не забудьте

нажать на кнопку "Сохранить".

Теперь тариф можно включить в разделе "Перенаправление" общих настроек, или настроек

площадки:

На этом настройка WNAM завершена. Ознакомьтесь с описанием логики работу системы


платного доступа перед переходом к проверке.

Описание логики работы

Ранее не известный системе абонент обязан будет пройти стадию идентификации (авторизации)
согласно настроек в соответствующем разделе WNAM.

Если для площадки (или в общих настройках) выбрано использовать платный доступ и указан
тариф, абоненту будет продемонстрировано окно с шаблоном, заданным в настройках тарифа.
Здесь абонент может выбрать одну из тарифных опций, либо воспользоваться бесплатным
подключением (если такая возможность вами предоставлена). Длительность сессии такого
бесплатного подключения определяется либо настройками меню "Ограничения", либо
заданными на самом хотспоте параметрами.

Если сессия закончена, абонент пробует подключиться заново, но лимит числа бесплатных
сессий для данного тарифа исчерпан, абоненту будет показано соответствующее сообщение
либо сделан перевод по заданной ссылке (убедитесь, что она находится "внутри" Walled Garden
хотспота).

Если абонент выбирает один из тарифных элементов, то происходит последовательно:

открытие полного доступа в Интернет на хотспоте на время, соответствующее выбранном


тарифному элементу или без лимита по времени)
перенаправление сессии абонента путем отправки формы методом POST на сайт платежной
системы (Яндекс.Касса).

Полный доступ в Интернет требуется, в первую очередь, для проверки платежа абонента через
3D Secure, для подтверждения платежа кодом из СМС на сайте банка-эмитента карты абонента,
который заранее не известен.
На сайте платежной системы абоненту демонстрируется предзаполненная форма с
идентификаторами оплаты и предложением указать реквизиты кредитной карты:
Номер заказа - последние 4 цифры номера телефона абонента и 4 случайных цифры. Номер
покупателя - МАС адрес абонентского устройства. Сумма соответствует выбранному абоненту
тарифному элементу.

При успешной оплате абоненту демонстрируется подтверждение:

Кнопка "Перейти на сайт магазина" ведет абонента по ссылке, указанной в окне


"Перенаправление" ("Отправлять по ссылке") при задании тарифного плана на площадке, а если
ссылка не указана - то по той ссылке, которую изначально запрашивал сам абонент.

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

В случае, если абонент произвел успешную оплату до завершения периода, указанного в


параметре "Длительность бесплатной сессии, сек.", то по завершении оплаты сессия абонента не
прерывается. В противном случае, WNAM сбрасывает сессию абонента и терминирует
необработанный заказ.

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

Указаны: дата и время последнего совершенного платежа, его сумма, номера заказа, инвойса
платежной системы, где была совершена оплата, по какому тарифу и тарифному элементу,
оплаченное время (до какого периода действует оплата), дана возможность включать/отключать
принудительный показ рекламы (безотносительно того, как это выставлено в настройках
тарифа), отображается число совершенных оплат и их сумма.

Администратор может подарить время (продлить действие платного доступа), сбросить факт
оплаченности доступа, а также перейти в отчет с историей оплат данного абонента.

Факт оплаченности будет также отображен в сведениях о сессии абонента:


Диагностика

В случае успешного подключения с последующей оплатой в лог-файле wnam.log появятся


записи такого рода:
20:07:41.424 DEBUG [c.n.w.web.cp.CaptivePortalController:384] - CP mikrotik clicked:
username=4C:57:CA:XX:XX:XX, ip=10.130.102.195, dst='http://bash.im/',
server_address=10.1.0.102:80, server_name='mk-provider'
20:07:41.433 DEBUG [c.n.w.web.cp.CaptivePortalController:1732] - processAuthRequest MIKROTIK:
username=4C:57:CA:XX:XX:XX, ip=10.130.102.195, server=10.1.0.102:80, site_id=10, dst='http://ba
sh.im/'
20:07:41.433 DEBUG [c.n.w.web.cp.CaptivePortalController:1890] - processRedirectRequestCi
mac=4C:57:CA:XX:XX:XX, method=PAY, formName=, redirectUrl=http://www.provider.ru/,
key=7974c020-3ae3-421e-b88a-469d45e98d7b
20:07:46.121 DEBUG [c.n.w.web.cp.CaptivePortalController:1517] - postPay tariff=''
(58aca3a6a18c761e7c359b61), t_element='' (1), amount='10', time=1, code='null',
ci=7974c020-3ae3-421e-b88a-469d45e98d7b
20:07:46.133 DEBUG [c.n.w.web.cp.CaptivePortalController:2234] - loginAtNasCi MIKROTIK
mac=4C:57:CA:XX:XX:XX, ip=10.130.102.195, server=10.1.0.102:80, dst='http://wnam.provider.ru/cp
/pay'
20:07:46.138 DEBUG [com.netams.wnam.web.cp.Mikrotik:37] - backToMikrotik login len=548,
server='10.1.0.102:80', username=4C:57:CA:XX:XX:XX, password=password, dst='http://wnam.provide
r.ru/cp/pay'
20:07:47.610 INFO [WnamRadius:549] - AUTH for new session ID=80100f03-xxxxxx, request
MAC=4C:57:CA:XX:XX:XX, IP=10.130.102.195, cust_clientid=null
20:07:47.686 INFO [WnamRadius:723] - ACCT Start existing (80100f03-xxxxxx) session
ID=80100f03-xxxxxx, MAC=4C:57:CA:XX:XX:XX, IP=10.130.102.195, NAS=172.16.130.9
20:07:47.691 DEBUG [c.n.wnam.services.WnamCmdService:826] - ACCT-Start uhid task
NAS=172.16.130.9, CUST=4C:57:CA:XX:XX:XX, IP=10.130.102.195, DB=wnam_db
20:07:47.692 DEBUG [c.n.wnam.services.WnamCmdService:189] - ACCT-Start uhid processing
NAS=172.16.130.9, CUST=4C:57:CA:XX:XX:XX, IP=10.130.102.195, DB=wnam_db
20:07:47.693 DEBUG [c.n.wnam.services.WnamCmdService:991] - updateHostIdentity connecting to
NAS 172.16.130.9 of 0
20:07:47.723 DEBUG [c.n.w.web.cp.CaptivePortalController:1556] - getPay
tariff='58aca3a6a18c761e7c359b61, amount='10.0', time=1
20:08:16.578 DEBUG [com.netams.wnam.web.api.YandexKassa:95] - CHECK
customerNumber=4C:57:CA:XX:XX:XX, Payment={Phone=79996662211,
tariffId=58aca3a6a18c761e7c359b61, amount=10.0, orderId=2211-6129}, code=0
20:08:16.964 INFO [com.netams.wnam.web.api.YandexKassa:145] - AVISO
customerNumber=4C:57:CA:XX:XX:XX, amount=10.00, payment ID=2000001131544 for tariff '' until
1491070096962 (+ 1 hours)
20:08:30.621 INFO [com.netams.wnam.web.api.YandexKassa:195] - SUCCESS
customerNumber=4C:57:CA:XX:XX:XX, orderNumber=2211-6129, invoiceId=2000001131544,
shopDefaultUrl='http://www.provider.ru/', CI=found

Также в веб-интерфейсе WNAM в разделе "Логи переданных в WNAM команд" отобразятся


сведения о транзакции:

01.04.2017 21:42:47 PAYMENT {Site=10,


Phone=79996662211,
Amount=200.00,
OrderNumber=2211-3744,
InvoiceId=2000001131561,
MAC=4C:57:CA:XX:XX:XX,
Until=2017-04-08T21:42:47.5
84+03:00}

Отчеты

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

Тестирование платного доступа

Начиная с версии 1.4.1366 WNAM поддерживет полнофункциональное тестирование


возможности платного доступа браузером извне Wi-Fi сети оператора.

Для проведения тестирования необходимо выполнить следующие мероприятия:


1. Настройка платного доступа в соответствии с инструкцией. Убедитесь, что:

Создан тарифный план и тарифные элементы:

Существует страница-шаблон "pay1", которая содержит информацию о тарифе, ваше название,


логотип, контактный телефон, условия использования и т.п.

Тариф включен для площадки:


Запомните идентификатор площадки и IP-подсеть на площадке, они понадобятся в дальнейшем.

2. Включение возможности проводить тестовые обращения:

Внимание! Чтобы ограничить доступ до тестового интерфейса для ваших IP-адресов, настройте
прокси-сервер nginx с фильтром:
<Location /cp/testform>
allow 192.168.0.0/24;
allow 121.67.32.0/24;
deny all;
</Location>

Подробнее смотри http://nginx.org/en/docs/http/ngx_h


ttp_access_module.html
3. У вас должен быть создан абонент, прошедший идентификацию. Платный доступ может быть
предоставлен только для прошедших идентификацию абонентов. Запомните (запишите)
МАС-адрес устройства:

4. Откройте ссылку тестового доступа, https://имя.сервера.провайдера/cp/testform

(напоминаем, что при использовании платного доступа ваш сервер должен обеспечивать
защищенный посредством HTTPS интерфейс).
В открывшемся окне заполните параметры:

Destination - целевая ссылка, на которую перенаправляется абонент после успешного


совершения покупки
Username, MAC - укажите два раза МАС адрес идентифицированного устройства
IP - укажите произвольный IP-адрес, который принадлежит диапазону площадки, где
проводится тестовая оплата
Template - укажите имя шаблона страницы, содержащей информацию о выборе тарифа
Site-ID - Укажите идентификатор площадки, где проводится тестовая оплата
Выберите вариант "Страница приветствия" и нажмите "Отправить".

5. Вам отобразится страница с предложением выбрать тариф:


Рекомендуется проводить операцию в Google Chrome или подобном браузере, который
поддерживает режим представления мобильного устройства. В Chrome переключитесь в "Режим
разработчика" (справа вверху), затем выберите мобильное представление (слева внизу), также
можно выбрать отображение рамки телефона и тип телефона.

6. Выберите один из тарифных элементов:

7. При выборе элемента произойдет переход на страницу оплаты в Яндекс.Кассе:


8. Заполните данные с карты оплаты и нажмите "Заплатить":
9. В случае ошибки платежа вы получите сообщение:
10. В случае успеха платежа вы получите сообщение:
11. При переходе на "Сайт магазина" будет выполнено перенаправление по ссылке, указанной в
тестовой форме:
12. Если вернуться в административный интерфейс WNAM, в таблице пользователей будет
доступна информации о платеже по выбранному пользователю:
При нажатии на кнопку "Исптория оплат" (а также в соответствующем отчете в меню "Отчеты -
Платный доступ") можно получить список всех оплат по данному пользователю:

Также доступны сводные отчеты по оплатам, с разбивкой по площадкам:


и по времени:

13. По завершении тестирования рекомендуется отключить тестовый интерфейс в "Общие


настройки".
Конструктор страниц

Начиная с версии WNAM 1.3.1052 поддерживает новый, визуальный конструктор страниц,


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

При попытке открыть раздел "загружаемые страницы портала" администратор теперь будет
видеть следующее предупреждение:

Созданные ранее и загруженные HTML-страницы любых типов, если они были привязаны к
площадкам в разделах "авторизация", "перенаправление", "ограничения" и т.п., будут доступны
и продолжат работать, таким образом немедленный апгрейд всех страниц системы WNAM не
требуется. Вместе с тем, если вы хотите изменить какую-либо страницу у площадки, сделать это
можно только используя страницы "конструктора", описание которого идет ниже. Раздел
"Загружаемые страницы портала" позволит вам выгрузить из WNAM ранее подготовленные
дизайны страниц, логотипы, стили для того, чтобы затем импортировать их в "конструкторе".

Как известно, "загружаемые страницы портала" не имеют разделения на типы страниц


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

При первом переходе на "Конструктор", если верно настроена библиотека phantomjs, в


лог-файле /var/log/tomcat8/wnam.log появятся строки, свидетельствующие о генерации
шаблонов страниц разных типов (по умолчанию):
17:33:47.303 DEBUG [c.n.w.manager.PageContainerManager:152] - Created page from template: sms,
parameters: 29
17:33:50.087 DEBUG [c.n.w.manager.PageContainerManager:152] - Created page from template:
sms_recv, parameters: 24
17:33:52.088 DEBUG [c.n.w.manager.PageContainerManager:152] - Created page from template: call,
parameters: 0
17:33:54.053 DEBUG [c.n.w.manager.PageContainerManager:152] - Created page from template:
call_recv, parameters: 0
17:33:56.028 DEBUG [c.n.w.manager.PageContainerManager:152] - Created page from template:
login, parameters: 0
17:33:57.966 DEBUG [c.n.w.manager.PageContainerManager:152] - Created page from template:
edelweiss, parameters: 0
17:33:59.951 DEBUG [c.n.w.manager.PageContainerManager:152] - Created page from template:
voucher, parameters: 0
Внимание! Общий список страниц отображает превью, которые представляют из себя
картинки-миниатюры, созданные из HTML-представлений библиотекой phantomjs на сервере, в
момент сохранения страницы. При этом формат (размеры превью) определены в инструменте
/usr/local/bin/phantomjs.js. Также следует иметь в виду, что при генерации миниатюр
используется "псевдо-браузер" phantomjs и установленные на сервере шрифты, то есть внешний
вид превью слегка отличается от реального. Превью служат для быстрого отображения
миниатюр, в конструкторе и во всех окнах выбора страницы.

В "Конструкторе" отобразятся шаблоны страниц авторизации разного типа:

Начиная с версии 1.4.1453 конструктора также поддерживает режим модерации; при этом
страницы, требующие модерации (проверки и одобрения) помечаются золотистым цветом фона:
Все имеющиеся в системе шаблоны страниц поделены на пять категорий:

Авторизация (идентификация)
Приветствие (перенаправление)
Ограничения
Опросы
Другое

Каждую из страниц нужной категории можно будет выбрать в соответствующем разделе


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

Помимо этого, страницы категории "Авторизация" имеют несколько типов:

Отправка СМС абоненту (у.р.)


Получение СМС от абонента (у.р.)
Отправка звонка абоненту (у.р.)
Получение звонка от абонента (у.р.)
Ваучер
Авторизация в гостиничной системе Эдельвейс
Авторизация в гостиничной системе UCS Shelter
Ввод логина и пароля

Страницы категории "Приветствие" имеют три типа:

Страница приветствия (у.р.)


Социальная сеть
Видео-ролик (у.р.)

Страницы категории "Опрос" имеют два типа:

Шаблон опроса
Шаблон страницы по завершении опроса
Страницы типа "Авторизация - Отправка СМС абоненту", "Авторизация - Получение СМС от
абонента", "Приветствие" имеют визуальные (упрощенные) редакторы (отмечено в перечне
вверху как (у.р.)), остальные - только традиционные экспертные редакторы (в формате HTML).

Тип страниц играет роль при попытке назначить страницу в окне свойств площадки (или "общих
настройках") авторизации, перенаправления и т.п.; при выборе отображаются только страницы
типа, соответствующие заданному методу авторизации. Таким образом не получится по ошибке
указать метод авторизации "Отправка СМС" и при этом выбрать шаблон страницы типа
"Получение СМС".

Конструктор страниц позволяет:

Отфильтровать список страниц, доступных администраторам системы, или одному


заданному пользователю (с ролью "владелец площадки") - для этого служит выпадающий
список сверху
Отфильтровать только страницы, требующие модерации
Посмотреть набор страниц заданной категории путем переключения между вкладками
Для любой из страниц произвести одну из пяти операций:
Переименование
Выдачу прав управления и использования
Редактирование
Сброс в исходное состояние "по умолчанию" (для штатных страниц) либо удаление
шаблона (для клонов)
Клонирование (создание полной копии страницы)

Удалить можно только шаблон страницы, не


привязанный к какой-то то площадке и не
использующийся в настоящий момент.

Для клонирования шаблона с целью модификации нажмите соответствующую кнопку:


В списке появится новый шаблон, первым по счету. Шаблоны отображаются в обратном
хронологическом порядке (боле новые-первыми). Имя шаблона соответствует имени
родительского шаблона, со знаком "+". Рекомендуется шаблон сразу переименовать:
Новое имя шаблона:
Результат переименования:

Шаблону также можно дать права доступа (использования):

Если шаблон доступен администратору, только администратор имеет право назначить его для
использования в каком-то из меню (общие настройки, площадка). "Доступен администраторам" -
значение по умолчанию.

Если шаблон доступен всем пользователям, то все пользователи (учетные записи с ролью
"владелец площадки") могут использовать этот шаблон (назначать, клонировать).

Если шаблон доступен только заданному пользователю (выбирается из списка), то только этот
пользователь (учетная запись с ролью "владелец площадки") может использовать этот шаблон, а
остальные пользователи его не видят.

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


"авторизация", "перенаправление", "опросы" и т.п.

При нажатии на кнопку "редактирование" (с карандашом) появляется окно редактирования


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

Упрощенный режим предполагает создание страницы на основе готового дизайна путем


визуальной настройки необходимых параметров, заданных в самом шаблоне. Упрощенный
режим не поддерживается для некоторых типов и категорий страниц, но список
поддерживаемых типов будет расширяться в будущем. Вы самостоятельно не можете создавать
новые типы страниц и конструкторы упрощенного режима, однако вы можете менять штатные
шаблоны упрощенного режима (в экспертном режиме).

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

Начиная с версии 1.4.1453 возможности редактирования расширены:

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

Справа внизу, под фреймом предпросмотра, расположена кнопка включения/выключения


требования модерации для страницы.

Конструктор в упрощенном режиме позволяет менять множество параметров - названия, цвета,


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

Внимание! Если вы используете доступ к серверу WNAM по протоколу https, и справа в окне
превью у вас ничего не отображается, проверьте, что в конфигурационном файле nginx
присутствует строка:
add_header X-Frame-Options SAMEORIGIN;
Можно также загрузить логотип площадки, где оказывается услуга Wi-Fi.

Для страницы типа "Отправка СМС" и "Подтверждение СМС" есть три этапа - запрос номера
телефона, запрос кода подтверждения, (опционально) запрос кода с ваучера. В окне
предварительно просмотра можно переключаться между этими этапами.
В экспертном режиме можно вносить незначительные правки в шаблон страницы, если они
недоступны в упрощенном режиме.

Если вы вносите существенные правки в экспертный режим, например импортируете в него


целиком готовую страницу СМС авторизации из WNAM предыдущих версий, "упрощенный
режим" автоматически отключается:
Панель меню под редактором страницы позволяет выполнить следующие действия:

Сохранить страницу. При этом происходит генерация превью-изображения.

Скопировать стиль. При этом оформление (фон, цвета) можно скопировать из другой страницы:
Экспорт - сохранить в файл все настройки страницы и связанные файлы. Требуется при
переносе страницы между серверами.

Импорт - загрузить из файла экспортированный ранее стиль:

Сброс страницы - позволяет сбросить либо установленные параметры упрощенного режима,


вернуи страницу в исходное состояние при имеющемся HTML-шаблоне, либо сбросить
HTML-шаблон целиком (шаблон экспертного режима).

После сохранения отредактированной страницы на сервере происходит генерация её


миниатюрного изображения в формате статической картинки, и отображение его в перечне
страниц. Внимание: внешний вид миниатюрного изображения может незначительно отличаться
от реального представления, которое вы до этого видели в окне предпросмотра справа. Это
нормально. Абонент будет видеть именно реальную, основанную на HTML страницу.
Созданную в конструкторе страницу любой категории любого типа можно затем использовать в
других окнах настройки WNAM. Например, чтобы использовать шаблон страницы типа "Отправка
СМС абоненту" с именем "SMS1" небходимо в настройках параметров авторизации в меню
"Конфигурация-Авторизация" выбрать метод: отправка СМС абоненту, указать требуемые
параметры СМС шлюза, и нажать на кнопку "Выбор":
При этом откроется окно, содержащее все активные страницы данного типа, в виде
картинок-миниатюр. Следует выбрать требуемую.
Аналогичным способом редактируются шаблоны страниц приветствия:

Конструктор страницы приветствия также имеет упрощенный и экспертный режимы работы:


Аналогичным способом осуществляется редактирование страниц опросов, и привязка их к
проводимым опросам.

Для того, чтобы владелец площадки мог самостоятельно управлять своими страницами,
необходимо отредактировать его учетную запись. Помимо указания привязанных к ней
площадок выберите требуемый уровень полномочий работы с шаблонами:
При этом владелец площадки, войдя в свой личный кабинет WNAM, увидит миниатюры страниц
входа и приветствия, присвоенные его первой по списку площадки:
При нажатии на миниатюру откроется соответствующий конструктор страниц, где доступны
только те шаблоны, которые ему делегированы:
После редактирования страницы (если на то есть права) владелец площадки может выбрать её в
настройках своей площадки:
Загружаемые страницы портала

Внимание! Начиная с версии WNAM 1.3.1084 раздел "Загружаемые страницы портала" находится
в режиме "для чтения". Назначенные площадкам ранее страницы разных типов продолжат
работать, но для присвоении новых страниц необходимо использовать конструктор.

Нижеследующая информация справедлива для WNAM версий 1.1, 1.2 и 1.3 ранее 1.3.1084.

Для обеспечения работы механизмов авторизации пользователя, а также отображения


рекламной или справочной информации пользователю (абоненту, подключенному к
управляемой WNAM беспроводной сети) в составе программного обеспечения WNAM работает
мини-веб-сервер с возможностью онлайн-редактирования контента (содержимого).

Страницы (файлы) доступны абоненту при обращении по ссылке http://адрес_сервера/cp/имя_ф


айла . Авторизация доступа отсутствует, отображение индексной страницы (списка файлов) не
производится.
По умолчанию веб-сервер предоставляет следующие страницы (отвечает на запросы по
служебным ссылкам):

Путь Описание

/cp/mikrotik Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с устройств Mikrotik

/cp/sms Страница авторизации путем


СМС-подтверждения (редактируемый шаблон)

/cp/redirect Страница пост-авторизации (согласие с


условиями или отображение рекламы,
редактируемый шаблон)

/cp/overlimit Страница с информацией о причине запрета


предоставления доступа из-за превышения
лимита

/cp/cisco Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с устройств Cisco WLC

/cp/bluesocket Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с устройств Bluesocket

/cp/ruckus Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с устройств Ruckus

/cp/isg Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с маршрутизатора Cisco ISG

/cp/linux Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с маршрутизатора Linux

/cp/zyxel Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с устройств Zyxel

/cp/pfsense Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с маршрутизатора pfSense

/cp/aruba Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с устройств Aruba

/cp/unifi Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с устройств UniFi
/cp/alu Основная ссылка, на которую производится
первоначальный редирект сессии
пользователя с устройств Alcatel-Lucent

/cp/hpmsm Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с устройств HP MSM

/cp/tplink Основная ссылка, на которую производится


первоначальный редирект сессии
пользователя с устройств TP-LINK EAP

При перенаправлении сессии пользователя на страницу-редиректор от устройства (/cp/mikrotik,


/cp/bluesocket, /cp/cisco и т.п.) производится проверка:

Текущей политики доступа пользователя (без авторизации или с СМС-авторизацией)


Наличия записи о пользователе в базе данных (по МАС-адресу устройства пользователя)

Если в базе данных запись о пользователе отсутствует, а настройки требуют проведения


авторизации посредством СМС, производится автоматическое отображение пользователю
заданной формы СМС-авторизации, с последующим переходом по /cp/sms. В противном случае
производится перенаправление сессии пользователя на форму пост-авторизации (наличии), или
заданную в "общих настройках" ссылку, оригинальную ссылку одновременно с активацией
текущей сессии пользователя на сервере доступа.

Шаблон страницы авторизации методом отправки СМС на телефонный номер пользователя, и


шаблон пост-авторизации, поставляется в составе системы WNAM и может быть отредактирован
администратором или оператором самостоятельно. Например, можно изменить цветовое
оформление, добавить логотип, добавить ссылку на пользовательское соглашение. Неизменным
должен оставаться принцип работы (две фазы отображения, см. ниже), а также код форм со
всеми её полями. Текущая реализация формы использует некоторое количество статических
дистрибутивных ресурсов в каталогах веб-сервера WNAM /js/, /css/ (это компоненты JQuery,
Bootstrap и т.д.). Вы можете воспользоваться ими, или же загрузить собственные компоненты в
каталог /cp/ (см. ниже). При необходимости можно вернуть шаблон "по умолчанию", отменив все
сделанные вами изменения.

Редактирование производится в административном интерфейсе в меню "Конфигурация" -


"Загружаемые страницы портала":

Два "стартовых" шаблона (sms, redirect) редактируются при нажатии на соответствующие


кнопки вверху страницы. Значок справа кнопки позволяет открыть шаблон в другом окне, чтобы
вы могли посмотреть, как он выглядит.

По умолчанию в комплекте WNAM поставляются следующие шаблоны: sms, redirect, call_recv,


sms_recv, overlimit, soc_net_redir, quiz, quiz_finish, voucher.
При редактировании любого из двух заранее установленных, готовых шаблонов, а также любых
файлов с расширением html, возникает окно онлайн-редактора HTML следующего вида:

Вы можете вернуть дистрибутивный текст шаблона ("восстановить по умолчанию", только для


шаблонов sms и redirect), сделать копию (клон) шаблона под другим именем:
Для справки, используемые стили также (статически) доступны по ссылке http://адрес_сервера/
css/sms.css

Интерфейс позволяет загрузить в портал любой файл с диска, просмотреть список загруженных
файлов. Для каждого из них доступны действия:

удалить
открыть в другом окне
скачать на компьютер в виде файла
отредактировать (только HTML-файлы)

При отправке шаблона пользователю на стороне сервера конструкции вида $(ключ) предварите
льно замещаются актуальными значениями.

Механизм активации доступа работает следующим образом:

Шаг 0: Пользователь получает текст страницы, обратившись по ссылке /cp/cisco (и


аналогичным) по методу POST либо /cp/sms по методу GET. Фактически, обращение
производиться путем перенаправления сессии пользователя сервером доступа. При
загрузке страницы браузер пользователя подтягивает необходимые компоненты (стили,
логотипы и т.п.) с сервера WNAM или от сторонних ресурсов. В последнем случае
необходимо разрешить неавторизованный доступ к таким ресурсам на сервере доступа
(walled garden, ACL и т.п.), явно указав IP адреса серверов, где они находятся.
Шаг 1: Пользователь заполнят форму с номером телефона и нажимает кнопку "получить
код", который вызывает отправку формы /cp/sms с номером телефона по методу POST.
Сервер WNAM, получив форму, производит необходимые проверки и отправляет СМС по
указанному номеру. Пользователю возвращается та же форма, с заполненным номером
телефона.
Шаг 3: Пользователь получает страницу /cp/sms с заполненным номером телефона, вводит
в единственное поле полученный код активации доступа, отправляет форму серверу WNAM
по методу POST. Передаются и номер, и код. Сервер, при получении формы, производит
проверки и либо выдает сообщение об ошибке (неверный код), либо производит
авторизацию сессии пользователя и редирект на следующую страницу (реклама или иной
сайт).

Подробнее о структуре страниц портала написано здесь.

Ваучеры

Начиная с версии 1.3.1300 WNAM поддерживает расширенные возможность по управлению


ваучерами доступа. Этот механизм полностью заменяет собой систему ваучеров, реализованную
в версии 1.3.770.

Основные отличия новой системы:

Возможность создавать группы ваучеров


Представление списка ваучеров и в административном интерфейсе, и в интерфейсе
владельца площадки
Привязка групп ваучеров и выписанных ваучеров к конкретным владельцам площадки;
выписанные ваучеры работают только для этих площадок
Шаблоны ваучеров с возможность печать ваучеров в виде таблицы кодов, либо
индивидуальных ваучеров по шаблону
Дополнительные настройки времени жизни ваучера и накладываемых ограничений
Отказ от использования ваучеров с типа "пользователь" с "виртуальными" МАС адресами
00:00:00:00:00:00
Возможность использования одного ваучера для идентификации нескольких устройств (с
версии 1.4.1458)

В текущей версии не реализовано (но будет реализовано впоследствии):

Выбор различного формата кода ваучера для разных групп

Для работы с ваучерами в административном интерфейсе WNAM перейдите в меню


"Конфигурация-Ваучеры". Откроется окно представления списка групп ваучеров:

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

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

Внимание! Выписывающий ваучеры несет ответственность за корректное указание параметров


абонента (ФИО, номер брони,номер телефона и т.п.) для целей последующей идентификации и
розыска пользователя, если потребуется. Человек, выдающий неперсонифицированные ваучеры
(выписанные в составе группы) несет ответственность за фиксацию кода выданного ваучера (в
гостиничной системе, на копии паспорта) для последующего розыска.

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


откроется диалоговое окно.

Код ваучера генерируется автоматически по шаблону (см. далее).

Обязательные поля - Имя пользователя или иной идентификатор, по которому пользователя


будет видно в системе после активации ваучера.
Поле комментарий - необязательное, содержит дополнительную информацию (например, номер
брони), которая отобразится в поле "комментарии" записи о пользователе.

Срок действия ваучера (в часа) определяет время, в течение которого от момента создания вауч
ера он может быть активирован и использован (предоставляется доступ в Интернет)

Срок времени после активации определяет время, в течение которого от момента активации вау
чера он может быть использован (предоставляется доступ в Интернет)

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


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

Возможно указать лимит числа устройств (индивидуальных МАС-адресов), которые можно


активировать одним ваучером. По умолчанию значение 1. Полезно, если вы выписываете
ваучеры для гостиниц, где у посетителей может быть 2-3 устройства с модулями Wi-Fi, или в
номер заезжает семья.

После указания всех требуемых параметров нажмите кнопку "Создать". В таблице групп
ваучеров отобразится список групп - будет создана группа "выписанные индивидуально" и
указано число ваучеров в ней:
Теперь необходимо решить вопрос с форматом кода ваучера и шаблоном ваучера.

Формат задается в "общих настройках":

Шаблон ваучера - его графическое (визуальное) представление, которое будет использовано в


форме печати ваучера. Его создают (редактируют) в "конструкторе страниц" - тип "Другое":
Шаблон можно отредкатировать, склонировать, назначить права (чтобы владелец площадки мог
его использовать самостоятельно):
Возможность авторизации по ваучеру на конкретной площадке предоставления Wi-Fi включается
путем выбора соответствующего шаблона страницы авторизации. Можно указать страницу типа
"авторизация по ваучеру", а можно включить возможность авторизации по ваучеру в общем
шаблоне "Авторизация по СМС", например "Отправка СМС Абоненту":
Вернемся к просмотру групп ваучеров. Для каждой созданной группы возможно её
редактирование:

Здесь выбирается созданный шаблон страницы (печатной формы):


Можно распечатать ваучеры из группы (сейчас там только один ваучер - только что созданный):

Откроется дополнительное окно (вкладка) с печатным представлением:


При попытка авторизации пользователя через ваучер ему будет выдано окно, где можно
выбрать способ "через ваучер" и далее указать код. Регистр (большие или маленькие буквы) не
важен.
После успешной активации ваучера в окне свойств пользователя появится дополнительная
информация:
Статус ваучера будет "Активирован" (с ссылкой на профиль или профили абонентов):

Система WNAM также позволяет создать группы ваучеров. Коды ваучеров создаются при
создании группы.
В данном примере в группе создано 20 ваучеров.

При клике в строку группы производится переход в список ваучеров группы.

Ваучеры группы можно распечатать в табличном представлении:


Ваучеры группы можно распечатать в представлении шаблонов:

В личном кабинете владельца площадки работает аналогичный механизм ваучеров. Разница


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

Социальные сети

Начиная с версии 1.3.774 WNAM поддерживает работу с социальными сетями (Facebook,


ВКонтакте, Одноклассники, Instagram) и авторизацию через Портал Госуслуг (ЕСИА).

Внимание! Идентификация через социальные сети согласно законодательству не является


доверенной и не может использоваться (как единственный метод) для идентификации абонентов
Wi-Fi. Поэтому вы можете использовать социальные сети только как дополнительный метод
идентификации с целью продвижения своих товаров и услуг и сбора дополнительных сведений
об абонентах с целью таргетирования рекламы.

Вход через социальные сети строится на следующих принципах:

использование шаблона soc_net_redir (или его клона) как формы перенаправления


пользователя (после обязательной однократной авторизации через СМС, звонок или ЕСИА)
настройки вашего приложения (вашего бизнеса) во всех четырех соцсетях
настройки идентификаторов приложения в WNAM
настройка маршрутизатора доступа
получение при входе и записи информации из профиля соцсети в параметры пользователя
Wi-Fi для построения отчетов и таргетирования рекламы
продвижения вашего товара/услуги через лайк или репост в ленте на стене пользователя в
момент входа (для некоторых типов сетей)
1. В меню настроек перенаправления (глобальных, или для заданной площадки) указать форму soc_net_redir:

Форма может быть отредактирована в разделе "Конфигурация - Загружаемые страницы портала"


и содержит кнопки входа через социальные сети и кнопку входа, если социальных сетей у
пользователя нет. При необходимости, часть из этих кнопок можно из формы удалить.
Внимание: шаблон страницы входа должен именоваться так, чтобы в начале имени
присутствовало "soc_net".
2. Настройка приложения в социальной сети - смотри в этом разделе

3. Настройка идентификаторов приложения


в WNAM
Производится в меню WNAM "Конфигурация - Социальные сети" либо в соответствующей
закладке свойств площадки. Необходимо указать идентификатор приложения, ключ, ссылку
перенаправления. Все 4 типа социальных сетей имеют идентичные настройки.
В качестве "адреса сайта" необходимо указывать на доступный для пользователей Wi-Fi
специальный URL на сервере WNAM, куда будет идти перенаправление со страницы авторизации
социальной сети. Эта ссылка имеет вид:

https://wifi.provider.ru/cp/social/{ИмяСоциальнойСети}

Если в этом окне доступны другие поля - идентификаторы для лайка и репоста, необходимо их
указать (если вы знаете идентификаторы соответствующих объектов), для автоматического
действия (лайк, репост и т.п.) от имени абонента, который авторизовался через социальную
сеть.

4. Настройка маршрутизатора доступа

Поскольку вы должны предоставить пользователю возможность пройти авторизацию через


соцсеть до того, как ему будет предоставлен полный доступ в интернет, вы обязаны разрешить
трафик до серверов соцсетей в "белых списках" вашего маршрутизатора доступа. Например, для
роутера Mikrotik список доступа выглядит следующим образом:
Или в текстовом виде:
/ip hotspot walled-garden
add dst-host=*.facebook.com dst-port=443
add dst-host=*.fbcdn.net dst-port=443
add dst-host=*.ok.ru dst-port=443
add dst-host=*.vk.com dst-port=443
add dst-host=*.vk.com dst-port=80
add dst-host=*.instagram.com dst-port=443
add dst-host=*.mycdn.me dst-port=443
add dst-host=*.akamaihd.net dst-port=443
add dst-host=vk.com dst-port=80

Внимание! В этом случае ваш абонент сможет пользоваться социальной сетью (например, через
приложение соцсети) не проводя идентификацию.

5. Процесс авторизации пользователя

При подключении к сети пользователь проходит первоначальную идентификацию заданным


способом (СМС или звонок), затем попадает на страницу перенаправления, где выбирает вход
через одну из социальных сетей, и перенаправляется на страницу этой сети.

5.1. Авторизация через Facebook


6. Получение записи о профиле пользователя из социальной сети

После успешного входа через социальную сеть проводится перенаправление сессии


пользователя на заданный сайт (URL), указанный в поле "Отправлять по ссылке" на странице
"Перенаправление". Помимо этого получается информация о профиле из социальной сети,
которая записывается в сведения о пользователе:
Настройка учетных записей в социальных сетях
1. Общие сведения

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

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

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

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

Помимо этого, вам потребуется указать callback-ссылку, это адрес сервера WNAM, на который
перенаправляется авторизованный в социальной сети клиент. Это может быть IP-адрес или
ссылка с DNS-именем, не важно. Главное, чтобы Wi-Fi абонент мог попасть в нее со своего
мобильного устройства. Во всех случаях ссылка имеет
вид: https://wifi.provider.ru/cp/social/{имя_социальной_сети}, например https://wifi.provider.ru/c
p/social/vk

2. Facebook

Вам необходимо создать свою учетную запись в социальной сети и зарегистрироваться на


портале разработчика

Далее необходимо создать "приложение" - описание вашего бизнеса, который вы будете


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

Вам необходимо будет получить идентификатор приложения (длинное случайное число) и


секретный ключ приложения (не показывайте его никому).

Загрузите логотип приложения (1024х1024 пикселя) и укажите дополнительные сведения:


Отредактируйте список тестировщиков:
В приложении создайте новый продукт "Вход через Facebook" и укажите тип авторизации OAuth,
как показано на картинке:
Внимание! Важно! В качестве адресов перенаправления вы обязаны указать ссылки до сервера
WNAM и заданной страницы (/cp/social/fb), на которую будет перенаправлен браузер
пользователя после успешного входа в соцеть. Например, если ваш сервер авторизации WNAM
доступен для пользователей по адресу https://wifi.provider.ru, тогда URL перенаправления OAuth
будет иметь вид https://wifi.provider.ru/cp/social/fb

Сохраните все изменения.

3. Одноклассники
Процедура регистрации аккаунта подробно описана на сайте для разработчиков "ОК": http://ne
w.apiok.ru/dev/app/create

Вы получите идентификатор приложения и секретный ключ приложения. Их необходимо внести


в соответствующие поля административного интерфейса WNAM. В качестве обратной (callback)
ссылки укажите https://wifi.provider.ru/cp/social/ok

4. Instagram
Используя вашу учетную запись в Instagram, необходимо зайти в раздел для разработчиков: htt
ps://www.instagram.com/developer/
Выберите вариант "Register New Application" и проведите необходимые настройки:
Вы получите идентификатор приложения и секретный ключ приложения. Их необходимо внести
в соответствующие поля административного интерфейса WNAM. В качестве обратной (callback)
ссылки укажите https://wifi.provider.ru/cp/social/instagram

После тестирования "приложения" отправьте его на модерацию.

5. ВКонтакте
В вашей учётной записи на сайте ВКонтакте перейдите в раздел "Управление" (нижний пункт
меню слева в новом интерфейсе). Там потребуется создать новое "приложение":
Выполните настройки приложения (логотипы, описание, ключ):
Вы получите идентификатор приложения и секретный ключ приложения. Их необходимо внести
в соответствующие поля административного интерфейса WNAM. В качестве обратной (callback)
ссылки укажите https://wifi.provider.ru/cp/social/vk

Опросы

Меню "Опросы" (доступно в WNAM версии 1.3) позволяет после авторизации абонента проводить
его опрос - предлагать набор вопросов с вариантами ответа.

Начиная с версии 1.4.1362 возможно управление опросами и из личного кабинета владельца


площадки (если пользователю дано такое право; не забудьте также выдать права на шаблоны
форм опросов в "конструкторе").
Опрос можно создавать в административном интерфейсе WNAM в разделе "Конфигурация -
Опросы", не прибегая к верстке HTML-страницы шаблона опроса. Однако, клонированием
штатной страницы можно добиться уникального кастмизированного внешнего вида опроса.

В системе может одновременно быть настроено множество опросов. Они перечислены в меню "К
онфигурация - Опросы". В таблице приведены созданные опросы с указанием числа вопросов в
опросе. Также на выбор предлагается три действия:

Редактирование параметров опроса и вопросов в нем


Просмотр опроса (как он будет выглядеть для wifi-пользователя) в новом окне
Удаление опроса. Внимание! При удалении опроса исторические данные по нему из базы
данных не удаляются.

Для создания нового опроса нажмите кнопку "Создать опрос". При этом откроется окно
редактирования опроса. Необходимо задать название опроса и выбрать ряд параметров.

Параметры опроса приведены ниже:

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

Шаблон опроса Выбор шаблона страницы, куда подставляется


тело (название и вопросы опроса) при показе
опроса пользователю. Штатная страница
имеет имя quiz, можно также сделать её клон,
видоизменить и использовать его.

Шаблон по завершении Выбор шаблона страницы, отображаемой


пользователю после успешного завершения
опроса (если задано, см. ниже). Штатная
страница имеет имя quiz_finish и
функционально эквивалентна странице redire
ct.

Действие по завершении опроса Выбор одного из трех действий, которые


производятся после завершения опроса:

Оригинальная ссылка - производится


редирект сессии пользователя на ту
страницу, на которую тот изначально
переходил при подключении к сети
Заданная ссылка - производится редирект
на ссылку, указанную ниже
Страница перенаправления - производится
редирект на страницу, указанную в поле "Ш
аблон по завершении"

Действие при повторении опроса Если пользователь уже проходил опрос, при
следующем подключении (создании новой
сессии в системе WNAM) пользователю будет
предложено:

Оригинальная ссылка - производится


редирект сессии пользователя на ту
страницу, на которую тот изначально
переходил при подключении к сети
Заданная ссылка - производится редирект
на ссылку, указанную ниже
Страница перенаправления - производится
редирект на страницу, указанную в поле
"Шаблон по завершении"

URL Ссылка, на которую производится


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

Затем идет перечень вопросов в опросе, добавить которые можно по кнопке "Добавить вопрос".

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

Вопросы могут быть четырех типов:

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


множественный - допустим выбор нескольких (или ни одного) из вариантов ответов
рейтинг - отображается линейка из пяти звездочек, необходимо выбрать от 0 до 5 звезд,
проставив таким образом оценку от 0 до 5
текст (произвольный) - отображается поле ввода произвольного текста

Можно указывать обязательность ответа (если ответ не указан, пользователю будет предложено
заполнить поле).
По окончании редактирования параметров опроса и всех вопросов в опросе необходимо нажать
на кнопку "Сохранить", и проверить работу опроса путем нажатия соответствующего значка со
стрелкой в таблице опросов. При этом опрос откроется в новом окне:
При завершении опроса откроется окно, соответствующее шаблону quiz_finish:
Если опрос выглядит корректно, необходимо указать использование опроса в настройках
перенаправления (в общих настройках, или для конкретной площадки):

При прохождении опроса на мобильном устройстве производится динамическое встраивание


вопросов в шаблон:
Отчет по результатам опросов можно получить в разделе "Отчеты - Опросы":
Сводный результат можно выгрузить в файл; также доступна выгрузка индивидуальных
результатов "полный отчет" (в ней видны все ответы типа "текст (произвольный)").

Нотификации

Начиная с версии 1.4.1462 WNAM поддерживает новый инструмент - нотификации (уведомления


).

Он позволяет сообщить внешней системе о наступлении некоторого события, которое произошло


в беспроводной сети и связано с системой авторизации WNAM. Таким событием может быть
редирект устройства абонента на портал авторизации, прохождение авторизации, запуск и
останов сессии доступа в Интернет и т.п. В качестве внешней системы может выступать ваше
любое программное обеспечение, которое должно выполнять какие-то требуемые вам действия
при наступлении событий в сети Wi-Fi. Это может быть система взаимодействия с
пользователями (например, учет их в какой-то базе данных), система отправки пользователям
СМС рекламного характера, маркетинговая система, система отслеживания числа посетителей
беспроводной сети в заданной локации и т.п.. Таким образом, WNAM позволяет бизнесу
монетизировать беспроводную сеть, применяя дополнительные средства взаимодействия с
пользователями на своё усмотрение.

Вы можете обратиться в ООО "Нетамс" за помощью в решении вашей конкретной задачи.

Нотификации настраиваются из меню "Конфигурация - Нотификации":

В этом разделе присутствует список объектов, каждый из которых представляет из себя задачу
(условие), в которой настраивается, в каких случая и что исполняется.

Объектов типа "Нотификация" может быть много. Если параметры нескольких объектов
пересекаются, например у вас есть два объекта, которые срабатывают на событие "редирект
пользователя на портал", они будут обработаны оба.

Из данного окна можно просмотреть список имеющихся нотификаций, создать новый объект или
отредактировать имеющийся. Для этого служит кнопка "Создать нотификацию", либо можно
нажать в строку таблицы. В обоих случаях откроется редактор с тремя вкладками, позволяющий
выполнить все настройки.

В первой вкладке настраивается название объекта, указывается время создания, время


последнего срабатывания и их число, а также задаются типы событий (условия), при которых
происходит срабатывание.

Можно также включить (активировать) и выключить (деактивировать) работу нотификации,


либо удалить её.

В качестве возможных условий срабатывания (типах событий) допустимы:

REDIRECT("Редирект на портал")
AUTH_REQ("Запрос авторизации")
AUTH_CONFIRM("Подтверждение авторизации")
SESSION_START("Запуск сессии")
SESSION_STOP("Останов сессии")

Код WNAM содержит соответствующий обработчики, которые при наступлений событий


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

Вторая вкладка позволяет выбрать, уведомления с какой площадки будут обработаны. Можно
указать конкретную площадку, или "все":

Также можно настроить фильтр по частоте срабатывания. Например, для одного МАС адреса
события типа "перенаправление на портал" могут срабатывать много раз подряд с одними и теми
же параметрами. Чтобы избежать ситуации, когда внешняя система получает уведомление по
аждому событию, можно выбрать режим "подавлять повторные события", указать число секунд
(интервал подавления) и тип совпадения, использующийся при проверке повторности (либо МАС
адрес, либо комбинация МАС и идентификатор площадки).
В третьей вкладке задается обработчик, который будет использован для уведомления внешней
системы, и набор параметров, которые будут переданы этому обработчику:
Допустимы четыре типа обработчиков:

Вызов локального (по отношению к серверу WNAM) скрипта


Запрос внешнего ресурса по HTTP GET
Запрос внешнего ресурса по HTTP POST
Уведомление внешней аналитической системы MLA

При вызове локального скрипта параметры передаются в виде аргументов командной строки.

При вызове ресурса по GET - в виде набора пар "ключ=значение", разделенных символом &,
прямо в URL запроса

При вызове ресурса по POST - в виде стандартного запроса с параметрами, упакованными в


формат json
Вы должны задать путь до скрипта, URL для запроса, или IP адрес и пароль MLA

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


передаются внешней системе, согласно таблице:

Тип объекта Ключ в параметрах Передаваемое значение

MAC mac МАС адрес устройства


пользователя в формате
ХХ:ХХ:ХХ:ХХ:ХХ:ХХ

AP MAC apmac МАС адрес точки доступа


Wi-Fi, через которую
подключен пользователь, в
формате ХХ:ХХ:ХХ:ХХ:ХХ:ХХ

ID площадки siteId Идентификатор площадки,


например "1"

ID сессии sessId Идентификатор сессии,


например "80400105-7b8fb8"

IP адрес ip IP адрес устройства абонента,


например 192.168.1.203

Объект "пользователь" cust Объект типа Customer в


формате JSON,
соответствующий объекту из
коллекции db.customers базы
данных

Объект "площадка" site Объект типа Site в формате


JSON, соответствующий
объекту из коллекции
db.areas базы данных

Объект "сессия" sess Объект типа Session в


формате JSON,
соответствующий объекту из
коллекции db.sessions базы
данных

Если в момент создания события значение параметра не известно (например, вы указали


"Объект "сессия"" на событие "Перенаправление", когда сессии ещё нет), этот параметр не
передается.

Необходимо иметь в виду, что события выстраиваются в асинхронную очередь и могут


обрабатываться с небольшой задержкой, которая зависит от производительности и загрузки
вашего сервера. В случае срабатывания нотификации в лог-файле вы заметите запись,
аналогуичную этой:
15:39:41.157 DEBUG [c.n.w.services.NotificationService:145] - Execute notification '' handler
POST, event type REDIRECT, object: {E4:02:9B:7B:8F:B8}

Взаимодействие c СОРМ

Начиная с версии 1.1.504М программное обеспечение WNAM поддерживает взаимодействие с


внешними системами оперативно-розыскных мероприятий (СОРМ). Эта дополнительная
возможность является лицензируемой, и не входит в базовую лицензию.

Согласно Постановлению Правительства РФ от 25 июня 2009 г. N 532 "Об утверждении перечня


средств связи, подлежащих обязательной сертификации", параграф "VI. Оборудование средств
связи, в том числе программное обеспечение, обеспечивающее выполнение установленных
действий при проведении оперативно-розыскных мероприятий", пункт "29. Технические и
программные средства информационных систем, содержащих базы данных абонентов оператора
связи и предоставленных им услугах связи, обеспечивающие выполнение установленных
действий при проведении оперативно-розыскных мероприятий" программное обеспечение
оператора связи должно быть сертифицировано. Вместе с тем, в настоящий момент
нормативно-правовая документация, в том числе требования к таким системам, равно как и
требования к их сертификации, отсутствуют.

Согласно требованиям Закона "О Связи" (статья 64) оператор связи обязан использовать
средства, обеспечивающие проведение оперативно-розыскных мероприятий. Для этого оператор
приобретает и устанавливает у себя соответствующее оборудование, организует каналы связи, и
т.п. Программное обеспечение WNAM может передавать в систему СОРМ оператора информацию
об абонентах, подключившихся к беспроводной сети Wi-Fi, эксплуатируемой оператором.
Производится однонаправленная отправка уведомлений о текущем IP-адресе, телефонном
номере и иных параметрах, посредством протокола RADIUS.

Для обеспечения отправки сообщений в административном интерфейсе WNAM доступны


настройки в меню "Конфигурация - Взаимодействие с СОРМ":

Вы можете указать до трёх IP-адресов (с секретными ключами) внешних систем (СОРМ), на


которые будут отправляться пакеты типа RADIUS ACCT (UDP port 1813) при создании и
завершении каждой сессии доступа абонента. Пакеты отправляются без ожидания
подтверждения. Возможность запроса к API от внешних систем для получения детально
информации об абоненте, его сессиях доступа, потоках трафика появится в начале 2016 года. О
братитесь к нам, если вы являетесь производителем систем СОРМ, или вам нужна
дополнительная консультация.

Отправляемые пакеты имеют следующий набор атрибутов:

Атрибут RADIUS ACCT Выставляемое значение


User-Name МАС-адрес устройства пользователя, или
номер его телефона, если известен

NAS-IP-Address IP-адрес сервера доступа (хотспота)

NAS-Identifier Идентификатор устройства доступа (параметр


"Местоположение", присвоенное в настройках
"сервера доступа")

Acct-Status-Type Типа записи, Accounting-Start или Accounting-


Stop

Acct-Session-Id Идентификатор сессии (совпадает с


идентификатором из таблицы "Сессии")

Acct-Input-Octets Количество переданных байт (равно нулю при


старте сессии)

Acct-Output-Octets Количество полученных байт (равно нулю при


старте сессии)

Calling-Station-Id Идентификатор (MAC-адрес) устройства


абонента

Called-Station-Id Идентификатор точки доступа (МАС-адрес,


имя хотспота)

Framed-IP-Address Текущий IP-адрес абонентского устройства

Event-Timestamp Текущее время (UNIX timestamp)

Connect-Info Идентификатор Wi-Fi устройства


пользователя, определяемый из
DHCP-заголовков (при наличии)

Запись ведется в атрибут с таким именем,


поскольку подходящих по смыслу
стандартных атрибутов нет

WISPr-Location-ID Идентификатор (номер) площадки, откуда


производится доступ

WISPr-Location-Name Имя площадки (Адрес/название), откуда


производится доступ

WISPr-Billing-Class-Of-Service Тэг, установленный в соответствующем поле


настройки площадки. Обычно выставляют код
федерального региона

Acct-Session-Time Длительность сессии абонента (равна нулю


при старте сессии), в секундах
Password-Retry Время (UNIX timestamp) первоначальной
регистрации данного абонента в системе
(первой сессии)

Запись ведется в атрибут с таким именем,


поскольку подходящих по смыслу
стандартных атрибутов нет

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

Общие настройки

В меню "Общие настройки" задаются два параметра системы:

1.
1. Действие, которое происходит, если пользователь обратился к корневой ссылке сервера
WNAM (т.е. по адресу http://servername/ )
По умолчанию производится автоматическое перенаправление запроса на ссылку
административного портала (http://servername/wnam/login). Это может быть не вполне
удобно (пользователи, подключившиеся к Wi-Fi, будут подбирать пароль). Можно
установить автоматическое перенаправление на пустую страницу, а для целей
администрирования сервера держать в браузере соответствующую закладку.
2. Возможность использовать тестовые интерфейсы отправки СМС-мсообщений (проверка
настоек СМС-шлюза), и отпрпавки форм авторизации и перенаправления.
Интерфейсы доступны по ссылкам http://servername/cp/testsend и http://servername/cp/tes
tform соответственно. По окончании настроек, не забудьте отключить их.
3. Возможность группировать площадки по типам (регион/площадка/зона/точка доступа).
4. Лицензионный ключ. Без ключа система будет работать с ограничениями месяц, а потом
отключится. После приобретения WNAM вы получите уникальный ключ, который
необходимо ввести в это окно, и сохранить изменения. Перезапуска программы не
потребуется. WNAM периодически проводит проверку действительности лицензионного
ключа, и привязанных к нему ограничений (например, по срокам, и числу площадок), на
сервере ООО "Нетамс".

Работа с базой данных

В разделе меню "Работа с базой данных" приведены справочные и настраиваемые параметры,


определяющие взяимодействие WNAM с базой данных.

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


кодом MongoDB. Поддерживается версия >2.4. База данных этого типа (так называемая No-SQL
база) обладает высокой производительностью, возможностью хранить слабо структурированные
данные (например, параметры записи о пользователе и сессии), структурированные данные
(потоки), имеет встроенные средства масштабирования, обеспечения отказоустойчивости и
разделения нагрузки.

В базе хранятся:

конфигурация (пользователи веб-интерфейса, площадки, сервера доступа и т.п.)


учётные записи пользователей (абонентов WiFi)
записи о сессиях и потоках трафика
формы пользовательского веб-интерфейса, файлы и картинки портала

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

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

Верхняя панель страницы содержит справочные сведения о размере таблиц (в терминах mongo -
коллекций) данных, количестве записей. Надо иметь в виду, что при удалении данных размер
занимаемой дисковой памяти не уменьшается (база всегда растёт "вверх"); новые записываемые
данные просто перезапишут старые.

В процессе эксплуатации, если вам по каким-либо причинам необходимо удалить часть записей
базы по времени и/или коллекциям, вы можете это сделать из панели "ручная очистка базы".

Если вам не требуется долговременное хранение данных, вы можете настроить процедуру


автоматической очистки (удаления) "старых записей" из всех "растущих" коллекций
(пользователи, сессии, потоки, логи).

Поскольку основными записями в лог-коллекции при продуктивной работе являются записи типа
AUTH и ACCT, которые нужны зачастую только на этапе пуско-наладке системы, запись их в лог
можно со временем отключить.

Логи
Данный раздел меню позволяет просмотреть полный протокол операций, совершаемых
администратором и пользователями вашей сети. В перечень попадают операции авторизации,
аккаунтинга, активации доступа по СМС, присвоения идентификаторов DHCP записям о
пользователе, запроса отображения рекламных блоков и переходов по ним, и т.п.

Помимо этого, WNAM ведёт подробный лог-файл в каталоге сервера приложений, /var/log/tomca
t7/ , где создаются файлы:

wnam.log - основной лог-файл программы


wnam-radius.log - лог-файл событий (пакетов) RADIUS
wnam-flow.log - лог-файл полученных потоков NetFlow
wnam-error.log - лог-файл ошибок выполнения программы

Отчёты
Основной целю работы WNAM является формирование разнообразных статистических отчётов. В
настоящий момент доступны следующие типы отчетов (в скобках указана версия WNAM, в
которой реализован отчёт):

Тип отчёта ЛК? Назначение

Активность за период + Предоставляет информацию


об объёме переданного
трафика, числе сессий
подключения, числе
уникальных пользователей за
периоды времени для
выбранной (или всех)
площадок, с указанием
интервалов времени
(разбиения таблицы по
строкам по времени)

Активность по площадкам + Предоставляет информацию


об объёме трафика по каждой
из площадок, числе сессий
подключения, числе
уникальных пользователей за
заданный период времени, с
разбиением по площадкам

Активность по точкам доступа Предоставляет информацию


Wi-Fi об объёме трафика по каждой
из площадок, числе сессий
подключения, числе
уникальных пользователей за
заданный период времени, с
разбиением по точка доступа
Wi-Fi. Этот отчёт срабатывает,
если ваша сеть построена на
управляемых точках доступа
(конкретнее, МАС адрес точки
доступа передаётся
контроллером в
RADIUS-сообщениях)

Распределение трафика + Формирует гистограмму


распределения объёма
трафика в одной сессии
пользователя - число сессий в
заданном интервале объёма
трафика за сессию

Распределение длительности Формирует гистограмму


сессий распределения длительности
сессии пользователя - число
сессий в заданном интервале
её длительности
Пользователи - статистика По выбранному пользователю
пользователя отображает статистику
трафика (объём, число сессий
подключения) по времени

Пользователи - статистика По выбранному пользователю


пользователя по площадкам отображает статистику
трафика (объём, число сессий
подключения) по площадкам

Пользователи - возвраты + Отображает число


пользователей (1.4) уникальных пользователей,
имеющих 1, 2, 3-5, 6-10,
11-20, 20+ сессий за
заданный интервал времени с
учётом интервала (периода
времени, за который
последовательные
подключения считаются за
одно). Позволяет оценить,
каков % пользователей
площадки часто возвращается
на неё повторно

Пользователи - постоянные + Позволяет сделать выгрузку


пользователи (1.4) (по заданной площадке/всем
площадкам, по заданному
диапазону времени) списка
постоянных пользователей, то
есть тех, кто регулярно
производит авторизацию в
сети.

Пользователи - топ + По выбранной площадке и


пользователей по трафику времени отображает список
пользователей, скачавших
больше всего байт. Это -
потенциальные нарушители
условий использования вашей
сети. Из интерфейса отчёта
можно заблокировать
пользователей.

Пользователи - статистика по + Позволяет на основе


языкам (1.4) параметра lang поля
user-agent HTTP-запроса
определить язык устройства
пользователя, и создать отчёт
о частоте использования
разных языков на
устройствах пользователей
Потоки трафика и При включённом
посещенные URL протоколировании URL
показывает статистику
посещения сайтов, а при
включенном сборе Netflow -
потоки данных

Производители мобильных + Отображает статистику по


устройств производителям устройств (на
основе МАС-адреса) и
производителю операционной
системы устройства

Опросы + Отображает статистику


проведения опросов среди
пользователей

Пересечение площадок + Позволяет определить,


сколько пользователей,
подключавшихся на заданной
площадке, подключались и на
других площадках

Розыск пользователя - по Выполняет поиск учетной


телефонам и сессиям записи (сессий, потоков
трафика) по посещенному
сайту/ IP-адресу

Розыск пользователя - по URL Выполняет поиск учетной


и трафику записи (сессий, потоков
трафика) по заданному
периоду времени, параметрам
сессии, телефону, MAC,
AP_MAC и т.п.

Телефонные номера - + Отображает статистику


отправка и подтверждение активации доступа по СМС по
СМС площадкам и времени

Телефонные номера - выгрузк + Позволяет получить список


а отправленных СМС всех отправленных СМС с
телефонами получателей,
кодами, статусами
подтверждения (только CVS)

Телефонные номера - Выдает список MAC-адресов,


потенциальные нарушители на которых зарегистрировано
более N (задаётся)
телефонов, аналогично
телефоны по уникальным
MAC

Телефонные номера - + Выдает список телефонов,


выгрузка телефонов указанных при активации
доступа на заданных (всех)
площадках
Телефонные номера - + Выдает список операторов
операторы и регионы связи и домашних регионов
пользователей Wi-Fi, в версии
1.4 - с учётом стран

Телефонные номера - + Выдаёт список номеров


неподтвержденные номера телефонов и МАС адресов
устройств, которым было
отправлено СМС и не
последовало подтверждение

Социальные сети - по типу + Выдает статистику по входам


сети через различные типы
соцсетей, Госуслуги и входы
без соцсети

Социальные сети - по данным + Выдает статистику по полу и


из профилей возрасту абонентов, взятую
из профиля в социальной
сети

Социальные сети - выгрузка + Выдает таблицу с ссылками


профилей (1.4) на профили абонентов в
социальной сети

Социальные сети - репосты и + Выдает сводку по числу


число френдов (1.4) сделанных пользователями
репостов и лайков
рекламируемого контента

Платный доступ - оплаты Выдает перечень


пользователя совершенных заданным
пользователем оплат за
предоставление Интернета по
тарифу

Платный доступ - покупки и Выдает таблицы


подключения подключений, платных
подключений и оплат по
площадкам и времени

Платный доступ - тарифы Сводная статистика по


использованию (оплатам) по
тарифам

Платный доступ - платежные Сводная статистика по


операторы использованию (оплатам) по
платежным операторам
Показатели Выдает статистику по
производительности системы производительности системы
(1.4) WNAM - числу и скорости
обрабатываемых запросов
разного типа за последние 5
минут, час, сутки, с
возможностью выгрузки (в
том числе в виде исходных
данных)

Отчёты выводятся в табличном виде.

Результаты выполнения большинства отчётов можно выгрузить в файл в формате CVS для
дальнейшей обработки, например в Excel.

Параметр "ЛК" означает, что этот отчёт доступен и в личном кабинете владельца площадки. Там
он будет выдавать сведения только относительно площадок предоставления услуги, которые
назначены конкретной учётной записи личного кабинета.

ООО "Нетамс" может, по вашему запросу, расширить список доступных отчётов.

Большинство из отчётов позволяет задавать диапазон времени и список площадок, по которым


проводить выгрузку (либо "по всем"). Ниже приведен внешний вид окон интерфейса для ряда
отчётов.
Операторы связи

Отчёт типа "операторы и регионы" позволяет получить статистику об операторе связи


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

Пример отчёта приведен ниже. Возможна выгрузка статистики в CSV-файл.


Платный доступ (отчеты)

Начиная с версии 1.3.1151 WNAM обеспечивает оказание платных услуг Wi-Fi с взиманием
оплаты с абонентов по тарифу. Подробнее о настройке этой функции написано здесь.

По результатам предоставления платного доступа формируется два отчета:

Оплаты пользователя

Отчет также доступен из третьей вкладке окна информации о пользователе.

При вызове отчета предлагается выбрать абонента (по МАС адресу или телефону).

Для выбранного абонента создается (за заданное время) лог всех платежных операций, а
именно:

оплаты абонентом
добавление времени абоненту администратором
сброс признака оплаченности администратором

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


число совершенных оплат. Указывается идентификатор заказа (присваивается WNAM) и номер
инвойса (присваивается платежной системой).

Отчет можно выгрузить в виде CSV-файла.

Покупки и подключения

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

количестве сессий доступа (всего)


количестве платных сессий
доля (платных/всего), %
число сделанных покупок (оплат по тарифу)
общая сумма оплат по тарифу

Отчет формируется в развертке "по площадкам":


либо в развертке "по времени":

Отчет можно выгрузить в виде CSV-файла.

Показатели производительности системы

Начиная с версии 1.4.1341 WNAM формирует счетчики различных показателей собственной


производительности.

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

В текущий момент времени посмотреть значения счетчиков за последние пять минут, час, сутки

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


получить выгрузку их изменения в последующиее время
Фиксируются события следующих типов:

Пакеты 802.11 probe


Редирект на портал
Запрос страницы или файла
Запрос авторизации
Подтверждение авторизации
Запрос сессии
Запуск сессии
Сообщение RADIUS AUTH
Сообщение RADIUS ACCT
Сообщение RADIUS CoA
Запрос API
Сообщение NETFLOW
Сообщение о DHCP-привязке
Внешнее уведомление о событии

Никакой дополнительной настройки для запуска счетчиков не требуется. Статистика доступна в


меню "Отчеты - Показатели производительности системы".

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


данных (по умолчанию-текущий момент):

Затем будет отображены значения счетчиков в величинах:

Всего
В среднем запросов/период
Пик запросов/период

Внимание! Не все типы событий могут иметь


увеличивающиеся счетчики. Всё зависит от
конфигурации вашей системы, типа применяемых
серверов доступа.

Полученные данные можно выгрузить в формат CSV в виде такой же таблицы:

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


времени для составления требуемых графиков вручную.

Потенциальные нарушители

Отчет позволяет создать список абонентов, у которых на один телефонный номер приходится
несколько (более заданного числа) устройств, а также более заданного числа телефонных
номеров на устройство.

Внимание! Устройства с МАС-адресом, начинающимся на 00:08:22 (один из китайских


производителей) самопроизвольно меняют МАС-адрес после перезагрузки, таким образом
пользователи таких устройств вынуждены каждый раз проходить авторизацию заново.

Отчет можно выгрузить в CVS файл.

Розыск пользователя

Отчеты типа "Розыск пользователя по времени, потокам трафика и посещенным URL" и "Розыск
пользователя по площадкам, времени, сессиям, IP и телефону" предназначены для выполнения
оперативно-розыскных мероприятий по запросу уполномоченных органов.

В соответствии с Законом "о Связи" все операторы (провайдеры) Интернет обязаны иметь в
своей сети специальное оборудование, позволяющее уполномоченных органам власти
осуществлять контроль над деятельностью пользователей абонентов оператора, путём
мониторинга генерируемого ими трафика. Предположим, что кто-то из абонентов вашей
беспроводной сети совершил в сети Интернет некие противоправные действия. Тем или иным
способом сотрудники органов выясняют, что такие действия произведены с IP-адресов,
используемых вами для оказания беспроводного доступа в Интернет. К вам, как к конечному
поставщику услуг, либо к вашему провайдеру обращаются с соответствующим запросом, по
которому вы обязаны представить исчерпывающие сведения, позволяющие идентифицировать
совершившего злодеяния пользователя. В качестве исходных данных вы получаете
ориентировочное время события, и информацию о посещенном пользователе ресурсе (IP-адрес
или ссылка на веб-сайт, URL), либо МАС-адрес устройства абонента, номер телефона и иные
параметры.

Система розыска в WNAM поддерживает два типа отчётов, доступных пользователю


административного веб-интерфейса с ролями "Администратор" и "Наблюдатель".

1. Розыск пользователя по площадкам, времени, сессиям, IP и телефону


Вы запускаете формирование отчёта из меню "Отчёты-Розыск пользователя по площадкам,
времени, сессиям, IP и телефону", и указываете требуемые параметры:

Вы можете выбрать один или несколько параметров:

Площадку, на которой находился пользователь, либо "все площадки"


Время начала сессии (интервал от заданного "в прошлое" до текущего момента)
При выборе параметра времени "выбрать диапазон дат", указать точный интервал
(день-месяц-год и час-минута-секунда) сессии
Идентификатор сессии (соответствует идентификатору RADIUS-сервера и клиента)
МАС-адрес устройства абонента
IP-адрес, присвоенный абоненту на период его сессии
Телефон абонента (в этом случае поиск будет идти не только по таблице сессий, но и по
таблице пользователей)

В полях "ID сессии", "МАС", "IP адрес" и "Телефон" допустимо указывать не полное значение, а
его часть. В таком случае поиск осуществляется регулярным выражением.

После указания требуемых параметров необходимо нажать на кнопку "Сформировать". В


результате будет проведен поиск по базе данных и выдан список сессий (не более 100) и
абонентов, соответствующих этим сессиям:
Кнопка "Выгрузить в файл" позволяет сохранить в формате CVS результаты этого отчёта для
передачи в контролирующие органы.

2. Розыск пользователя по времени, потокам трафика и посещенным URL

Для работы этого отчёта необходимо настроить экспорт статистики типа NetFlow v5 (начиная с
версии 1.2.685 поддерживается и версия 9) с вашего устройства доступа (маршрутизатора,
портала перехвата, контроллера) с точки трансляции адресов (NAT) в сторону сервера WNAM
(UDP порт 20002). Также необходимо в интерфейсе WNAM в настройках сервера доступа
разрешить приём NetFlow (отметить соответствующий чекбокс).

Вы запускаете формирование отчёта из меню "Отчёты-Розыск пользователя-По URL и трафику",


и указываете адрес посещенного ресурса:

После нажатия на кнопку "сформировать" система WNAM в одном окне демонстрирует


следующие сведения:

Если в поле поиска указан URL веб-сайта, то отображаются все IP-адреса, которые используются
этим сайтом для работы (от 1 до нескольких, в данном примере все 4 IP-адреса используются
сервисом lenta.ru).

Также выводится таблица обо всех единичных (атомарных) TCP-потоках трафика указанием IP
адресов, портов источника и получателя данных, и количества переданных байт. Эта таблица
может содержать до 1000 записей.

Каждый из найденных потоков принадлежит одной из сессий передачи данных пользователя,


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

Для всех уникальных аппаратных (МАС) адресов устройств пользователей завершающая


таблица содержит перечень телефонных номеров, использованных при первичной авторизации
пользователя (постоянная привязка "МАС-номер телефона"). При включенной опции
определения имени устройства, отображается это имя. В большинстве случаев пользователи
именуют устройства согласно собственному имени (не относится к устройствам на основе ОС
Android).
Финальный список телефонных номеров абонентов может быть передан сотрудникам
уполномоченных органов для запроса операторов сотовой связи о выдаче зарегистрированных
паспортных данных абонентов (в соответствии с действующим законодательством).

Система управления беспроводной сетью WNAM не содержит персонифицированных сведений об


абонентах (только связку "аппаратный адрес устройства-номер телефона"), что не является
персональными данными (точнее, "обезличенными персональными данными"). Таким образом
вы, как компания, оказывающая услуги предоставления бесплатного доступа к Wi-Fi,
оператором персональных данных по ФЗ-152 не является.

Вы также можете настроить взаимодействие WNAM и внешней системы СОРМ.

Топ пользователей по трафику

Отчет позволяет создать список из заданного числа абонентов, которые за заданный период
скачали больше всего трафика.

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


этих абонентов.

Отчет можно выгрузить в CVS файл.

Интерфейс владельца площадки


При наличии соответствующей лицензии WNAM позволяет организовать доступ в специальный
интерфейс пользователю - владельцу площадки, где предоставляется услуга Wi-Fi. Эта
возможность требуется, если вы, как сервис-провайдер услуги СМС-идентификации доступа к
Wi-Fi сети обслуживаете сервер, маршрутизаторы доступа и систему WNAM, а точки доступ
располагаются на территории ваших клиентов или бизнес-партнеров. Ваши клиенты, возможно,
захотят получить доступ к статистике использования своей Wi-Fi сети, но при этом не должны
видеть ничего, что относится к другим сетям и площадкам предоставления услуг других
клиентов, обслуживаемых той же инсталляцией WNAM.

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


и площадкам появилась в WNAM версии 1.2.554. Эта функция является дополнительно
лицензируемой.

В первую очередь вам необходимо в административном интерфейсе WNAM в разделе


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

При входе в интерфейс WNAM по ссылке http://имясервера/wnam/login с указанной новой


учетной записью владельца площадки будет доступен специальный веб-интерфейс владельца
площадки:

В этом интерфейсе возможно заменить логотип вашей компании, сервис-провайдера, вверху


страницы, и название вашей компании и ссылку на веб-сайт внизу её. Для этого необходимо
указать соответствующие значения в файле конфигурации /etc/wnam.properties:

Параметр Значение
owning_company Название вашей организации. При
использовании русских букв необходимо
привести название в формате ISO-8859-1, т.е.
например ООО "Нетамс-облако" будет
выглядеть как \\u041E\\u041E\\u041E
"\\u041D\\u0435\\u0442\\u0430\\u043C\\u044
1-\\u043E\\u0431\\u043B\\u0430\\u043A\\u04
3E" (не забудьте про двойные \\)

owning_company_url Ссылка на веб-сайт вашей организации,


например http://cloud.wnam.ru или
mailto:support@netams.com?subject=WNAM_Q
uestion

owning_logo Абсолютный путь до логотипа вашей


организации, например
/etc/mycompanylogo.png Файл должен иметь
формат PNG, и изображение должно иметь
размер 300х50 пикселей

Внимание! Изменения в файле конфигурации требуют перезапуска веб-сервера tomcat7, и


приложения WNAM.

Интерфейс владельца площадки позволяет:

Просматривать графики подключений (сессий) пользователей сети Wi-Fi (синим -


подключения новых абонентов, зеленым - повторные подключения уже
зарегистрированных абонентов). Возможно отображения графиков по периодам
День/Неделя/Месяц/Квартал.
Просматривать число подключенных площадок и активных (по которым были сессии
абонентов за последний час)
Просматривать список площадок (если такая возможность предоставлена)
В списке площадок видеть настройки (в режиме "для чтения"), и редактировать параметры
ограничений (скорость, длительность сессии, рабочие часы и т.п.)
Просматривать список текущих сессий (последние 50 записей) в главном окне, и список
всех сессий в отдельном окне
При нажатии на сессию в строке таблицы сессий, получить детальную информацию в
всплывающем окне
Создавать вручную записи об абонентах Wi-Fi (предварительное создание, удобно для
гостиниц)
Просматривать шаблоны страниц СМС-идентификации и авторизации так, как они
выглядят для абонента Wi-Fi, без возможности редактирования. Картинки-миниатюры
(справа) статичны, это не мини-отображения текущих созданных страниц, а скриншоты
шаблонов "по умолчанию"
Запускать некоторые отчеты (в настоящий момент доступны 7)

Во всех случаях, статистика сессий и отчеты ограничены абонентами, которые подключались на


площадках, присвоенных данному владельцу площадки.

Список сессий с возможностью поиска и перелистывания отображается следующим образом:


Информация об индивидуальной сессии выглядит следующим образом:

При выборе параметра "скрывать МАС и номер телефона" будет проведена замена части
МАС-адреса на ХХ и номера телефона на **.

Отчеты, которые доступны владельцу площадки, также ограничены присвоенными площадками


и скрывают, при необходимости, детальные параметры профиля абонента Wi-Fi:
В следующих выпусках WNAM в этом интерфейсе будут дополнительно доступны:

Размещение рекламы (в т.ч. динамической)


Редактирование страниц шаблонов СМС-авторизации, и пост-авторизации (согласие с
условием доступа в Internet)

Структура отображаемых абонентам страниц


Веб-интерфейс системы WNAM состоит из следующих разделов:

интерфейс администратора (включая общие роли наблюдателя и оператора)


интерфейс владельца площадки (вид привязан к назначенным площадкам оказания
услуги)
интерфейс рекламодателя и рекламного агента
интерфейс абонента

Интерфейсы первых трех типов служат для управления системой - настройки праметров,
получения отчетной и справочной информации

Интерфейс четвертого типа (абонентов) служит для взаимодействия с пользователем,


подключившимся к сети Wi-Fi, и служит для:

перехвата веб-сессии, поступившей с портала (хотспота) сервера доступа или


беспроводного контроллера
отображение страницы СМС идентификации (по звонку, через госуслуги, через ваучер)
отображения страницы приветствия и согласия с условиями (перенаправление), переход
на авторизацию через социальную сеть, или на опрос

Страницы, отображаемые абонентам, выдаются


веб-сервером tomcat, работающем на сервере WNAM
(аналогично административному интерфейсу). Все
страницы имеют корневую ссылку (путь) /cp/ или
/adv/.
В обычном режиме работы страницы абонентов
настраиваются из административного интерфейса
WNAM в разделе Загружаемые страницы портала
При необходимости, администратор на заданной
площадке может включить режим работы с рекламой,
в таком случае вместо обычных страниц авторизации
и перенаправления будут отображаться рекламные
блоки, соответствующие активным и совпавшим по
параметрам рекламным кампаниям.
Страницы любого типа представляют собой блоки
HTML-кода, хранящиеся в базе данных mongodb
системы WNAM, а не в виде файлов на файловой
системе. Текст страниц можно отредактировать в
произвольном редакторе и загрузить в систему, а
также непосредственно из инструментов работы со
страницами. Там же можно загружать
дополнительные файлы (CSS, JS, изображения).
Все типы страниц перед отправкой абоненту
проходят динамическую обработку, которая
заключается в замене заданных конструкций в теле
страницы текущими значениями. К таким
конструкциям относятся параметры:

Параметр Описание и значение

$(phone) Номер телефона абонента. Если пока не


известен (на первом этапе СМС авторизации,
то пустая строка)

$(mac) МАС-адрес устройства абонента

$(dst) Ссылка, на которую требуется перенаправить


абонента
$(dst-orig) Оригинальная ссылка, к которой обратился
абонент

$(form) Имя шаблона страницы (формы)

$(error) Сообщение об ошибке, если имеется

$(size) Длина ожидаемого СМС кода (4 или 6)

$(size-format) Формат ожидаемого СМС кода (1234 или


123456)

$(soc_esia) Ссылка на портал авторизации Госуслуг


(ЕСИА)

$(voucher-format) Формат номера ваучера

$(voucher-length) Длина номера ваучера

$(minibrowser) Признак (true/false), что страница открыта в


мини-браузере устройства

$(smscode) Код СМС авторизации (для шаблонов методов


отправки кода абонентом)

$(soc_fb), $(soc_ok) Ссылки на страницы авторизации через


социальные сети, включая ключи доступа и
$(soc_vk), $(soc_in) ссылки возвратного перенаправления

Страницы основного интерфейса абонента


Основной интерфейс использует следующие шаблоны страниц:

Название страницы Назначение и пояснения

sms Основная страница авторизации через СМС


(отправка СМС абоненту)

sms_recv Страница авторизации через СМС (ожидаем


СМС от абонента). Вторая фаза обновляет
страницу каждые 5 секунд, проверка дошла
ли СМС.

call_recv Авторизация через запрос звонка от абонента

voucher Авторизация через ваучер

soc_net_redir Перенаправление на вход через социальную


сеть

quiz Перенаправление на опрос


quiz_finish Страница, демонстрируемая после успешного
прохождения опроса

overlimit Страница, демонстрируемая при превышении


какого-либо ограничения

bs_final Страница последней стадии входа в сеть


через контроллер Bluesocket

redirect Страница с перенаправлением (авторизация


прошла успешно, войти в Интернет)

redirect_video Страница с показом видеоролика при входе в


сеть (перенаправление)

Страницы типа sms. sms_recv, call_recv имеют две фазы:

ввод телефонного номера


ввод кода из СМС, запрос совершения звонка либо отправки СМС с последующей
проверкой

Каждая из фаз имеет соответствующую секцию в HTML-коде страницы, выбор той, которую
показывать или скрывать, определяется наличием подставленного номера телефона вместо
конструкции $(phone).

Дистрибутивные шаблоны страниц доступны по ссылке http://www.netams.com/files/wnam/portal


pages/, также находятся на вашем сервере WNAM по адресу /var/lib/tomcat8/webapps/ROOT/WEB
-INF/cp/

Если вы изменили текст страницы в интерфейсе администратора, и хотите вернуться к


оригинальному виду страницы, существует возможность восстановить страницу "по умолчанию".

Страницы, используемые в расширенном механизме работы с рекламой

Механизм работы с рекламой использует:

одну обязательную страницу advertisement_image.html, которая применяется при


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

Дистрибутивные страницы шаблонов, которые вы можете использовать в своей работе, вы


можете загрузить здесь: http://www.netams.com/files/wnam/advpages/

Разработаны следующие образцы:

Название страницы Назначение и пояснения

advertisement_example.html Страница с рекламой, функционально равная


странице redirect

advertisement_example_sms.html Страница СМС-авторизации, функционально


равная странице sms
advertisement_example_sms_recv.html Страница СМС-авторизации, функционально
равная странице sms_recv

advertisement_example_video.html Страница с видеороликом, функционально


равная странице redirect

advertisement_image.html Страница с рекламой, функционально равная


странице redirect, и предусматривает
демонстрацию изображения на весь экран
устройства, возможно с возможностью
отслеживания поворота

Обратите внимание, что вместе с вышеуказанными шаблонами поставляются изображения,


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

В дополнение к динамически заменяемым в страницах рекламы параметрам, перечисленным


выше, используются:

Параметр Описание и значение

$(banner) Ссылка на изображение, показываемое на


весь экран в странице advertisement_image.ht
ml

$(companyId) Идентификатор рекламной кампании

$(blockId) Идентификатор рекламного блока

$(pageId) Идентификатор страницы (файла) рекламного


блока

Единственным существенным отличием страниц рекламы от стандартных страниц портала


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

Для этого применяется конструкция вида:


<button type="submit" class="btn btn-primary" onclick="getAdv(true);">

...
function getAdv(clicked) {
var c = "$(companyId)";
if (c.substring(0,2) == "$(") return;
var c = "";
if (clicked == true) { c = "&clicked=yes"; }
var url = "/adv/advblockpages/display?companyId=$(companyId)"+c;
$.get(url);
}
getAdv(false);

Страницы, подготовленные для механизма рекламных кампаний, могут работать и в качестве


обычных страниц авторизации и перенаправления (в таком случае учет показов и переходов не
срабатывает).

В любом случае действие на стадии авторизации


вызывает запрос ссылки /cp/sms по методу POST, а
перенаправления (после опроса, рекламы и т.п.)
инициирует вход в сеть через устройство доступа по
ссылке /сp/login (также метод POST)

Интерфейс работы с рекламой


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

Базовый механизм, доступный при приобретении WNAM по умолчанию. С его помощью вы


можете:

Создавать набор страниц СМС-авторизации и пост-авторизации (перенаправления) путём


редактирования или клонирования шаблонов sms и redirect через интерфейс
"Конфигурация - Загружаемые страницы портала"
Внутри каждой из страниц создавать собственные рекламные блоки, которые
представляют из себя блок текста или вставленное изображение
Привязать созданные страницы СМС-авторизации и перенаправления одной или
нескольким площадкам, выбрав страницу в окне настройки площадки

Расширенный механизм, который лицензируется и приобретается дополнительно. С его


помощью вы можете:

Создавать учётные записи пользователей отдельного "рекламного" веб-интерфейса с


ролями "Рекламодатель" и "Рекламный агент"
От их имени создавать рекламные блоки, которые из себя представляют:
Отдельные рекламные страницы, по сути функционально схожие со страницей
перенаправления
Рекламные блоки в виде изображения (картинки), масштабируемые на весь экран
пользовательского мобильного устройства, с возможностью поворота изображения
Создавать рекламные кампании, которые характеризуются множеством параметров,
например:
Статус активности
Кто из рекламодателей отвечает за кампанию
Моменты (дата и время) начала и завершения демонстрации
Максимальное число показов
Весовой коэффициент (приоритет), применяемый при расчёте вероятности показа в
случае конкурирующих рекламных кампаний
Перечень площадок из общего списка закрепленных за данным
рекламодателем/агентом площадок, где предполагается демонстрировать рекламу
Где показывать эту рекламу - на странице СМС-авторизации, или на странице
перенаправления
Рекламный блок, демонстрируемый в кампании
Расписание показов по времени суток и дням недели
Включить расширенный механизм показа рекламы на странице перенаправления при
настройке площадки
Получить расширенную статистику показов и переходов по рекламе в разрезе
площадка/кампания/период
Базового механизма обычно бывает достаточно, если демонстрируемая вами реклама -
постоянна для каждой из площадок, или у вас нет большого числа рекламодателей со своими
индивидуальными запросами. Однако необходимо помнить, что все шаблоны, и загруженные
файлы, расположены без структуры папок, в одном разделе "загружаемых страниц портала", и
доступны всем администраторам и операторам портала без разделения прав. Также невозможно
получить статистику по показам и переходам по рекламным блокам.

Расширенный механизм требуется, если c вами работает несколько рекламодателей или


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

Дополнительный "рекламный" веб-интерфейс ограничивает рекламодателя/агента только


списком интересующих его настроек и отчётов, и не содержит, к примеру, сведений о
настройках самой системы WNAM, подключающихся Wi-Fi абонентах и их сессиях.
Веб-интерфейс позволяет:

просматривать и редактировать информацию по рекламодателям, рекламным блокам,


рекламным кампаниям (меню вверху страницы)
просматривать график динамики показов рекламы (синяя линия - показы, зеленая линия -
переходы)
листать графики в интервалах "за последний день/неделю/месяц/квартал"
просматривать общую статистику по площадкам по числу рекламных кампаний, показам,
переходам за всё время
получать сводную информацию по числу рекламных объектов в системе
запускать выполнение различных отчетов

Рекламодатели и рекламные агенты


Расширенный механизм работы с рекламой предусматривает две роли пользователей
рекламного интерфейса.

Рекламодатель - представитель организации, которая является конечным владельцем


демонстрируемого рекламного блока, фактически выгодоприобретателем от демонстрации
рекламы. Это может быть кафе, магазин, бренд одежды, общественная организация и т.п.
Информацию о рекламодателе или его товаре/услуге отображается в демонстрируемом
абонентам Wi-Fi сети рекламном блоке.

Рекламный агент - представитель организации, которая размещает рекламу на портале WNAM,


становясь посредником между рекламодателями и владельцами площадки, где установлена
беспроводная сеть, обслуживаемая WNAM.

Система WNAM поддерживает:

Множество учетных записей рекламных агентов.


Множество учетных записей рекламодателей. Каждый из рекламодателей обязан быть
закреплен за одним из рекламных агентов.
В простейшем случае сама организация, обслуживающая WNAM и беспроводную сеть,
является единственным рекламным агентом "для себя", и управляет всеми
рекламодателями, чья реклама демонстрируется на площадках.
За рекламным агентом должно быть закреплено подмножество (как минимум одна) из
площадок, на которых агент и его рекламодатели могут размещать рекламу.
За рекламодателем должно быть закреплено подмножество (как минимум одна) из
площадок, на которых агент может размещать рекламу, с учетом ограничений по
площадкам рекламного агента, за которым тот закреплен.
Неограниченное количество рекламных блоков
Неограниченное число рекламных кампаний, в том числе одновременно активных

Интерфейсы рекламного агента и рекламодателя доступны по ссылке http://servername/adv/hom


e. Между собой они отличаются только наличием меню "Рекламодатели" в интерфейсе
рекламного агента, в котором можно создавать, редактировать и удалять записи о
рекламодателях, привязанных к рекламному агенту, а также одним из отчетов:
Рекламный агент, в зависимости от степени доверия и договорных отношений со своим
рекламодателем, может дать последнему права на редактирование рекламных компаний, и на
управление ими (останов, запуск).

Свойства учетной записи рекламодателя содержат справочные поля "ИНН" и "номер договора".
Из общей таблицы рекламодателей можно, кликнув в значок справа строки в "кампании",
перейти на страницу с перечнем рекламных кампаний этого рекламодателя.

Рекламные блоки
Рекламным блоком называется объект, который будет отображен абоненту Wi-Fi сети на стадии
пост-авторизации, т.е. после подтверждения телефонного номера по СМС, а также при каждом
последующем подключении к Wi-Fi сети (в новый день, или после прерывания текущей сессии).

Для создания нового блока необходимо нажать на кнопку "Создать новый рекламный блок".
Необходимо указать следующие параметры блока:

Имя блока (обычно, идентифицирует то, что рекламируется)


Выбрать ответственного за этот блок рекламодателя (чья реклама)
Указать HTTP-ссылку, на которую перейдет браузер пользователя при клике на рекламу
(типа "баннер"). Если ссылка не указана, будет выполнен переход по ссылке, указанной в
свойствах площадки, а если и там она не указана - то по адресу, куда изначально
пробовал перейти абонент.

Затем следует сохранить изменения, и тут же открыть на редактирование только что созданный
блок. При этом появится желтая кнопка "Страницы":

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

При помощи данного окна вы можете загрузить (просмотреть, скачать, удалить и иногда -
отредактировать) загруженные в блок файлы.

Внимание: рекламные блоки бывают двух типов:

баннер
шаблон

Рекламный блок типа "баннер" состоит из одного либо двух графических файлов - картинок про
извольного содержания. При демонстрации картинки используется страница-обертка, общая для
всех рекламных блоков, которую требуется предварительно загрузить в административном
интерфейсе WNAM, в меню "Конфигурация - Загружаемые страницы портала - шаблонная
страница advertisement_image.html".

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


будет единственным загруженным в рекламный блок файлом.

Вы можете загрузить два файла - для горизонтального и вертикального расположения экрана


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

WNAM поддерживает определение ориентации экрана устройства и подгрузку одного из двух


баннеров, а также масштабирование баннера на весь экран.

Ниже приведены два примера баннеров-картинок для разных ориентаций экрана.


После загрузки одной или двух картинок в баннер нажмите "Назад", вы вернетесь к списку
рекламных блоков. Для только что созданного блока виден его тип (баннер) и число файлов (2):
Рекламный блок типа шаблон состоит из произвольного числа файлов, один из которых является
основным (отображаемым по умолчанию). Его имя выделено жирным шрифтом. Остальные
файлы шаблона - стили, скрипты, картинки, шрифты, на которые ссылается основной файл. В
качестве примера используется файл advertisement_example.html

По структуре он повторяет известный шаблон перенаправления (redirect), с разницей в ссылках


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

При нажатии на иконку в поле "действие" откроется текстовый редактор с подсветкой


синтаксиса HTML:
Обратите внимание, что один из загруженных в шаблон файлов должен быть объявлен как
"Основной", для чего служит соответствующий чекбокс. По умолчанию - это первый
загруженный в блок HTML-файл.

В любом случае, шаблон ли вы используете для показа, или баннер, в вашей ответственности
красиво нарисовать и сверстать отображаемую страницу или картинку. WNAM представляет
лишь инструмент для этого. В случае правки шаблона по умолчанию (advertisement_example.ht
ml) вы должны сохранить его структуру - форму и скрипты.

Реклама может быть также продемонстрирована на странице СМС авторизации. Для этого в
качестве шаблона необходимо взять файл advertisement_example_sms.html

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

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

Вы должны создать новую рекламную кампанию, нажав на соответствующую кнопку.

Кампания имеет один из трех статусов:

активна
не активна (приостановлена)
завершилась

При этом все имеющиеся кампании отображаются в одной из трех таблиц:


При нажатии на строку с краткими сведениями о кампании, а также при создании новой
кампании, открывается окно редактирования параметров кампании. Оно имеет четыре вкладки с
настройками.

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

Можно установить её статус, привязать к рекламодателю, указать начальное время показов, и


время завершения (могут отсутствовать - бессрочно).

Можно установить максимальное число показов, приоритет, выбрать рекламный блок, который
будет отображаться. Требуется выбрать, на какого типа странице будут идти показы (СМС или
перенаправления).

Приоритет - это число в диапазоне от 0 до 1000 (по умолчанию 100), которое используется в
алгоритме выбора следующего показываемого блока в случае, если в данный момент времени на
данной площадке к показу допустимы несколько блоков. Чем больше приоритет, тем больше у
блока шансов быть показанным (определяется вероятностью на основе генератора случайного
числа).
На второй вкладке необходимо отметить (из числа допустимых для данного рекламодателя)
площадки, на которых демонстрировать рекламу.
На третьей вкладке можно указать время суток и день недели, когда можно демонстрировать
данную рекламную кампанию:
На четвертой вкладке можно указать таргетирование по возрасту и полу. Эта функция будет
использоваться при включении дополнительной идентификации абонентов через социальные
сети.
После завершения настройки кампании необходимо нажать кнопку "Сохранить изменения". Если
на первой вкладке статус её был установлен в "Идет", то кампания автоматически запускается,
и начинаются её показы.

Если в процессе подбора очередного рекламного блока для демонстрации абоненту произошла
внутренняя ошибка, либо условия рекламных кампаний таковы, что не одна из активных
кампаний не подходит, то абоненту будет предложено стандартное окно СМС авторизации или
перенаправления.

Запуск рекламы
Для запуска рекламы по расширенному механизму в системе WNAM необходимо выполнить
следующие шаги:

1. Приобрести соответствующую лицензию


2. В административном интерфейсе создать пользователей с ролями "рекламный агент" и
"рекламодатель" (последний - не обязательно). Привязать к ним площадки.
3. В административном интерфейсе для общих настроек, или для выбранных площадок в
свойствах "Рекламные кампании":
4. Отдельно указывается возможность демонстрации рекламы на странице авторизации, и
страницы перенаправления. Если в данный момент нет рекламы на площадке, которая
может быть показана (например, кончились лимиты показов по всем активным
кампаниям), будет показа стнарица авторизации или перенаправления по умолчанию.
5. В интерфейсе рекламодателя создать рекламный блок. Рекомендуется для вёрстки
шаблона или баннера привлечь профессионального дизайнера.
6. В интерфейсе рекламодателя создать рекламную кампанию, настроить её, и запустить
7. В интерфейсе рекламодателя отслеживать на графике и в отчетах показы и клики по
рекламным блокам

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

Они доступны из основной страницы интерфейса, блок справа внизу.

В настоящий момент работают четыре отчёта:

по времени подключения
по площадкам
по кампаниям
по рекламодателям (только агенту)

Каждый из отчётов позволяет задавать набор параметров (площадка, кампания, рекламодатель),


а также диапазон времени (за последние ... или точный выбор "с" ... "по"). работает также
выгрузка отчёта в CSV-файл для дальнейшего импорта в Excel.
Расширенная настройка
По окончании базовой установки, когда WNAM запустился и доступен его административный
интерфейс, вам необходимо будет провести первоначальную настройку системы (WNAM и
сервера доступа), а также, при необходимости, провести настройку дополнительных сервисов -
кластеризации, отправки и приёма СМС, отправки и приёма звонка, резервное копирование и
мониторинг.

Кластеризация WNAM
Начиная с версии 1.1.512 WNAM позволяет создавать отказоустойчивые конфигурации путём
объединение двух или более серверов в кластер. Это требуется, если вы хотите обеспечить
полную непрерывность предоставления услуги авторизации беспроводного доступа путём
дублирования управляющих серверов и баз данных. В случае выхода из строя одного из
серверов кластера, нарушения сетевой связности, отказа жёсткого диска и базы данных ваша
система с точки зрения пользователей продолжит работу, а данные не потеряются. Время
переключения составляет порядка 10 секунд. Не забывайте, что использование этого механизма
не отменяет необходимости делать периодический бэкап (дамп) базы.

Для работы механизма кластеризации требуется mongodb версии >3.0 и утилита ucarp.

Внимание! Механизм работы кластер высокой доступности является лицензируемым.

Для настройки кластера вы должны выполнить три действия:

Настройка репликации базы данных mongodb


Настройка приложения WNAM для использования реплицированной базы
Настройка кластерного IP-адреса серверов

Работа кластеризации WNAM основана на том, что все


сведения об объектах, статистику, настройки и т.п.
сервер WNAM хранит в базе данных, а не в
оперативной памяти процесса. Таким образом, в
случае переключения между серверами WNAM
никакие данные не потеряются, за исключением
текущих неподтвержденных телефонов (СМС
отправлено, но абонент ещё не ввёл код
подтверждения ).

Репликация mongodb

Механизм обеспечения отказоустойчивости базы данных путём репликации её на несколько


серверов встроен в mongodb и очень подробно описан в официальной документации. Он
основан на использовании набора репликации (replica set), функционирующем на основном
(primary) и одном или более резервных (secondary) серверов, возможно с использованием
арбитра (arbiter). Вы можете перенастроить уже работающую у вас базу mongo для работы в
кластере, без потери данных.

Минимальный набор серверов для включения в кластер состоит из основного, резервного, и


арбитра. Арбитр не хранит данные, а является лишь посредником при проведении голосования
по выбору мастера. Возможно запустить службу арбитра на одном из двух серверов с базами, на
нестандартных портах. Допустим, мы хотим создать кластер из трёх серверов (физических или
виртуальных машин):
№ Имя IP-адрес Роль Приоритет

1 wnam-srv1.domai 1.2.3.89 PRIMARY 2


n.net

2 wnam-srv2.domai 1.2.3.90 SECONDARY 1


n.net

3 wnam-arbiter.do 1.2.3.92 ARBITER 0


main.net

Вы должны на каждом из серверов в файлах /etc/hosts сделать записи вида "127.0.0.1 localhost
wnam-srv1.domain.net", иначе кластер не соберется. В конфигурационных файлах /etc/mongod.c
onf на каждом из серверов добавьте:
replication:
replSetName: rs0

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


выполните:
mongo
rs.initiate()
rs.add("wnam-srv2.domain.net")
rs.addArb("wnam-arbiter.domain.net")

настройте приоритеты:
cfg = rs.conf()
cfg.members[0].priority = 2
cfg.members[1].priority = 1
cfg.members[2].priority = 0
rs.reconfig(cfg)
:
rs.conf()

:
rs.status()

При нормально настроенной репликации вывод этой команды будет сходен с таким:
rs0:PRIMARY> rs.status();
{
"set" : "rs0",
"date" : ISODate("2015-12-13T15:56:18.191Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "wnam-srv1.domain.net:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 16387,
"optime" : Timestamp(1450020906, 3),
"optimeDate" : ISODate("2015-12-13T15:35:06Z"),
"electionTime" : Timestamp(1450020295, 1),
"electionDate" : ISODate("2015-12-13T15:24:55Z"),
"configVersion" : 6,
"self" : true
},
{
"_id" : 1,
"name" : "wnam-srv2.domain.net:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1886,
"optime" : Timestamp(1450020906, 3),
"optimeDate" : ISODate("2015-12-13T15:35:06Z"),
"lastHeartbeat" : ISODate("2015-12-13T15:56:16.803Z"),
"lastHeartbeatRecv" : ISODate("2015-12-13T15:56:17.362Z"),
"pingMs" : 0,
"syncingTo" : "wnam-srv1.domain.net:27017",
"configVersion" : 6
},
{
"_id" : 2,
"name" : "wnam-arbiter.domain.net:27017",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 1886,
"lastHeartbeat" : ISODate("2015-12-13T15:56:17.004Z"),
"lastHeartbeatRecv" : ISODate("2015-12-13T15:56:17.361Z"),
"pingMs" : 0,
"configVersion" : 6
}
],
"ok" : 1
}

На этом настройка mongodb завершена. Если вы переводите в реплицированный режим


имеющуюся базу, вы должны увидеть появление соответствующих файлов с базой на втором
(secondary) сервере (/var/lib/mongodb/).

Настройка WNAM

Вы должны на обоих серверах (primary и secondary) установить WNAM совершенно одинаково


(версия, пакеты, скрипты, настройки FreeRADIUS). Через административный веб-интерфейс вы
должны настроить WNAM на основном сервере, ввести лицензионный ключ, позволяющий
использовать кластерную конфигурацию.

В конфигурационном файле /etc/wnam.properties, определяющем способ подключения к базе


данных, вы должны указать все три сервера mongodb. Драйвер будет автоматически выбирать
текущий активный сервер:
mongodb_host=wnam-srv1.domain.net;wnam-srv2.domain.net;wnam-arbiter.domain.net

При использовании нестандартного порта его можно указать после имени сервера через
двоеточие:
mongodb_host=wnam-srv1.domain.net;wnam-srv2.domain.net;wnam-arbiter.domain.net:30000

Перезапустите WNAM на основном и резервном


сервере. В административном веб-интерфейсе
каждого из них на главной странице вы увидите
дополнительные записи:

При этом оба сервера, фактически, будут обращаться


к одной базе данных. Проверьте, что будет, если
изменить настройки на одном сервере WNAM, и
проверить изменения на втором.

Настройка кластерного IP-адреса

Для того, чтобы внешние по отношению к серверам WNAM пользователи и устройства


воспринимали оба сервера как один кластер, необходимо настроить средство, позволяющее
путём голосования выбрать активный сервер, присвоить ему кластерный адрес, и переключать
его в случае сбоя активного узла. Такое поведение можно получить, если установить и
настроить простое средство кластеризации серверов Linux - ucarpd.
Необходимо его установить на двух серверах - primary и secondary. Сервер-арбитр участвует
только в выборах активного узла mongodb, но не в IP-кластере, поэтому на нём дополнительные
настройки не нужны.
apt-get install ucarp

Настройка ucarpd проста и требует изменения только конфигурационного файла /etc/network/int


erfaces. Мы выберем кластерный адрес 1.2.3.91. На него можно зарегистрировать DNS-имя
сервиса wnam.domain.net.

На первом (активном) сервере:


iface eth0 inet static
address 1.2.3.89
netmask 255.255.255.192
network 1.2.3.64
broadcast 1.2.3.127
gateway 1.2.3.65
dns-nameservers 1.2.3.5
dns-search domain.net
ucarp-vid 1
ucarp-vip 1.2.3.91
ucarp-password WNAMpassword
ucarp-advskew 0
ucarp-advbase 1
ucarp-master yes
iface eth0:ucarp inet static
address 1.2.3.91
netmask 255.255.255.255

На втором (резервном) сервере:


iface eth0 inet static
address 1.2.3.90
netmask 255.255.255.192
network 1.2.3.64
broadcast 1.2.3.127
gateway 1.2.3.65
dns-nameservers 1.2.3.5
dns-search domain.net
ucarp-vid 1
ucarp-vip 1.2.3.91
ucarp-password WNAMpassword
ucarp-advskew 30
ucarp-advbase 1
ucarp-master no
iface eth0:ucarp inet static
address 1.2.3.91
netmask 255.255.255.255

Перезапустите сетевую службу на обоих серверах (service networking restart) и проверьте, что
первый сервер получил требуемый кластерный адрес.

Попробуйте обратиться к веб-интерфейсу WNAM через кластерный адрес или имя. Попробуйте
теперь отключить сетевой интерфейс первого сервера. Не более чем через 5 секунд система
WNAM будет снова доступна по кластерному адресу, а база данных будет указывать на
резервный сервер. При включении первого сервера произойдет повторное переключения
кластерного адреса обратно, и репликация базы.

Для внешних клиентов - беспроводных контроллеров, серверов доступа, в настройках


RADIUS-клиента, форм перенаправления и т.д. - вы везде должны использовать только
кластерный адрес 1.2.3.91 или DNS-имя wnam.domain.net.
Вы обязательно должны в ваших системах
мониторинга настроить тестирование состояния обоих
серверов кластера, и статуса репликации.
Отправка СМС по протоколу SMPP
Для отправки абонентам авторизационных СМС (заголовок, сообщение и код доступа из 4 или 6
цифр) WNAM может использовать следующие методы:

HTTP-интерфейс одного из агрегаторов (websms.by, smsc.ru, smstraffic.ru)


Установленный в сервере USB GSM модем, взаимодействие с которым организовано через
утилиту gammu
Отправку провайдеру СМС сообщений по протоколу SMPP. Поддерживается версия
протокола 3.4

Протокол SMPP (Short message peer-to-peer protocol ) определяет способ взаимодействия


поставщика информации (отправителя сообщений, WNAM) и получателя (шлюза
СМС-провайдера). Протокол сам по себе очень сложен, однако существует его бесплатная (open
source) реализация для большинства операционных систем, под названием kannel. Для
установки этой программы выполните:
apt-get install kannel

После установки отредактируйте файл /etc/defaults/kannel так, чтобы он выглядел следующим


образом (отключение WAP, включение SMS):
#START_WAPBOX=1
START_SMSBOX=1

После этого отредактируйте основной конфигурационный файл, /etc/kannel/kannel.conf так,


чтобы он содержал:
group = core
admin-port = 13000
admin-password = wnam
admin-deny-ip = "*.*.*.*"
admin-allow-ip = "127.0.0.1"
smsbox-port = 13001
wdp-interface-name = "*"
log-file = "/var/log/kannel/bearerbox.log"
box-deny-ip = "*.*.*.*"
box-allow-ip = "127.0.0.1"
dlr-storage = internal
store-file = "/tmp/kannel.store"
group = smsc
smsc = smpp
smsc-id = smsgateway
host = smpp.smsgateway.ru
port = 4444
transceiver-mode = yes
smsc-username = secretusername
smsc-password = secretpassword
system-type = NULL
source-addr-autodetect = yes
dest-addr-npi = 1
dest-addr-ton = 1
interface-version = 34
group = smsbox
bearerbox-host = 127.0.0.1
sendsms-port = 13003
log-file = "/var/log/kannel/smsbox.log"
log-level = 1
group = sms-service
keyword = default
text = "No service specified"
group = sendsms-user
username = wnam_user
password = wnam_pass
max-messages = 1000
default-smsc = smsgateway

Здесь важными являются следующие параметры:

smsc-id = произвольная строка, идентификатор центра приема СМС


host = имя хоста шлюза SMPP провайдера
port = TCP-порт шлюза SMPP провайдера
smsc-username = присвоенное провайдером имя пользователя
smsc-password = присвоенный провайдером пароль

После завершения редактирования перезапустите сервис kannel: service kannel restart

В лог-файле /var/log/kannel/bearerbox.log должна появиться информация о регистрации у


SMPP-провайдера (статус=0):
2015-09-15 14:33:16 [19120] [6] DEBUG: type_name: bind_transceiver_resp
2015-09-15 14:33:16 [19120] [6] DEBUG: command_id: 2147483657 = 0x80000009
2015-09-15 14:33:16 [19120] [6] DEBUG: command_status: 0 = 0x00000000
2015-09-15 14:33:16 [19120] [6] DEBUG: sequence_number: 1 = 0x00000001

Если регистрации не происходит, выясняйте причину проблемы с вашим провайдером.

Для успешной отправки сообщений вы должны установить корректный идентификатор


отправителя (source_addr), который вам выдал ваш СМС-провайдер. Это делается
веб-интерфейсе WNAM, в меню "Конфигурация - Авторизация - Настройки СМС - Заголовок".
параметры доступа к kannel в этом окне (логин и пароль) должны совпадать с параметрами user
name и password в конфигурационном файле /etc/kannel/kannel.conf. По умолчанию это wnam_u
ser и wnam_pass соответственно.

Проверку отправки сообщения вы можете сделать через веб-интерфейс WNAM, по ссылке http://
servername/cp/testsend , если "использование тестовых интерфейсов" разрешено в меню
"Конфигурация - Общие настройки".

Отправка СМС по протоколу HTTP GET или POST


Начиная с версии 1.3.1084 WNAM поддерживает отправку идентификационных СМС через шлюз
любого провайдера, поддерживающий протокол HTTP и метод GET или POST.

Поскольку универсального стандарта формата сообщения не существует (в противоположность


SMPP), выбор параметров запроса отправки зависит от предпочтений СМС провайдера.
Предлагаемый способ настройки WNAM позволит обеспечить взаимодействие с практически
любым провайдером без запроса модификации исходного кода.

Для настройки этого способа первым делом обратитесь к вашему СМС провайдеру за
документом, описывающим параметры взаимодействия - формат GET или POST запроса, и
учетной записью (ваши собственные логин и пароль, возможно - заголовок (отправитель) СМС
сообщения).

В настройках метода авторизации (в "общих настройках", или в настройках для индивидуальной


площадки) выберите метод "Отправка СМС абоненту", а в качестве провайдера "Произвольный
шлюз по протоколу HTTP GET" (или POST, если требуется).

Параметры "Логин" и "Пароль" заполнять обычно не следует. Логин и пароль для шлюза
провайдера вы потом заполните в поле "Текст", то есть в тексте запроса. Исключение может
составлять провайдер, который в GET или POST запросе требует предварительной авторизации в
режиме HTTP Basic Auth: в этом случае указанные логин и пароль передаются в
авторизационной части HTTP-заголовка.

Параметр "Заголовок СМС" не используется.

Параметр "Текст" содержит полную ссылку-запрос до HTTP-шлюза провайдера, со всеми


параметрами. Запрос должен начинаться с "http". Поддерживается протокол HTTP и HTTPS, а
также произвольный выбор TCP-порта.
Например, для провайдера SMSC.RU полный формат запроса будет выглядеть так:
https://smsc.ru/sys/send.php?login=MyUserName&psw=MySecretPassword&phones=%PHONE%&charset=utf-8
&mes= : %CODE%

Для провайдера Kazinfoteh так:


http://212.124.121.186:9501/api?action=sendmessage&username=MyUserName&password=MySecretPasswor
d&recipient=%PHONE%&messagetype=SMS:TEXT&originator=INFO_KAZ&messagedata= : %CODE%

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


телефона получателя используйте %PHONE%, вместо МАС-адреса устройства - %DEVICE%,
вместо кода доступа - %CODE%.

Нажмите на кнопку "Сохранить изменения".

При отправке сообщения происходит преобразование всех полей в формат URLEncode в


кодировке UTF-8.
При выборе метода отправки HTTP POST настройка производится так же (ссылка указывается в
GET-формате), но перед отправкой WNAM производит её преобразование в POST-запрос.

Проверить работоспособность шлюза можно путем отправки тестового запроса из интерфейса


WNAM: http://адресвашегосервера/cp/testsend

В логе WNAM, в файле /var/log/tomcat8/wnam.log должна появиться запись:


19:19:12.706 DEBUG [com.netams.wnam.services.SmsService:192] -
url=http://212.124.121.186:9501/api,
data=action=sendmessage&username=MyUserName&password=MySecretPassword&recipient=79123456789&mes
sagetype=SMS%3ATEXT&originator=INFO_KAZ&messagedata=%D0%9A%D0%BE%D0%B4+%D0%B4%D0%BE%D1%81%D1%82
%D1%83%D0%BF%D0%B0%3A+%25CODE%25
19:19:13.037 DEBUG [com.netams.wnam.services.SmsService:211] - sms_http to: +79123456789 return
'<?xml version="1.0" encoding="utf-8"?>'

Отправка СМС через USB модем


WNAM позволяет осуществлять отправку идентификационных СМС абонентам используя
установленный в сервер USB GSM модем, и утилиту gammu.

Внимание: скорость отправки СМС при этом достаточно низка: не более 1 СМС за 3 секунды.
Учитывайте это при планировании нагрузки на систему. Данный метод может быть рекомендован
только в целях тестирования WNAM и при низкой нагрузке (числе авторизаций).

Для настройки этого метода необходимо в меню "Конфигурация-Авторизация" указать


"Локальный сервис gammu (модем)":
Поддерживаются любые модемы, которые распознаются ОС Linux в качестве модемов, то есть
доступны в виде портов типа /dev/ttyUSB0

Из моделей подойдут фактически любые "бытовые" устройства. Например, отмечено отсутствие


проблем с Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem.

Возможно также использование модема в сочетании с виртуализацией VMware ESXi, путем


проброса USB устройства вовнутрь виртуальной машины.

Внимание! Вы должны переключить модем в режим "простой модем" при помощи утилиты
usb_modeswitch, если ваш модем представляется серверу устройством типа USB Flash или CD.

После переключения модем можно проверить на "отзывчивость" при помощи AT-команд и утилит
cu или minicom. Модем должен корректно отвечать на команды, заканчивая вывод символами
"ОК".

Дальнейшая настройка взаимодействия проводится при помощи утилиты gammu. Это


стандартное средство организации взаимодействия приложений (таких как WNAM), и GSM
модемов, подключенных через com/usb порт сервера.

Возможны два сценария работы - через gammu или через gammu-smsd

1. Взаимодействие через gammu

Этот метод подходит, если требуется только редкая отправка СМС. При этом на каждый запрос
WNAM на отправку СМС производится вызов утилиты, инициализация модема, отправка СМС,
отключение от модема.
Установите утилиту:
apt-get install gammu

Запустите поиск устройства


gammu-detect

и настройку устройства
gammu-config

При этом создастся файл конфигурации /root/.gammurc

Просмотрите его, скопируйте в /etc/gammurc и отредактируйте, при необходимости:


[gammu]
port = /dev/ttyUSB1
model = huawei E3372s
connection = at9600
synchronizetime = no
logfile =
logformat = nothing
use_locking =
gammuloc =

Попробуйте выполнить тестовую отправку СМС из командной строки:


gammu sendsms TEXT 7987654321 -text TEST

Если она произошла, переходите к следующему шагу, если нет, повторите с параметрами -d
textall -f /tmp/gammu.log и изучайте лог. Внимание! Порт занимается в эксклюзивном режиме,
значит у вас не должен быть запущен minicom или gammu-smsd.

Затем необходимо дать возможность утилите gammu писать в tty порт. Внимание! Выполнение
gammu производится от имени пользователя tomcat8, который таких прав не имеет. Вы обязаны
дать право записи в порт при запуске gammu от любого пользователя, установив suid флаг :
chmod a+s /usr/bin/gammu
ls -la /usr/bin/gammu
-rwsr-sr-x 1 root root 339600 25 2013 /usr/bin/gammu

Проверку отправки СМС от имени WNAM можно сделать при помощи интерфейса http://сервер_w
nam/cp/testsend

На этом настройка gammu завершена.

2. Взаимодействие через gammu-smsd

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

Установите утилиту:
apt-get install gammu gammu-smsd

Запустите поиск устройства


gammu-detect

и настройку устройства
gammu-config

Конфигурационный файл находится в /etc/gammu-smsdrc :


# Configuration file for Gammu SMS Daemon
# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/ttyUSB0
connection = at9600
# Debugging
logformat = nothing
# SMSD configuration, see gammu-smsdrc(5)
[smsd]
service = files
logfile = syslog
# Increase for debugging information
debuglevel = 0
#RunOnReceive = /root/wnam-gammu-smsd-bridge.pl
CommTimeout = 5
# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

Для отправки используется клиентская утилита gammu-smsd-inject, отправку можно


протестировать:
gammu sendsms TEXT 7987654321 -text TEST

Если СМС дошла, переходите к следующему шагу, если нет, изучайте


лог-файл /var/log/daemon.log

Теперь необходимо настроить WNAM на отправку СМС через gammu-smsd-inject. Для этого в
конфигурационном файле /etc/wnam.properties укажите параметр:
gammu_path=/usr/bin/gammu-smsd-inject

После таких изменений перезапустите сервисы tomcat и gammu-smsd. Проверку отправки СМС
от имени WNAM можно сделать при помощи интерфейса http://сервер_wnam/cp/testsend

В некоторых случаях отмечается проблема с отправкой при помощи gammu-smsd-inject


(возвращается код ошибки: 3). В таком случае попробуйте также поставить suid флаг
исполняемому файлу gammu-smsd-inject.

На этом настройка gammu-smsd завершена.

Получение СМС
Начиная с версии 1.1.510 WNAM позволяет осуществлять идентификацию абонентов
беспроводной сети не только путём отправки им СМС-сообщений, но и при помощи приёма
сообщений, отправленных абонентами. Таким образом вы, как владелец системы, экономите на
отправке идентификационных сообщений. Оплата за отправляемые сообщения перекладывается
непосредственно на абонента, по тарифу его сотового оператора.

Внимание! В качестве допустимых способов получения сообщений в настоящий момент


поддерживаются три:
Приём сообщений на USB-модем с вашей SIM-картой, установленный на Linux-сервере.
Работа ведется через утилиту gammu
Приём сообщений от провайдера СМС smsc.ru, посредством HTTP-сообщения от сервера
провайдера к серверу WNAM
Приём сообщений от любого провайдера СМС, работающего по протоколу SMPP

Для включения приёма сообщений вы должны:

1. Настроить вариант авторизации абонентов через "получение СМС", в глобальных настройках


("Конфигурация" - "Авторизация"), либо индивидуально для выбранной площадки

При этом все выбранные ниже настройки СМС игнорируются, кроме

Ответный код
Длительность авторизации номера
Имя формы

Поле выбора провайдера также игнорируется, потому что оба способа приёма (gammu и smsc)
активны одновременно.

2. В случае использования собственного USB-модема и SIM-карты, настроить утилиту gammu

Предварительно, настроить сам модем (usb_modeswitch), проброс физического USB-устройства в


виртуальную машину вы должны выполнить самостоятельно.

Необходимо настроить сервис smsd, отредактировав файл /etc/gammu-smsdrc:


# Configuration file for Gammu SMS Daemon
# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/ttyUSB0
connection = at9600
# Debugging
logformat = textall
# SMSD configuration, see gammu-smsdrc(5)
[smsd]
service = files
logfile = syslog
# Increase for debugging information
debuglevel = 0
RunOnReceive = /usr/local/bin/wnam-gammu-smsd-bridge.pl
CommTimeout = 5
# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

При этом вы должны указать путь до исполняемого файла скрипта, который будет осуществлять
передачу принятых СМС сообщений в сервер WNAM (wnam-gammu-smsd-bridge.pl). В режиме
настройки укажите debuglevel = 2

Текст скрипта приведен ниже, также он содержится в каталоге со вспомогательными файлами на


сервере (http://www.netams.com/files/wnam/misc/wnam-gammu-smsd-bridge.pl)
#!/usr/bin/perl
#
# wnam-gammu-smsd-bridge.pl
# http://www.netams.com/
# see http://wammu.eu/docs/manual/smsd/run.html
#
use constant WNAM_HOST => "127.0.0.1";
use IO::Socket::INET;
$| = 1;
my $sock = new IO::Socket::INET(PeerAddr => WNAM_HOST, PeerPort => 20001, Proto => 'tcp',
Timeout => 0.5) or undef $sock;
if (defined $sock) {
my $msgs=$ENV{"SMS_MESSAGES"};
if (defined $msgs) {
for (my $i=1; $i<=$msgs; $i++) {
my $tel = $ENV{"SMS_".$i."_NUMBER"};
my $code = $ENV{"SMS_".$i."_TEXT"};
print $sock "SMSRECV PHONE=$tel TEXT=$code\n";
print "SMSRECV PHONE=$tel TEXT=$code\n";
}
}
$sock->close;
}

После окончания настроек перезапустите gammu и убедитесь, что в лог-файле /var/log/daemon.l


og отображаются нормальные события обмена данными с модемом.
/etc/init.d/gammu-smsd restart

Пусть номер телефона на SIM-карте +7 (910) 012-34-56. Вы должны соответствующим образом


отредактировать шаблон формы sms_recv (или её клона) для того, чтобы пользователь имел
возможность отправить вам сообщение прямо с телефона. Найдите и отредактируйте следующие
строки:
<p> :</p>
<!-- Form Inputs -->
<div class="form-group">
<a href="sms:+79100123456"><button type="button" class="btn btn-success btn-lg btn-block">+7 91
0 012-34-56</button></a>
Вам необходимо заменить шаблонный номер на свой собственный.

3. В случае использования провайдера SMSC для получения сообщений:

Необходимо в вашем личном кабинете на сайте


smsc.ru в разделе меню "Настройки" подключить
возможность приёма сообщений с пересылкой
уведомлений на ваш сервер WNAM:

Вы должны указать HTTP-путь до вашего сервера WNAM формате http://имя_вашего_сервера:по


рт/cp/smsc_recv Внимание! Это специальная статическая ссылка сервиса WNAM, не имеет
отношение к форме sms_recv, не путайте!

Ваш сервер должен быть доступен из сети Интернет (напрямую, или через публикацию на
межсетевом экране) для серверов компании SMSC. Подробное описание механизма работы SMSC
API приведено здесь.

Для приёма сообщений вы можете использовать три варианта:

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


требовать от пользователей отправки сообщений с текстом, начинающимся с вашего
идентификатора на сайте smsc.ru, например vasyapupkin: . Текст сообщения не важен. Это
не очень удобно, ибо пользователи могут не понять таких сложностей.
Купить у провайдера SMSC приватный мобильный номер, и оплачивать его его аренду
(порядка 1000р / мес.). При этом все поступающие на него сообщения передаются вам,
префикс не требуется.
Передать провайдеру SMSC на хостинг свою SIM-карту, и оплачивать услуг хостинга
(порядка 2000р / мес.). При этом все поступающие на ваш номер сообщения передаются
вам, префикс не требуется.

Пусть выбранный номер телефона SMSC +7 (916) 887-77-77. Вы должны соответствующим


образом отредактировать шаблон формы sms_recv (или её клона) для того, чтобы пользователь
имел возможность отправить вам сообщение прямо с телефона (реализуется переход на
приложение отправки СМС по ссылке вида sms://+79168877777). Найдите и отредактируйте
следующие строки:
<p> :</p>
<!-- Form Inputs -->
<div class="form-group">
<a href="sms:+79168877777&body=vasyapupkin:%20$(smscode)"><button type="button" class="btn
btn-success btn-lg btn-block">+7 (916) 887-77-77</button></a>

При этом вы должны вписать в параметр body префикс (ваш логин в smsc.ru), если вы выбрали
использование публичных номеров. Внимание! будет ли в действительности использоваться этот
параметр или нет, зависит от версии операционной системы абонентского устройства!

3. В случае приём сообщений от любого провайдера СМС, работающего по протоколу SMPP:

Для включения этого режима вы должны проверить, поддерживает ваш SMPP-провайдер


получения вами сообщений. Вы должны купить выделенный номер или отдать на хостинг вашу
SIM-карту для приёма сообщений (см. выше пример для SMSC).

Вам необходимо установить и настроить утилиту kannel так, как описано в разделе Отправка
СМС по протоколу SMPP. Необходимо дополнительно включить приём сообщений и пересылку их
в WNAM в конфигурационном файле /etc/kannel/kannel.conf:
group = sms-service
keyword = default
catch-all = yes
max-messages = 0
post-url = "http://127.0.0.1:8080/cp/kannel_recv?phone=%p&to=%P&mes=%a"

В качестве ссылки вы должны указать IP-адрес и порт сервиса веб-интерфейса WNAM.

Настройки формы авторизации соответствуют предыдущему варианту (как для SMSC), с учётом
требований вашего провайдера.

4. Проверить работу системы

Независимо от выбранного вами способа приёма сообщений с точки зрения абонента механизм
работы авторизации будет одинаковым:

1. Абонент подключается к сети, переходит на какую-то внешнюю ссылку, хотспот


перенаправляет сессию пользователя на страницу авторизации.
2. Абонент вводит свой номер телефона:
3. Абонента просят отправить с его номера произвольное СМС на указанный номер шлюза:
при этом в лог-файле /var/log/tomcat7/wnam.log появляется такое сообщение:

CP SMSRECV phase 1: mac=87:A5:1C:EC:3B:AF, ip=10.130.3.218, phone=79159993322

4. Абонент нажимает на зелёную кнопку, переходит в свой приложение отправки СМС,


отправляет сообщение (в принципе, текст сообщения не важен):
при получении сообщения в лог-файле /var/log/tomcat7/wnam.log появляется такая
запись:

SMS_RECV from 79168877777, confirmed phone 79159993322, MAC=87:A5:1C:EC:3B:AF,


CODE=3469

5. Абонент возвращается в браузер и нажимает на кнопку перехода. Если СМС сервером


WNAM ещё не получено, будет сообщение об ошибке:
6. Если сообщение получено, абонента перенаправляет на страницу согласия с условиями
и/или рекламой:
при этом в лог-файле /var/log/tomcat7/wnam.log появляется такое сообщение:

CP SMSRECV phase 2: mac=87:A5:1C:EC:3B:AF, ip=10.130.3.218, phone=79159993322,


smscode=3469 VERIFIED

7. При последующих подключениях этого абонента происходит только перенаправление на


страницу с рекламой.

Идентификация по исходящему звонку


Начиная с версии 1.2.660 WNAM поддерживает идентификацию абонента через совершение
звонка на указанный им номер.

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

Преимущества такого способа очевидны:

Вдвое меньше стоимость идентификации (от 0.25 до 0.46 рублей за вызов против
примерно 1.5 рубля за СМС)
Высокая надежность (СМС доходят не всегда)
Потенциальная возможность произнесения рекламной фразы

В настоящий момент поддерживается три


провайдера:
ВМЕСТОСМС vmestosms.ru. Внимание! Данный способ работает только для российских
номеров (начинающихся на 7). Фиксированный тариф 46 копеек за вызов. Код
произносится дважды.
BitCall sc-tehno.ru (https://bitcall.ru) Тариф зависит от направления и длительности звонка
(порядка 25 копеек за вызов). Код произносится один раз.
SMSЦЕНТР http://smsc.ru Тариф зависит от направления и длительности звонка (порядка
25 копеек за вызов). Код произносится два раза.
New-Tel http://callpassword.ru Доступно с версии WNAM 1.4

Для настройки данного метода идентификации


необходимо:
1. Определиться с провайдером. Зарегистрироваться. Пополнить счёт.
2. Получить API ключ. Этот ключ будет паролем в форме настройки.
Для BitCall зарегистрировать свой номер (номер отправителя звонка). Этот номер будет
логином в форме настройки.
В настройках метода авторизации в административном интерфейсе WNAM (общего, или для
площадки) указать данный метод, выбрать провайдера, указать:
a. Для ВМЕСТОСМС в поле Логин - ничего, в поле Пароль - API ключ
b. Для BitCall в поле "Логин" ввести зарегистрированный в системе номер телефона, в
поле Пароль - API ключ
c. Для SMSЦЕНТР в полях Логин и Пароль - учетные данные в системе
d. Для New-Tel Callpassword.ru в поле Логин - идентификатор клиента (число), в поле
Пароль - API ключ (длинное шестнадцатеричное число)
3.
4. Размер ответного кода рекомендуется устанавливать в "4 цифры".
5. Выберите страницу типа "Звонок абоненту", или её клон.
6. Проверить возможность вызова, используя форму http://адрес.вашего.сервера/cp/testsend
Укажите ваш номер телефона, получите вызов с кодом "1234"
Внимание! Чтобы эта проверка работала, включите "Тестовые интерфейсы СМС и
шаблонов страниц" в меню "Конфигурация - Общие настройки"
7. Отредактировать стандартный шаблон страницы типа "Звонок абоненту", или её клон

Идентификация по входящему звонку


Начиная с версии 1.2.685 WNAM поддерживает идентификацию абонента через приём звонка от
абонента на ваш номер.

Данный метод похож на идентификацию через получение СМС. Однако вместо отправки СМС
сообщения абонент совершает, за свой счёт, исходящий вызов на ваш номер телефона. Этот
номер должен быть вами приобретен у любого провайдера, и заведён на шлюз (программную
АТС) Asterisk под вашим управлением. Длительность входящего вызова минимальна: звонок
сразу сбрасывается. WNAM важно определить входящий номер вызывающего абонента, который
проводит авторизацию.

Преимущества этого способа идентификации таковы:

Практически нулевые операционные затраты - при использовании SIP-провайдеров


стоимость входящих вызовов нулевая, а стоимость аренды номера - нулевая или
минимальна
Есть возможность произнесения абоненту рекламного сообщения, которое он обязан
дослушать до конца

Для настройки данного метода необходимо произвести следующие действия:


1. Организация входящей телефонной линии

Необходимо создать учётную запись у вашего VoIP провайдера, арендовать (получить, купить)
телефонный номер.

В примере ниже используется провайдер zadarma.com, общий внешний номер провайдера +7


495 777 66 75, внутренний номер 454498 (то есть получение вызова будет требовать донабора).
Для удобства использования рекомендуется получить выделенный номер.

Установка и настройка Asterisk, настройка взаимодействия с провайдером должна быть


проведена вами самостоятельно при помощи соответствующих инструкций провайдера. Если вы
используете АТС другого типа, не проблема - вам необходимо реализовать какое-либо действие
(например, вызов скрипта), которое АТС выполнит при поступлении звонка. Обращайтесь на sup
port@netams.com за помощью.

Предполагается, что входящие вызовы поступают в контекст [default]

2. Настройка уведомления со стороны Asterisk в сторону WNAM о входящем звонке

В конфигурационном файле /etc/asterisk/extensions.conf в контексте [default] необходимо


создать правила вызова скрипта-уведомителя при помощи интерфейса AGI.
[default]
;include => demo
exten => 454498,1,NoOp( ${CALLERID(num)})
same => n,AGI(wnam-asterisk-bridge.pl,${CALLERID(num)})
same => n,Hangup()

В поле exten укажите ваш внешний номер телефона.

Далее, необходимо скачать скрипт взаимодействия wnam-asterisk-bridge.pl из репозитория http:/


/www.netams.com/files/wnam/misc/ , поместить его в каталог
скриптов /usr/share/asterisk/agi-bin/ и сделать его исполняемым:
chmod +x /usr/share/asterisk/agi-bin/wnam-asterisk-bridge.pl

При необходимости, если Asterisk и WNAM работают на разных серверах, отредактируйте скрипт,
прописав адрес сервера WNAM.

Проверьте работоспособность взаимодействия, запустите скрипт:


/usr/share/asterisk/agi-bin/wnam-asterisk-bridge.pl 1234

в лог-файле wnam.log вы должны увидеть две записи:


12:18:37.192 DEBUG [c.n.wnam.services.WnamCmdService:230] - Start handling client connection
12:18:37.192 DEBUG [c.n.wnam.services.WnamCmdService:249] - Finish handling client connection

3. Настройка WNAM

Со стороны административного интерфейса WNAM требуется только выбрать новый метод


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

Необходимо выбрать страницу шаблона, отображаемую абоненты при идентификации. В


дистрибутиве идет шаблонная страница call_recv.

4. Модификация страницы авторизации

Вам необходимо отредактировать шаблон страницы call_recv из меню "Конфигурация -


Загружаемые страницы портала". Как минимум, вам необходимо указать входящий номер
телефона вашего шлюза Asterisk.

Номер указывается в виде текста, отображаемого на зеленой кнопке, и в параметрах ссылки в


формате:
<a href="tel:+74957776675,454498#">...

или
<a href="tel:+74951234567">...

Внимание! Возможность перехода при нажатии на ссылку на телефонное приложение с вызовом


номера авторизации зависит от возможности телефона (модель, операционная система). В
версии WNAM 1.4.1418 был реализован механизм в странице типа call_recv, позволяющий
совершать исходящий вызов по ссылке и из мини-браузера iOS, не только из Safari. Вызов из
мини-браузера Android также работает.

5. Проверка идентификации

При подключении к сети абонент, открыв браузер и перейдя по ссылке, попадает на


стандартную процедуру идентификации:

На первом шаге абонент указывает свой номер телефона.

На втором шаге абоненту предлагается совершить идентификационный звонок:


При нажатии на зеленую кнопку, если она сработает, абоненту будет предложено открыть
телефонное приложение и сделать вызов:
После совершения вызова произойдет автоматическое перенаправление браузера на окно
redirect, либо иное действие, определенное в разделе "Перенаправление". По умолчанию,
проверка того, пришел ли звонок и произведена ли идентификация, производится раз в 5
секунд (таймер задается в js-коде страницы call_recv).

При корректной идентификации в лог-файле wnam.log вы увидите следующую цепочку событий:


12:17:14.068 DEBUG [c.n.w.web.cp.CaptivePortalController:288] - CP mikrotik clicked:
username=AA:56:14:DD:38:58, ip=10.130.3.235, dst='http://www.ru/',
server_address=10.130.3.1:80, server_name='mk1-hs'
12:17:14.199 DEBUG [c.n.w.web.cp.CaptivePortalController:1020] - processAuthRequest MIKROTIK:
username=AA:56:14:DD:38:58, ip=10.130.3.235, server=10.130.3.1:80, site_id=55, dst='http://www.
ru/'
12:17:14.209 DEBUG [c.n.w.web.cp.CaptivePortalController:1052] - captive portal redirected to
SMS page, username=AA:56:14:DD:38:58, cust=null, form='call_recv'
12:17:24.292 DEBUG [c.n.w.web.cp.CaptivePortalController:752] - CP CALLRECV phase 1:
mac=AA:56:14:DD:38:58, ip=10.130.3.235, phone=79153446712
12:17:29.854 DEBUG [c.n.w.web.cp.CaptivePortalController:816] - CP CALLRECV phase 2:
mac=AA:56:14:DD:38:58, ip=10.130.3.235, phone=79153446712, smscode=1617 UNVERIFIED
12:18:36.091 DEBUG [c.n.w.web.cp.CaptivePortalController:816] - CP CALLRECV phase 2:
mac=AA:56:14:DD:38:58, ip=10.130.3.235, phone=79153446712, smscode=1617 UNVERIFIED
12:18:37.192 DEBUG [c.n.wnam.services.WnamCmdService:230] - Start handling client connection
12:18:37.192 DEBUG [c.n.wnam.services.WnamCmdService:714] - CALL-RECV confirmed phone
79153446712, MAC=AA:56:14:DD:38:58, CODE=1617
12:18:37.192 DEBUG [c.n.wnam.services.WnamCmdService:249] - Finish handling client connection
12:18:41.625 DEBUG [c.n.w.web.cp.CaptivePortalController:791] - CP SMSRECV phase 2:
mac=AA:56:14:DD:38:58, ip=10.130.3.235, phone=79153446712, smscode=1617 VERIFIED
12:18:41.635 DEBUG [c.n.w.web.cp.CaptivePortalController:1092] - processRedirectRequest
username=AA:56:14:DD:38:58, method=FORM
12:18:43.729 DEBUG [c.n.w.web.cp.CaptivePortalController:850] - Redirect login: site_id=55,
username=AA:56:14:DD:38:58, dst='http://bash.im'
12:18:43.729 DEBUG [c.n.w.web.cp.CaptivePortalController:1221] - loginAtNas MIKROTIK
username=AA:56:14:DD:38:58, ip=10.130.3.235, server=10.130.3.1:80, dst='http://bash.im'
12:18:43.739 DEBUG [com.netams.wnam.web.cp.Mikrotik:37] - backToMikrotik login len=531,
server='10.130.3.1:80', username=AA:56:14:DD:38:58, password=password, dst='http://bash.im'
12:18:44.200 DEBUG [c.n.wnam.services.WnamCmdService:230] - Start handling client connection
12:18:44.220 INFO [WnamRadius:451] - AUTH for new session ID=8050007e-9b3858, request
MAC=AA:56:14:DD:38:58, IP=10.130.3.235, cust_clientid=null
12:18:44.240 DEBUG [c.n.wnam.services.WnamCmdService:230] - Start handling client connection
12:18:44.240 INFO [WnamRadius:550] - ACCT Start existing (8050007e-9b3858) session
ID=8050007e-9b3858, MAC=AA:56:14:DD:38:58, IP=10.130.3.235, NAS=172.16.130.9

Портал перехвата HTTPS


Работоспособность WNAM тесно связана с возможностью надежной, удобной авторизации
абонентского устройства в беспроводной сети.

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


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

Когда абонент выбирает для подключения гостевую сеть, подключается к ней, устройство
получает IP адрес и другие параметры, производится автоматическая попытка определить
наличие доступа в Интернет.

Устройства Android запрашивают ссылку http://www.gstatic.com/generate_204


Устройства iOS запрашивают (в зависимости от версии) ссылки из
доменов www.ibook.info, www.appleiphonecell.com, captive.apple.com и т.п.

Если ответ по этим ссылкам приходит, устройство считает себя подключенным к Интернет. Если
ответа нет, открывается специальный браузер (мини-браузер), в котором предполагается
провести авторизацию в сети. Это называется Captive Network Assistant (CNA).

С сложными системами, в которых предполагается ввод номера телефона и подтверждение его,


показ рекламы и т.п., CNA работает плохо. В некоторых беспроводных контроллерах (Cisco,
Aruba) можно включить функцию CNA Bypass, что позволяет при подключении абонентского
устройства "обманывать" его, и заставлять проводить авторизацию путём открытия
"нормального" браузера. За включение CNA отвечает настройка "автовход", но обычно про неё
пользователи не знают:

Если отключен CNA, или абонент пытается подключиться к Wi-Fi сети при помощи ноутбука,
авторизация проводится обычным браузером. При этом абонент, скорее всего, будет пробовать
перейти на свой любимый сайт, указанный как стартовый, либо будет пользоваться стартовой
страницей поисковой системы (google, yandex). В подавляющем большинстве случаев такие
сайты работают по протоколу HTTPS, что в обычных условиях делает невозможным редирект
(перенаправление) на портал авторизации. Для такого перенаправления пользователь должен
перейти по обычной, HTTP ссылке.

Однако, большинство из порталов перехвата в оборудовании (беспроводные контроллеры,


Linux-маршрутизатор, Mikrotik и т.п.) могут проводить перехват и перенаправление и
HTTPS-сессии. Для этого необходимо, как минимум, иметь установленный SSL-сертификат как в
устройство доступа, так и в сервер WNAM.

При попытке перехода браузером по HTTPS-ссылке портал перехвата производит подстановку


своего сертификата вместо сертификата сервера. Большинство браузеров на такую операцию
выдают предупреждение, вынуждая пользователей принять риск:
Фактически, портал перехвата проводит атаку типа MITM (Man-In-The-Middle), так что
предупреждение браузера уместно.

Внимание! Данное поведение - не следствие ошибки или недоработки WNAM, это свойство самой
технологии SSL и работы браузеров с HTTPS-сайтами. Это невозможно ни изменить, ни
исправить.

В большей части случаев возможно добиться непрозрачного для абонентов (с предупреждением,


как выше) перенаправления на авторизацию и для HTTPS-сайтов. Для этого вам будет
необходимо:

Настроить и протестировать работу WNAM в режиме HTTP-перехвата и авторизации


Получить годные, подписанные и проверяемые HTTPS-сертификаты
Установить HTTPS-сертификат в веб-сервер tomcat, который исполняет приложение WNAM
и который служит порталом авторизации
Установить HTTPS-сертификат в устройство, осуществляющее функции портала перехвата

Получение сертификатов

Для работы HTTPS-авторизации вам потребуется легально выписанный, авторизованный


сертификат SSL. Вы можете:

Выписать так называемые "самоподписанные" сертификаты, однако браузеры абонентских


устройств не смогут проверить их подлинность и всегда будут отображать сообщение об
ошибке
Приобрести сертификаты у сторонних организаций, таких как Synamtec, Thawte, Verisign,
Comodo и т.п. Сертификаты покупаются на 1 год
Выписать бесплатный сертификат при помощи сервисов типа Let's Encrypt (обновления
вручную каждые 90 дней) или WoSign

В любом случае у вас будут приватный ключ и публичный сертификат, а также цепочка
сертификатов. Для получения сертификатов типа Letsencrypt применяется проверка
принадлежности имени, указываемом в сертификате, вам. Такая проверка производится путем
запроса к имени, указанному в сертификате, извне. Таким образом вы должны либо
организовать работу сервера доступа либо на публичных IP-адресах, в которые преобразуются
DNS-имена из сертификатов, либо использовать технологию Split DNS и специальный
DNS-сервер для Wi-Fi абонентов.

В нашем примере далее предположим, что у сервера доступа типа Mikrotik внешний адрес 172.1
6.130.9 и имя mk.k18.netams.com, а у сервера WNAM адрес 172.16.130.13 и имя debian64.k18.ne
tams.com. Все сказанное ниже справедливо и для доменов 2-го уровня, и для
Wildcard-сертификатов (типа *.mydomain.ru).

Сертификат, полученный у Letsencrypt, имеет вид:


# openssl x509 -in cert.pem -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
03:0c:ab:c8:e6:3a:0c:7e:5a:e5:ff:23:ab:5f:cf:9b:15:a5
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3
Validity
Not Before: May 15 14:45:00 2016 GMT
Not After : Aug 13 14:45:00 2016 GMT
Subject: CN=mk.k18.netams.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
...
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier:
C4:B9:60:6C:08:8E:00:AB:9D:F9:40:59:09:1A:16:B3:62:3C:71:36
X509v3 Authority Key Identifier:
keyid:A8:4A:6A:63:04:7D:DD:BA:E6:D1:39:B7:A6:45:65:EF:F3:A8:EC:A1
Authority Information Access:
OCSP - URI:http://ocsp.int-x3.letsencrypt.org/
CA Issuers - URI:http://cert.int-x3.letsencrypt.org/
X509v3 Subject Alternative Name:
DNS:mk.k18.netams.com
X509v3 Certificate Policies:
Policy: 2.23.140.1.2.1
Policy: 1.3.6.1.4.1.44947.1.1.1
CPS: http://cps.letsencrypt.org
User Notice:
Explicit Text: This Certificate may only be relied upon by Relying Parties and only in
accordance with the Certificate Policy found at https://letsencrypt.org/repository/
Signature Algorithm: sha256WithRSAEncryption
...
Вы можете установить сертификат в nginx, если вы оставили tomcat на порту 8080, и
используете nginx в качестве фронт-сервера. Подробнее здесь.

Установка сертификата в tomcat

Необходимо преобразовать сертификат и закрытый ключ к нему в формат JKS, распознаваемый


веб-сервером.

Помещаем полный сертификат из файла fullchain1.pem и закрытый ключ из файла privkey1.pem


в контейнет PKCS#12 с именем debian64.p12. При конвертации укажем пароль на контейнер:
Password
openssl pkcs12 -export -in fullchain1.pem -inkey privkey1.pem -out debian64.p12 -name tomcat

Создаем ключевое хранилище в формате JKS c этим контейнером и таким же паролем:


keytool -importkeystore -deststorepass Password -destkeypass Password -destkeystore
debian64.jks -srckeystore debian64.p12 -srcstoretype PKCS12 -srcstorepass Password -alias
tomcat

Копируем хранилище в каталог конфигурации вебсервера tomcat:


cp debian64.jks /etc/tomcat7/

Редактируем файл конфигурации вебсервера /etc/tomcat7/server.xml так, чтобы в нем появлся


блок:
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" URIEncoding="UTF-8"
keystoreFile="/etc/tomcat7/debian64.jks" keystorePass="Password" keyAlias="tomcat"
keyPass="Password"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false"
sslProtocol="TLS" />

Добавляем возможность вебсерверу работать на привелигированном порту HTTPS (443):


touch /etc/authbind/byport/443
chmod 500 /etc/authbind/byport/443
chown tomcat7 /etc/authbind/byport/443

После этого перезапускаем веб-сервер:


/etc/init.d/tomcat7 restart

После запуска в лог-файле /var/log/tomcat7/catalina.out должны появиться следующие строки:


INFO: Deployment of web application archive /var/lib/tomcat7/webapps/ROOT.war has finished in
52,197 ms
15, 2016 6:58:21 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-80"]
15, 2016 6:58:21 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-443"]
15, 2016 6:58:21 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 54766 ms

Если после этого административный интерфейс WNAM открывается по ссылке


https://имявашегосервера/wnam/home, и браузер показывает на корректно установленное
SSL-соединение, то установка сертификата прошла успешно:
Установка сертификата в портал перехвата

В данном примере описана установка и настройка маршрутизатора Mikrotik. Для других типов
устройств доступа воспользуйтесь соответствующей инструкцией производителя.

1. Переместите файлы с сертификатом и ключом на файловую систему маршрутизатора. Для


этого удобно использовать утилиту Winbox:
2. Импортируйте сертификаты через Winbox или HTTP Web интерфейс в меню
"System-Certificates". Пароль при импорте указывать не требуется:

3. Включите HTTPS режим в меню "System-Services", www-ssl, выберите сертификат cert_1 и


порт 443:

4. После этого административный интерфейс Mikrotik должен быть доступен по имени и по


4.

порту HTTPS:

5. В настройках профиля сервера хотспота необходимо указать DNS-имя (как в сертификате),


перехват по HTTPS, сертификат:
6. В файле перенаправления hotspot/rlogin.html, который вы должны отредактировать и
загрузить в Mikrotik, необходимо изменить редирект на HTTPS-версию портала с
обращением по DNS-имени, а также адрес сервера:

<form name="wnamlogin" action="https://debian64.k18.netams.com/cp/mikrotik" method="post">


<input type="hidden" name="server-address" value = "mk.k18.netams.com:443" />

Теперь необходимо протестировать подключение абонента и перенаправление его сессии с


изначально запрошенной HTTPS-страницы на HTTPS-портал авторизации и обратно на Mikrotik. В
случае успеха авторизация пойдет по шифрованному SSL-каналу:
Если вы забудете указать имя сервера в шаблоне rlogin.html, то на последнем шаге авторизации
возникнет ошибка:
Внимание: на вашей ответственности следить за тем, чтобы установленные сертификаты не
закончили свой строк действия! Бесплатные сертификаты Let's Encrypt выдаются на срок 90
дней, платные на 1 год.

Идентификация по ваучеру
Внимание! Начиная с версии 1.3.1300 WNAM поддерживает новый, улучшенный механизм
работы с ваучерами, а старый механизм, описанный ниже, более не используется.

Начиная с версии 1.3.770 WNAM поддерживает идентификацию не только через телефон (СМС
или звонок), но и по заранее выписанному ваучеру.

Этот метод подходит для организаций, в которых пользователь Wi-Fi сети проходит
предварительную идентификацию или регистрацию альтернативным способом. Например, это
гостиницы.

1. Настройка идентификации по ваучеру

1.1 Для обеспечения идентификации необходимо предварительно задать формат кода доступа,
который будет играть роль ваучера. Это делается в меню "Конфигурация - Общие настройки":

Формат задается в виде строки, содержащей латинские символы X, N, A, а также разделители -


или :

При генерации нового ваучера его номер создается случайным образом согласно формату. При
этом символ A заменяется на случайную букву латинского алфавита [A-Z], символ N заменяется
на цифру [0-9], символ X заменяется на букву или цифру [0-9,A-Z]. Разделители не заменяются.
Пробел в коде недопустим. Примеры шаблона и создаваемых на его основе кодов:

Шаблон Код Код Код

XXX-XXX-XXX HF5-NGS-KGH HFl-8SA-NGS 6GH-KHX-DS0

AAAA-AAAA ADHZ-JKYF KGEB-HNCQ NCWB-NGSY

NN-NN-NN 32-17-34 56-19-67 08-34-11

XXXX:NNNN 5GKA:4297 NGAL:4536 DAL8:6721

Формат шаблона задается глобально для всех ваучеров и площадок.

1.2 Необходимо в разделе "Авторизация" (глобально, или для заданной площадки) указать
форму страницы авторизации "voucher" (в комплекте поставки), либо её клона или копии,
отредактированной вами:
Форма страницы авторизации должна содержать, как минимум, следующую HTML-форму:
<form id="voucher" class="form-signin" data-toggle="validator" role="form" name="voucher"
action="/cp/voucher" method="post">
<input id="code" type="text" name="code" class="form-control" placeholder="
" size="$(voucher-length)" data-error=" : $(voucher-format)" required>
<div class="help-block with-errors"></div>
<button type="submit" class="btn btn-primary"> </button>
</form>

Вы можете также комбинировать содержимое формы с вводом кода ваучера с формой


стандартной СМС авторизации. При этом будут использованы те параметры СМС (метод,
провайдер, длина кода и т.п.), которые указаны в настройках метода авторизации. Таким
образом вы сможете одновременно реализовать и авторизацию через СМС, и через ваучер (для
тех, у кого он есть).

1.3 Необходимо выписать новый ваучер в меню "Пользователи":

В качестве номера (кода) ваучера будет создан уникальный код согласно формату, заданному
ранее. Необходимо указать обязательный идентификатор абонента (имя, фамилию, номер
брони), и произвольные комментарии (номер комнаты, номер брони и т.п.). Также можно
указать период жизни ваучера и максимальное число устройств на один ваучер.
Внимание: Если вы регистрируете полное имя пользователя и вносите в поле комментариев его
паспортные данные, фактически вы начинаете хранить в системе WNAM персональные данные.
Это налагает на вас обязательства по обработке и надежному хранению персональных данных в
соответствии с действующим законодательством. Рекомендуется при создании ваучера
указывать только обезличенные параметры, как например номер брони и номер комнаты, а
персональные данные абонентов хранить в другом месте (например, в гостиничной системе),
или в бумажном виде (сканированная копия паспорта) в сейфе.

Можно также одновременно выписать большое число ваучеров (от 2 до 100). Для этого укажите
их количество в соответствующем поле. Тогда ваучеры (коды) отобразятся в таком виде:
При создании ваучера, который еще не активирован, он будет виден в списке пользователей с
пустым МАС-адресом типа "все нули" и соответствующим признаком (буква "А"):

Интерфейс создания ваучеров доступен пользователям со всеми ролями, кроме роли


"наблюдатель", в том числе в интерфейсе владельца площадки.

Внимание: все ваучеры, выписанные в системе, являются "общими" и к площадке не привязаны,


как и база данных пользователей (МАС-адресов).

2. Работа идентификации по ваучеру

2.1 При подключении к сети WiFi и первоначальном перенаправлении на сайт абонент видит
окно приветствия - запроса кода доступа. Код необходимо будет ввести, и нажать на кнопку
подтверждения:

Если код введен с ошибкой, то появится сообщение:


В таком случае необходимо повторить попытку ввода:
Код можно вводить и маленькими буквами. В этом случае система автоматически приведет
введенные символы к верхнему регистру. В случае успеха последует стандартное действие
(перенаправление по ссылке, отображение страницы приветствия, отображение рекламы):
При этом в системе WNAM создается полноценная (с МАС-адресом и именем устройства) запись
об абоненте:
В остальном WNAM работает аналогично идентификации через телефон (сессии, статистика,
отчёты, СОРМ и т.п.)

Идентификация через Госуслуги


Начиная с версии 1.3 WNAM позволяет проводить идентификацию пользователей через учетную
запись на портале Госуслуги (с использованием системы ЕСИА). Для идентификации применяетс
я протокол OAuth 2.0.

Использование данного метода требует:

Получения разрешения Россвязьнадзора на работу с персональными данными (статус


оператора персональных данных)
Получения учетной записи вашей организации на портале Госуслуги, регистрация
организации в ЕСИА
Получения тестового и промышленного доступа к ЕСИА, используя регламент Минкомсвязи
Выписывания и установки соответствующих сертификатов на сервер WNAM

За разъяснениями по первым трем пунктам обратитесь по адресу support@netams.com

Для создания сертификата, используемого для подписи запросов к ЕСИА, необходимо в


командной строке выполнить (заменив параметры в dname):
keytool -genkeypair -v -alias wnam-esia -keyalg RSA -keysize 2048 -validity 10000 -keypass
wnam-pass -keystore wnam-esia.jks -storepass wnam-pass -dname "CN=WNAM-ESIA, OU=WNAM, O=Netams
LLC, L=Moscow, S=Moscow, C=RU"
keytool -exportcert -alias wnam-esia -keystore wnam-esia.jks -storepass wnam-pass -file
wnam-esia.crt

Полученный файл, wnam-esia.jks, положите в каталог /etc/. Это сертификат с приватным ключом
в формате, доступном Java-приложению. Сертификат без ключа, wnam-esia.crt, понадобится
позже.

Файл конфигурации /etc/wnam.properties может содержать такие параметры:


esia_keystore= # - /etc/wnam-esia.jks
esia_keypassword=wnam-pass # wnam-pass

Необходимо на технологическом портале ЕСИА создать вашу информационную систему,


загрузить сертификат. Зайдите на портал https://esia.gosuslugi.ru/console/tech с учетной
записью сотрудника, привязанной к вашей организации:

Создайте информационную систему:


Мнемоника системы - это её краткое имя, идентификатор.

Укажите необходимые параметры в форме:


Сохраните форму и загрузите созданный сертификат (.crt файл, открытая часть сертификата):
Затем выполните заполнение бумажной формы заявки на подключение к тестовой и
продуктивной ЕСИА (доступ к тестовой можно и не делать), подпишите (электронно или
бумажно) заявку и отправьте её в Минкомсвязь согласно регламенту. Как только заявка будет
одобрена, можно настраивать WNAM и выполнять проверки.

Настройка WNAM заключается в указании параметров подключения к ЕСИА в окне "Социальные


сети - ЕСИА":
Вам необходимо будет указать мнемонику системы (как была задана при регистрации системы
на технологическом портале), исполнение (продуктивное или тестовое), пароль на сертификат.

Адрес возврата - это ссылка внутри WNAM, на которую пользователь будет перенаправлен после
завершения идентификации в ЕСИА. Внимание! Поскольку WNAM использует cookie для работы с
абонентами, крайне важно, чтобы ссылка перенаправления здесь содержала то же имя, что и
оригинальная ссылка, на которую производится перенаправление пользователя для
авторизации в WNAM. То есть если сервер доступа Mikrotik (например) производит
перенаправление абонента на http://wnam.company.ru/cp/mikrotik, указанная здесь ссылка на
адрес возврата обязана иметь вид http://wnam.company.ru/cp/social/esia.

Область доступа определяет перечень атрибутов, возвращаемых системой авторизации при


успешном выполнении пользователем входа в ЕСИА. Для тестовой ЕСИА это "http://esia.gosuslugi
.ru/usr_inf". Для продуктивной ЕСИА это "fullname birthdate gender email mobile id_doc snils inn".
Область определяется в соответствии с текущей версией методических рекомендаций.

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

Внимание: WNAM может работать с тестовой системой ЕСИА, доступной по адресу https://esia-po
rtal1.test.gosuslugi.ru/, и с продуктивной системой ЕСИА, доступной по адресу https://esia.gosusl
ugi.ru/. Ссылки доступа к обоим системам зашиты в код WNAM и выбираются автоматически, в
зависимости от заданного использования системы. В первом случае для тестов можно применять
тестовую учетную запись (получите набор реквизитов при подключении к тестовой ЕСИА), а во
втором случае - вашу собственную учетную запись на портале "Госуслуги".
Для проверки работы системы авторизации через ЕСИА временно включите в меню
"Конфигурация - Общие настройки" "Тестовые интерфейсы СМС и шаблонов страниц", и
откройте обычным браузером ссылку http://адрес_сервера_wnam/wnam/auth_test

Выберите ссылку "Auth in ESIA". Пройдите процедуру авторизации. В случае успеха вам будет
выдано сообщение, например:
EsiaUser{firstName='', lastName='-', middleName='', birthDate=Mon Feb 07 03:00:00 MSK 1994,
gender='M', trusted=true, verifying=false, snils='000-000-600 02', inn='000123123002',
status='REGISTERED'}

В лог-файле wnam.log появятся записи:


23:40:13.855 DEBUG [com.netams.wnam.web.AuthController:259] - Request esia code ...
23:40:13.855 DEBUG [com.netams.wnam.web.AuthController:260] - State
7324de34-618e-4ed9-b5cc-f5ea35838ae9
23:40:14.021 DEBUG [c.n.w.s.socnet.esia.EsiaService:136] - Esia token EsiaToken{idToken='null',
state='c4a355eb-70e3-4dcd-95a5-b9fcd581bba1', accessToken='...', payload=null, error='null',
errorDescription='null'}
23:40:14.022 DEBUG [c.n.w.s.socnet.esia.EsiaService:147] -
{"alg":"RS256","sbt":"access","typ":"JWT","ver":1}
23:40:14.022 DEBUG [c.n.w.s.socnet.esia.EsiaService:148] -
{"exp":1483911613,"scope":"http:\/\/esia.gosuslugi.ru\/usr_inf?oid=1000299654","iss":"http:\/\/
esia.gosuslugi.ru\/","nbf":1483908013,"urn:esia:sid":"...","urn:esia:sbj_id":1000299654,"client
_id":"WNAMTEST1","iat":1483908013}
23:40:14.130 DEBUG [c.n.w.s.socnet.esia.EsiaService:211] - Response: EsiaUser{firstName='',
lastName='-', middleName='', birthDate=Mon Feb 07 03:00:00 MSK 1994, gender='M', trusted=true,
verifying=false, snils='000-000-600 02', inn='000123123002', status='REGISTERED'}

Если авторизация проходит успешно, необходимо включить возможность авторизации в вашу


назначенную в меню "Авторизация" страницу входа в интернет, например исправив штатный
шаблон страницы sms.html, добавив в ней кнопку:
<A href="#" type="button" onclick='esia();'><button class="btn btn-primary"> </button></a>

и скрипт:
<script type="text/javascript">
function esia() {
document.location.href="$(soc_esia)";
return false;
}
</script>

Попробуйте выполнить идентификацию с мобильного устройства, подключенного к Wi-Fi сети


через ваш сервер доступа.
Если она пройдет успешно, то в списке пользователей в административном интерфейсе WNAM
появится запись:
Отправка СМС через USB модем в сервере доступа Mikrotik
Начиная с версии 1.3.909 WNAM поддерживает отправку идентификационных СМС сообщений с
USB GSM модема, установленного непосредственно в сервер доступа - маршрутизатор Mikrotik.

Для работы подойдет любой модем, переведенный (вручную) в режим Serial-устройства,


взаимодействие с которым ведется через AT команды.

Внимание: скорость отправки СМС таким методом не велика, порядка 1 сообщения за 5 секунд.

Установите модем в маршрутизатор и проверьте его наличие в системе (командная строка


Mikrotik):
[admin@mk.k18] > system resource usb print
# DEVICE VENDOR NAME SPEED
0 1:1 Linux 3.3.5 ehci_hcd RB400 EHCI 480 Mbps
1 1:3 HUAWEI_MOBILE HUAWEI_MOBILE 480 Mbps
[admin@mk.k18] > port print detail
Flags: I - inactive
0 name="usb1" used-by="" device="1:3" channels=3 baud-rate=9600 data-bits=8 parity=none
stop-bits=1 flow-control=none

Если модем доступен в системе, попробуйте выполнить проверку работы АТ-команд:


[admin@mk.k18] > system serial-terminal port=usb1 channel=0
[Ctrl-A is the prefix key]

AT+CNUM
+CNUM: "My Number","+79261893412",145
OK
[Q - quit connection] [B - send break]
[A - send Ctrl-A prefix] [R - autoconfigure rate]

Welcome back!

Нажмите Ctrl+A и затем Q для выхода.

Если вы видите номер телефона, закрепленный за SIM-картой модема, можно попробовать


выполнить отправку СМС:
/tool sms send port=usb1 channel=0 phone-number="+79151234567" message="Test SMS 123"

Внимание! В силу особенностей реализации команды /tool sms на маршрутизаторе Mikrotiik


поддерживается отправка сообщений только в кодировке ASCII, то есть без русских букв!

Если вам доставлено это тестовое сообщение, значит можно переходить к настройке WNAM.

Вы должны выбрать соответствующий метод отправки в настройках параметров "Aвторизация"


конкретной площадки. Для этого в меню "Конфигурация - Площадки" выберите вторую вкладку
"Авторизация", и укажите:

Метод авторизации: Отправка СМС абоненту


Провайдер СМС: USB модем в сервере доступа Mikrotik
Логин: usb1 (здесь надо указать название usb порта, куда установлен модем)
Пароль: 0 (здесь надо установить номер канала, через который модем доступен в
микротике, по умолчанию 0)
Заголовок: произвольный, игнорируется. Для будущего использования рекомендуется
вписать здесь телефонный номер, зарегистрированный на SIM-карту, в формате 7xxxxxxx
Текст: Текст сообщения с учетом замен ключевых слов %CODE% и %MAC% на код доступа
и МАС-адрес устройства. Внимание: русские буквы не поддерживаются
Необходимо также выбрать шаблон страницы авторизации и указать иные требуемые
параметры
Затем в настройках этой же площадки выберите первую вкладку "Параметры", и в списке "Разр
ешенный сервер доступа" выберите сервер доступа (маршрутизатор) Mikrotik, обслуживающий
данную площадку - тот, куда вы установили модем.

Внимание: вы можете выполнить аналогичные настройки "Провайдер СМС: USB модем в сервере
доступа Mikrotik" и в разделе меню "Конфигурация - Авторизация". Таким образом метод будет
действовать для всех площадок. Однако в этом случае вы должны для каждой площадки
определить сервер доступа типа Mikrotik. В противном случае отправка СМС абоненту,
подключенному на ошибочно настроенной площадке, не произойдет.

Внимание: сервер доступа типа Mikrotik, на который ссылается настройка площадки и где
установлен модем, должен иметь в настройках:

указанные параметры IP адрес, логин, пароль


созданного с таким логином и паролем пользователя на устройстве Mikrotik
включенный механизм Mikrotik API (меню IP...Services)
открытый порт Mikrotik API (TCP 8728) в межсетевом экране микротика, работающий
доступ к нему с сервера WNAM

На этом настройка закончена. Можете попробовать выполнить подключение к настроенной


ранее площадке неизвестным (не авторизованным устройством). При вводе номера телефона в
лог-файле wnam.log появится запись об отправке СМС:
20:10:39.184 DEBUG [c.n.wnam.services.MikrotikService:79] - sendSms to 79152133498 via NAS
172.16.130.9 USB port usb1 channel 0
20:10:41.793 DEBUG [c.n.wnam.services.MikrotikService:96] - sendSms at NAS IP=172.16.130.9
result=1

Идентификация в гостиничной системе "Эдельвейс"


Начиная с версии 1.3.983 WNAM позволяет обеспечивать идентификацию гостей,
зарегистрированных в системе управления гостиницами "Эдельвейс" производства компании Эде
линк

Доступ предоставляется без СМС и звонков на основе информации о госте, имеющейся в базе
данных гостиничной системы. Взаимодействие между установленной у заказчика-владельца сети
Wi-Fi системой "Эдельвейс" и WNAM на сервере (того же заказчика, или провайдера
авторизации) осуществляется по протоколу HTTP при помощи специального агента на сервере "Э
дельвейс". WNAM поддерживает одновременную работу с несколькими системами "Эдельвейс"
на разных площадках оказания услуги Wi-Fi.

Для настройки интеграции с "Эдельвейс" необходимо:

1. Установить и настроить саму систему "Эдельвейс"

2. Установить и настроить адаптер взаимодействия "Эдельвейс" с внешними системами.

Он поставляется компанией-производителем, Эделинк. Адаптер, с одной стороны,


взаимодействует с БД "Эдельвейс" на сервере в гостинице, а с другой стороны предоставляет
HTTP API интерфейс для проверки того, зарегистрирован ли гости в системе, какие у него
параметры проживания. После установки адаптера (он может носить имя EdelHotWiFiAdapter
или EdelHotWiFiAgent), необходимо выполнить следующие действия:

2.1. Указать IP адрес и TCP-порт, по которому адаптер будет доступен извне серверу WNAM. Для
этого найдите конфигурационный файл C:\EDEL\SERVICES\EdelHotWiFiAgent\EdelHotWiFiAdapter.
exe.config и отредактируйте в нем параметр UriHotezaHost так, чтобы он содержал имя/адрес
kjrfkmyjuj сервера, и порт например:
<appSettings>
...
<add key="UriHotezaHost" value="http://127.0.0.1:4214/" />
</appSettings>

Рекомендуется оставить адрес сервера локальным, то есть localhost, и порт подключения 4214.
Узнайте адрес сервера "Эдельвейс", по которому он будет доступен для WNAM. Это либо адрес в
частной сети, например 192.168.9.11 (если WNAM установлен в той же сети), либо публичный
адрес, предоставляемый путем трансляции (проброса порта) на пограничном маршрутизаторе
Интернет, если WNAM подключается к "Эдельвейс" из сети Интернет. Эти данные впоследствии
понадобятся.
2.2. Разрешите доступ к серверу где установлена система "Эдельвейс", извне. Для этого в
настройках межсетевого экрана Windows этого сервера разрешите обращения на порт (в
примере - 4214):

Там же во вкладе Scope в поле Remote IP Address - These IP addresses рекомендуется указать
IP-адрес сервера WNAM, который будет обращаться к этому серверу. Это нужно для того, чтобы
никто случайно не смог подключиться к "Эдельвейс" (впрочем, агент работает "на чтение" и
безопасен).

2.3. Перезапустите службу EdelHotWiFiAgent:


2.4. Проверьте доступность сервиса простым запросом без параметров (который должен вернуть
ошибку типа 404, что в данном случае нормально). Проверку надо выполнить сначала с самого
сервера "Эдельвейс", затем с сервера WNAM:

root@debian:~# curl http://77.123.231.56:4214


{"statusCode":404,"message":"The resource you have requested cannot be found.","details":""}
root@debian64:~#
3. Настроить WNAM на проведение идентификации через "Эдельвейс".

3.1. В разделе "Загружаемые страницы портала" загрузите шаблонную страницу идентификации


edelweiss.html (её можно взять здесь: http://www.netams.com/files/wnam/portalpages/) и
отредактируйте её по вашему желанию, например изменив логотип.

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

3.2. Укажите метод "Авторизация в гостиничной системе "Эдельвейс" в окне настроки метода
авторизации (в общих настройках, или настройках конкретной площадки):

В параметре "URL системы" укажите адрес агента, установленного на сервере " Эдельвейс", в
нашем примере это http://77.123.231.56:4214/

В качестве имени страницы укажите страницу, загруженную на предыдущем шаге (edelweiss.htm


l)

Сохраните изменения. На этом настройка завершена.

Для тестирования возможности авторизации выполните подключение к Wi-Fi на площадке, на


которой настроена авторизация через систему "Эдельвейс".

При подключении гостя ему будет предложена возможность идентификации:


Гостю необходимо будет указать свой номер комнаты, и дату рождения.

При получении от "Эдельвейс" отрицательного ответа пользователю будет об этом сообщено


("Гость не найден").

При получении положительного ответа (гость найден, в настоящий момент его проживание
разрешено) система WNAM создаст запись о госте в своей базе данных, а гостю будет
предложено перейти в интернет в соответствии с настройками "Перенаправления". При этом в
лог-файле wnam.log появятся записи:
19:19:02.789 DEBUG [c.n.w.web.cp.CaptivePortalController:1537] - captive portal redirected to
EDELWEISS page, username=00:01:02:03:04:05, cust=new, form='edelweiss.html'
19:19:22.428 DEBUG [c.n.w.web.cp.CaptivePortalController:1141] - postEdelweiss room=204,
birthdate=11.05.1986, MAC=00:01:02:03:04:05, EDEL_URL='http://77.123.231.56:4214/'
19:19:22.637 DEBUG [c.n.w.web.cp.CaptivePortalController:1181] - postEdelweiss identified: ' '
until 07.01.2017 23:59:59
19:19:22.637 DEBUG [c.n.w.web.cp.CaptivePortalController:1596] - processRedirectRequestCi
mac=00:01:02:03:04:05, method=ADV, formName=, redirectUrl=bash.im,
key=40cac5c4-2551-4446-9aa9-251fe3a77a27

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

Административный интерфейс будет содержать запись о госте, созданную в соответствии с


полученными из системы данными:

При нажатии на кнопку справа от слов "Код СМС авторизации" запомненная для гостя
авторизация будет сброшена, и при следующем его подключении к сети запрос ввода номера
комнаты-даты рождения будет повторен.

Идентификация через логин-пароль


Начиная с версии 1.3.991 WNAM поддерживает осуществление идентификации через указание
пары "логин-пароль". Это может быть как заранее созданная в административном
веб-интерфейсе учетная запись абонента беспроводной сети, так и автоматически создаваемая
учетная запись при успешной авторизации в службе Active Directory (то есть в домене Windows).

Внимание! На вашей ответственности остается актуальность и достоверность сведений об


абоненте в учетной записи, создаваемой вручную, либо сведений в Active Directory и связанных
(например, кадровой) системах. По закону 97-ФЗ идентификация через пару "логин-пароль" не
предназначена для обеспечения гостевого доступа, следовательно идентификацию таким
способом можно проводить только для заранее известных вам пользователей, например
сотрудников вашего предприятия.

Для включения такого типа идентификации необходимо в общем меню


"конфигурация-авторизация", или в меню настройки конкретной площадки оказания услуги
выбрать метод "Ввод логина и пароля".

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

WNAM поддерживает использование разных доменов на разных площадках оказания услуги


Wi-Fi.

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


"конфигурация-загружаемые страницы портала", используя образец login.html, доступный
здесь: http://www.netams.com/files/wnam/portalpages/

Если выбран способ идентификации с заранее созданными записями, их нужно создать, нажав в
окне "Пользователи" кнопку "Добавить пользователя":
При этом появится окно создания новой записи. В нем вы должны создать новую запись, указав
обязательный параметр "Имя/идентификатор", а также один из вариантов:

Телефон - если вы идентифицируете пользователей по телефонным номерам, МАС будет


присвоен автоматически при первом входе (вплоть до числа раз, указанного ниже в
"разрешить несколько устройств"
МАС-адрес устройства, запись будет сразу активирована
Логин и пароль - для идентификации по логину/паролю

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

После создания записи о пользователе её можно просмотреть, нажав в соответствующую строку


в таблице пользователей. Там, например, можно обновить пароль. Также в параметрах записи
будет указан специальный код авторизации "MAN", т.е. признак "ручного" создания записи.
При попытке идентификации с мобильного устройства отобразится окно входа через имя и
пароль:
Внимание! Поскольку форма передает имя и пароль в открытом виде, необходимо предусмотреть
защиту данных от перехвата. Для этого используйте либо https (SSL) подключение до сервера
WNAM, либо поставьте пароль (WPA2) на гостевую сеть.

Если пароль введен неправильно, или пользователь не найден, ему будет об этом сообщено:
При успешной идентификации в лог-файле /var/log/tomcat8/wnam.log появится
соответствующая запись:
22:37:15.938 DEBUG [c.n.w.web.cp.CaptivePortalController:1272] - postUserPass
MAC=4C:57:XX:XX:XX:XX, username='v.pupkin', password_len=6, form=login.html
22:37:15.942 DEBUG [c.n.w.web.cp.CaptivePortalController:1300] - postUserPass authenticated
LOCAL username='v.pupkin', new cloned entry

Также при просмотре записи об абонента появятся сведения о его МАС адресе и параметрах
браузера (User-Agent):
При авторизации через Active Directory заранее создавать учетные записи абонентов не
требуется. Они создадутся автоматически при первом входе:

22:30:51.312 DEBUG [c.n.w.web.cp.CaptivePortalController:1272] - postUserPass


MAC=4C:57:XX:XX:XX:XX, username='anton', password_len=10, form=login.html
22:30:51.418 DEBUG [c.n.w.web.cp.CaptivePortalController:1312] - postUserPass authenticated AD
username='anton', CN: Aaaa A. Aaaaaaaa ,

Также в параметрах записи будет указан специальный код авторизации "AD". Пароль указан не
будет, так как он проверяется на стороне Active Directory, а WNAM его не сохраняет по
соображениям безопасности.
VIP пользователи
Начиная с версии 1.3.1151 WNAM поддерживает работоспособность привилегированных
пользователей (абонентов) Wi-Fi сети.

Привилегированный пользователь - VIP абонент, на которого не распространяются:

ограничения по числу сессий за период


ограничения по длительности сессии
органичения по скорости передачи данных
ограничения по объему скаченных данных
нет всплывающих окон хотспота (captive portal) при использовании МАС-авторизации на
хотспоте (см. далее)

Вместе с тем, на привилегированных пользователей распространяется требование по


идентификации (любым из настроенных способов, в частности по СМС), и длительность
идентификации (времени, пока она будет действовать).

При первоначальном подключении абонент (любой) обязан пройти идентификацию в


соответствии с настройками, указанными в разделе "Конфигурация - Авторизация" либо
аналогичном разделе настроек площадки оказания услуги.

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


абонента VIP-статус. Этот статус может быть установлен двумя путями:

1. Автоматически для всех проходящих идентификацию, путем выставления чекбокса в


настройках параметра авторизации:

2. Либо для заданного абонента, в окне его настроек, вторая вкладка:


В любом случае, в списке пользователей VIP-абонент будет помечен статусом "звездочка":

При последующих подключениях WNAM предпримет попытки не показывать VIP абоненту


рекламу, и сделать его подключение максимально прозрачным и комфортным. Это будет
происходить до тех пор, пока действует срок авторизации (указанный в днях в настройках
"Авторизация").

МАС-Авторизация

Для того, чтобы подключение VIP-абонентов происходило автоматически при появлении


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

Это свойство оборудования хотспота, позволяющее запрашивать сервер авторизации при


появлении информации о подключенности устройства к сети, зачастую до стадии получения
устройством IP-адреса. Запрос производится по протоколу RADIUS и передается на сервер
WNAM.

Внимание! Не все типы хотспотов поддерживают МАС-авторизацию. Проверено, что она


работает на контроллерах Cisco WLC и маршрутизаторах Mikrotik.

Внимание! Для поддержки МАС-авторизации вам будет необходимо обновить скрипт,


связывающий FreeRADIUS и WNAM, /etc/freeradius/wnam-freeradius-bridge.pl

Скрипт можно загрузить здесь: http://www.netams.com/files/wnam/misc/wnam-freeradius-bridge.


pl

Для Mikrotik МАС-авторизация включается здесь:


Необходимо установить такой же пароль (MAC Auth. Password), который используется при
авторизации устройства (параметр captiveportal_pass, по умолчанию password).

Для контроллера Cisco WLC она носит название "MAC Filtering" и включается здесь:
Обратите внимание на включенный параметр "Alow AAA Override":

Идентификация в гостиничной системе UCS Shelter


Начиная с версии 1.4.1390 WNAM поддерживает взаимодействие с гостиничной системой Shelter
2.0 производства UCS.
Идентификация гостя в сети Wi-Fi проводится путем запроса номера комнаты и даты рождения.
При вводе данных производится проверка путем запроса сервера Shelter через его API; в случае
успеха (гость найден) загружаются его данные и создается запись о пользователе в системе
WNAM, а также устанавливаются лимиты действия идентификации (по длительности
зарегистрированного пребывания в гостинице).

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

В первую очередь в конструкторе страниц отредактируйте шаблон страницы идентификации


типа "Авторизация в гостиничной системе "UCS Shelter" (по умолчанию)" shelter.html (или её
клон), заменив название и логотип. Доступен толко "экспертный режим" конструктора.

В настройках площадки предоставления услуги (или в общих настройках) в разделе


"авторизация" укажите метод "Авторизация в гостиничной системе UCS Shelter".

В качестве параметра URL укажите айпи адрес и порт сервера Shelter (Shelter Online Server)

В качестве ключа для работы с API укажите пароль, назначенный для взаимодействия с
системой Shelter, в этой системе (Пароль доступа к Shelter Online Server)

Выберите созданный в конструкторе шаблон страницы


Если идентификация в Shelter будет успешной, в соответствующей записе о пользователе
появятся полученные из системы данные, по которым возможно однозначно идентифицировать
абонента. Основной параметр для этого - идентификатор брони.
Сбор ФИО и E-mail
Начиная с версии 1.4.1427 WNAM поддерживает опциональный сбор дополнительных
параметров - адреса электронной почты и ФИО пользователя, на странице авторизации и
странице приветствия.

Для включения этой функции выберите соответствующие чекбоксы в настройках конструктора


страниц:
Можно выбрать оба поля - "Запрашивать E-mail" и "Запрашивать ФИО", или только дно из них. Н
аличие этих параметров приводит к отображению абоненту соответствующих полей на странице
идентификации (вместе с полем ввода номера телефона) или на странице приветствия. При этом
невозможно нажать на кнопку продолжения, "Получить код", пока эти поля не заполнены.

Аналогичные параметры можно запросить в экспертном режиме в странице авторизации других


типов.

При вводе значений (конечно, WNAM не может проверить корректность ввода данных) они
сохраняются в параметрах записи о пользователе:

При выгрузке отчета с профилями всех пользователей собранные данные попадают в общий
отчет. Для формирования отчёта выберите меню "Отчеты - Пользователи - Выгрузка профилей
пользователей", укажите диапазон времени, площадку, тип выгрузки (по созданным записям,
или по сессиям), получите .CSV файл:
Интеграция с Kinian
Начиная с версии 1.4.1443 WNAM поддерживает интеграцию с системой маркетинговой
поддержки взаимодействия с пользователями http://kinian.com/

При подключении абонента к Wi-Fi сети его мобильное устройство явно или неявно отправляет
запрос на платформу Kinian.

Для этого реализовано два сценария работы, на ваш выбор:

1. Отправка информации через скрытый объект iframe, размещенный на странице типа


"Приветствие", отображаемой пользователю. Для этого вставьте следующий код где-нибудь
внизу шаблона страницы (в экспертном режиме редактирования):
<iframe src="https://app.kinian.com/jmark/wfn/$(kinian)"
style="visibility:hidden;width:0;height:0;border:0;border:none;"></iframe>

Ключевое слово, параметр $(kinian), будет заменен на актуальную ссылку с закодированными


параметрами (МАС адрес устройства пользователя, идентификатор площадки и т.п., кроме
номера телефона).

Поскольку обращение к платформе Kinian будет производиться мобильным браузером


пользователя ДО момента открытия тому полного доступа в Интернет, вы должны добавить
IP-адрес или имя платформы (app.kinian.com) в "белый список" (walled garden) сервера доступа
(маршрутизатора или контроллера).

2. Перенаправление абонента на платформу Kinian вместо показа страницы приветствия, с


дальнейшим перенаправлением на целевую ссылку.

Этот вариант подходит, если вы не хотите показывать пользователю страницу приветствия


вовсе.
В настройках раздела "Перенаправление" для заданной площадке укажите в поле "Отправлять
по ссылке" следующее значение:
kinian(https://app.kinian.com/mark/wfn, http://bash.im)

При этом первый параметр в функции - ссылка до API платформы Kinian, второй - желаемая
целевая ссылка.

В момент подключения пользователя к Wi-Fi произойдет автоматическое генерирование целевой


ссылки функцией kinian(...,...) и перенаправление сессии пользователя на неё, с
одновременным открытием доступа к Интернет.

Мониторинг серверов доступа и площадок


Начиная с версии 1.4.1446 WNAM обеспечивает возможность производить автоматический
мониторинг доступности и работоспособности площадок и серверов доступа. Эта функция
востребована операторами связи, под управлением которых находится значительное число
площадок и серверов доступа, для визуального контроля, происходят ли вообще события
авторизации на площадках, и работает ли связь с серверами доступа.

Общая, сводная информация о доступности площадок и серверах доступа отображается в


разделе "Сводка" административного веб-интерфейса в виде цветных шкал:
Помимо отображения общего числа объектов, цветная диаграмма отображает число объектов
каждого типа, для которых цвет соответствует времени доступности (в интервале времени в
прошлом). Таблица соответствия:

Цвет Зафиксировано событие/проверка

Ярко-зеленый Менее 5 минут

Салатовый От 5 до 60 минут

Желтый От 60 минут до суток

Рыжий Более суток

Тёмно-серый Нет данных

Светло-серый Выключено
При наведении курсора на цветовую полосу отображается всплывающая подпись (в
соответствии с таблицей выше).

1. Мониторинг площадок

Контроль активности площадок производится в пассивном режиме, то есть для его работы
дополнительных действий системой WNAM не предпринимается. Действия пользователей по
подключению на площадке фиксируются, и приводят к обновлению таймаут-счетчика последней
активности для данной площадки, что служит источником для формирования диаграммы.
Например, если на какой-то из площадок постоянно (не реже чем раз в пять минут) происходят
события авторизации, и поступает трафик от сервера доступа для данной площадки по
протоколу RADIUS, площадка считается активной и цвет её состояния - ярко-зеленый.

2. Мониторинг серверов доступа

В отличие от площадок, сервер доступа может быть доступен по сети для системы WNAM, но не
производить авторизаций и обслуживания абонентов в текущий момент (например, потому что
сейчас - ночь), таким образом некорректно было бы ориентироваться только на поток
поступающих RADIUS-сообщений. Поэтому WNAM реализует активный механизм проверки
доступности сервера доступа, который заключается в периодическом опросе всех включенных
устройств доступа путем попытки установить с ними TCP-соединение.

Механизм проверки включается глобально в меню "Конфигурация - Общие настройки". По


умолчанию вся проверка выключена.

Можно задать частоту проверки из выпадающего списка, от 30 секунд до 6 часов. Рекомендуется


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

при числе серверов доступа до 10 - раз в 30 секунд


при числе серверов доступа от 10 до 50 - раз в 60 секунд
при числе серверов доступа от 50 до 100 - раз в 5 минут
при числе серверов доступа более 100 - раз в 15 минут или реже

Для проверки WNAM пробует создать TCP-соединение до IP адреса сервера доступа, указанного
в его настройках. При этом используется:

Если указан только основной IP-адрес (NAS-IP-Address), то используется он.

Если указан основной IP-адрес (NAS-IP-Address), а также внешний IP-адрес, то используется


последний.
Проверка осуществляется в попытках установить
соединения (последовательно) на порты 22, 23,
80, 8728 (для маршрутизаторов Mikrotik), до
получения успешного ответа. Если ответа не
последовало, попытки прекращаются и сервер
доступа считается недоступным, до следующего
цикла проверки.
Вы также можете указать специальный TCP-порт в
настройках "Внешний IP адрес", в таком случае
проверка будет проводиться только попыткой
подключения по заданному порту:
По результатам проверок таблица с перечнем счереров доступа (меню "Конфигурация - Сервера
доступа") содержит значки с теми же цветовыми обозначениями, отображающие статусы
доступности каждого из серверов доступа.
Аналогичные значки появляются и в таблице с перечнем площадок.

Прикладной интерфейс (API)


Начиная с версии 1.4 WNAM обеспечивает взаимодействие с внешними системами, которые
могут обращаться к серверу WNAM через HTTP ReST интерфейс и запрашивать или
модифицировать некоторые данные, а также управлять авторизацией пользователей при работе
метода авторизации "через внешнюю систему". Этот механизм полезен для интеграции со
внешними системами рекламы, отчетности, CRM, в частности при работе с нотификациями.

API включается в меню "Конфигурация - Общие настройки".

Для контроля того, с каких IP адресов допустимы обращения, применяется параметр allowed_sub
nets конфигурационного файла /etc/wnam.properties

Доступно два режима работы API.

Взаимодействие с внешней системой, осуществляющей идентификацию и взаимодействие с


абонентами.

В этом режиме WNAM производит хранение, обработку правил доступа, взаимодействие с


RADIUS-клиентами, создает отчетность и обеспечивает розыск. Внешняя система производит
идентификацию абонента и сообщает WNAM необходимую информацию (учетные записи
пользователей). Пользовательский интерфейс абонента обеспечивается внешней системой.

Взаимодействие с внешней системой, осуществляющей аналитические функции и


дополнительное управление абонентами.

В этом режиме WNAM обеспечивает все действия, связанные идентификацией абонента, сбором
статистических данных, отображение страниц и т.п., а внешняя система отвечает за создание и
модификацию записей об абонентах, площадках, серверах доступа, пользователях
веб-интерфейса и имеет возможность запрашивать сведения из базы данных WNAM посредством
HTTP API интерфейса.

Для работы с API обратитесь к разработчикам в ООО "Нетамс".

Обслуживание системы
Восстановление пароля

Если вы забыли пароль пользователя admin, его можно сбросить в значение по умолчанию
("admin") путём прямой модификации записи в базе данных. Для этого на сервере WNAM от
пользователя root выполните команды:
mongo wnam_db
db.webinterfaceusers.update( { _id: "admin"} , { $set : { "password" :
"d2abaa37a7c3db1137d385e1d8c15fd2"} } )

Уменьшение размера базы лог-событий

Поскольку по умолчанию все объекты в базе данных mongdb хранятся неограниченное время, в
нагруженной системе возможна генерация очень большого числа событий, которые занимают
место в коллекции логов (cmdServiceLogs).

Mongodb обладает способностью автоматически удалять объекты из коллекции, если превышено


время их жизни.

Для установки времени жизни сообщений в логах =14 дней создайте новый индекс:
mongo wnam_db
db.cmdServiceLogs.createIndex( { "time": 2 }, { expireAfterSeconds: 1209600 } );

14 дней - это 60*60*24*14 = 1209600 секунд.

Резервное копирование

Для выполнения резервного копирования создайте скрипт, и вызывайте его раз в сутки (ночью):
rm -rf /backup/wnam_db
mongodump -d wnam_db -o /backup
mv /backup/wnam_db /backup/wnam_db_`date +"%d-%m-%Y"`

Желательно, чтобы раздел /backup/ находился на физически другом жёстком диске.

Используемые TCP/IP порты

Для работы WNAM используются следующие порты и протоколы, которые необходимо настроить
на межсетевом экране вашего сервера, или промежуточных межсетевых экранах:
Протокол и порт Направление Назначение

tcp/80 к серверу веб-интерфейс


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

tcp/443 к серверу пользовательские страницы


портала (авторизация и
реклама) при использовании
портала HTTPS (Mikrotik)

udp/1812 к серверу запросы авторизации от


RADIUS-клиентов к
RADIUS-серверу

udp/1813 к серверу сообщения аккаунтинга от


RADIUS-клиентов к
RADIUS-серверу

udp/1700, udp/3799 от сервера запросы PoD и CoA к


серверам доступа Cisco ISG,
Cisco WLC, Alcatel-Lucent

tcp/8728 от сервера запросы на определение


DHCP-идентификаторов
абонентов (к
маршрутизаторам Mikrotik
через API)

tcp/443, tcp/3000 от сервера авторизация абонента и


запросы на определение их
DHCP-идентификаторов (к
контроллеру Bluesocket)

tcp/443 от сервера проверка действительности


лицензии WNAM на серверах
ООО "Нетамс"

tcp/20001 к серверу трафик запросов от скриптов


wnam-* (например, работы с
freeradius) до сервера WNAM
(обычно через localhost)

udp/20001 к серверу трафик статистики от


unix-агентов, которые
разбирают HTTP трафик в
поиске посещенных URL

udp/20002 к серверу трафик статистики Netflow v5


от маршрутизаторов
(серверов) доступа
Обновление системы (переход на новую версию)

Внимание! Обновление WNAM с версии 1.2 до версии 1.3 требует перехода с java7 на java8 и
tomcat7 на tomcat8. Обязательно удалите старые пакеты и проверьте, что работают новые.

Для обновления java до версии 8 в Debian Jessie необходим репозиторий backports. Добавьте
строку:
deb http://http.debian.net/debian jessie-backports main

в конец файла /etc/apt/sources.list и выполните:


apt-get update
apt-get install openjdk-8-jre-headless openjdk-8-jdk
update-java-alternatives -s java-1.8.0-openjdk-amd64

При обновлении версии java убедитесь, что старая версия 7 не используется по умолчанию.
Подробнее смотрите в инструкции по установке.

Проведите резервное копирование базы данных системы, как написано выше (при помощи mong
odump).

Создайте резервную копию приложения WNAM, которое у вас установлено в папке


веб-приложений:
cp /var/lib/tomcat7/webapps/ROOT.war /root/ROOT.war.`date +"%d-%m-%Y"`

При этом копировать все папки самого развернутого приложения (/var/lib/tomcat7/webapps/ROO


T/*) не требуется, так как вся информация, включая настройки и шаблоны страниц, хранится в
базе данных.

Проверьте, что все скрипты и базовые конфигурационные файлы, которые вы используете,


соответствуют актуальным версиям, расположенным здесь: http://www.netams.com/files/wnam/
misc/ . Особое внимание уделите скрипту-связке WNAM и FreeRADIUS: wnam-freeradius-bridge.pl.
При необходимости, скопируйте его в /etc/freeeradius и перезапустите сервис: service freeradius
restart

Остановите веб-сервис tomcat:


service tomcat7 stop

Удалите старое приложение и старые лог-файлы:


rm -rf /var/lib/tomcat7/webapps/* /var/log/tomcat7/*

Перепишите новый дистрибутив WNAM из предварительно загруженного на сервер скаченного


файла /root/ROOT.war в его целевое место:
cp /root/ROOT.war /var/lib/tomcat8/webapps/ROOT.war

Запустите веб-сервер:
service tomcat8 start

Распаковка нового приложения произойдет автоматически, вам не требуется ничего


распаковывать самостоятельно.

Проверьте, что приложение корректно запустилось, просмотрев в конец лог-файла /var/log/tomc


at8/wnam.log, там должно появиться что-то аналогичное:
23:33:52.370 DEBUG [c.n.w.s.s.UserAuthenticationProvider:56] - UserAuthenticationProvider init
at 26.10.2015 23:33:52
23:33:52.657 DEBUG [com.netams.wnam.services.OuiService:30] - OuiService start
23:33:53.025 DEBUG [com.netams.wnam.services.OuiService:70] - OUI cache load: 368 ms.,
size=20653
23:33:53.133 DEBUG [com.netams.wnam.services.SmsService:63] - gammu_path=
23:33:53.139 INFO [com.netams.wnam.services.SmsService:124] - SmsService started
23:33:53.141 DEBUG [c.netams.wnam.manager.LicenseManager:98] - LicenseManager start
23:33:53.146 DEBUG [c.netams.wnam.manager.LicenseManager:117] - License key:
XXXX-XXXX-XXXX-XXXX
23:33:53.148 DEBUG [c.netams.wnam.manager.LicenseManager:177] - checkLicenseKeyOnServer
key='XXXX-XXXX-XXXX-XXXX'
23:33:53.642 DEBUG [c.netams.wnam.manager.LicenseManager:225] - checkLicenseKeyOnServer
returned license with key XXXX-XXXX-XXXX-XXXX
23:33:53.642 DEBUG [c.netams.wnam.manager.LicenseManager:136] - checkForLicensing: valid
license key XXXX-XXXX-XXXX-XXXX
23:33:53.643 DEBUG [c.netams.wnam.manager.LicenseManager:159] - checkForLicensing: issued='Wed
Sep 09 13:07:18 MSK 2015', expires='Tue Oct 01 13:06:07 MSK 2024', isTrialPeriodEnded=false
23:33:53.749 INFO [c.n.wnam.services.BluesocketService:56] - BluesocketService started
23:33:53.761 INFO [c.n.wnam.services.LinuxCPService:84] - LinuxCPService started
23:33:53.769 DEBUG [c.n.wnam.services.StatisticService:98] - StatisticService start
23:33:53.775 INFO [c.netams.wnam.services.UnifiService:69] - UnifiService started
23:33:53.782 DEBUG [c.n.wnam.services.WnamFlowService:62] - WnamFlowService start
23:33:53.800 DEBUG [c.n.wnam.services.WnamCmdService:124] - WnamCmdService start
23:33:53.818 DEBUG [c.n.wnam.services.NetFlowV5Service:66] - NetFlowV5Service start

Не должно быть никаких сообщений со словами Exception. Если всё в порядке, и веб-интерфейс
WNAM открывается, то работу по обновлению можно считать законченной. Рекомендуется
проверить работу авторизации на одной из существующих площадок, и получить подтверждение
от абонентов или сотрудников на месте.

Если вы переходите со старой версии WNAM, необходимо также проверить и обновить страницы
портала пользователя.

Внимание! Обновление WNAM с версии ранее 1.3.1052 на более позднюю версию требует:

Настройки дополнительного инструмента генерации миниатюр страниц


Изучения документации на "Конструктор страниц"
Постепенной конвертации старых "загружаемых страниц" в шаблоны "Конструктора
страниц", с привязкой их к площадкам

Обновление хранилища данных MongoDB

Начиная с версии 3.0 в mongodb предпочтительно использование хранилища данных типа


WiredTiger вместо MMAP, которое применялось в ранних версиях. Если ваша база данных (в
каталоге /var/lib/mongodb/) выглядит как множество файлов типа wnam_db.0, wnam_db.1,
wnam_db.2 и т.д., вам необходимо провести обновление движка БД. Для этого можно
воспользоваться инструкцией: https://docs.mongodb.com/v3.2/tutorial/change-standalone-wiredti
ger/

Фактически, обновление производится путём бэкапа базы данных в файлы, изменения типа
движка БД в конфигурационном файле /etc/mongodb.conf (storageEngine=wiredTiger),
восстановления бэкапа.

Мониторинг работоспособности WNAM


Для целей мониторинга состояния работы WNAM внешними средствами вы можете использовать:
Опрос текущих параметров приложения WNAM, аналогичных отображаемым в разделе
"Сводка" веб-интерфейса администратора
Периодический запуск скриптов, проверяющих работоспособность системы (freeradius,
tomcat, mongodb) и выдающих информацию путём прямого обращения к базе данных
WNAM

1. Встроенные средства

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


меню "Конфигурация - Общие настройки" (доступ обеспечивается включением API):

Ваше приложение мониторинга должно запрашивать ссылку http://servername/api/statistic

Авторизация не требуется, однако доступ к разделу статистики может быть разрешён только с
адресов, указанных в параметре allowed_subnets.

При запросе вида http://servername/api/statistic результаты выдаются в форме JSON-ответа


первого типа, например:
{
"siteCount":5,
"serverCount":2,
"activeServices":"2 T, 0 U",
"customerCount":12342,
"activeCustomerCount":435,
"flowsProcessedCount":32153245234,
"cmdsProcessedCount":2134213412,
"ram":49,
"cpu":2,
"hdd":99,
"uptime":"2 . 6 . 3 . 15 .",
"adLogins":0,
"adClicks":0,
"smsCount":"234/230",
"radiusResponse":"0.01 . []",
"mongoUptime":"2 . 6 . 3 . 15 .",
"mongoOpsCounters":"4345432664"
}
При запросе вида http://servername/api/statistic?json результаты выдаются в форме JSON-ответа
второго типа, например:
{"statistic":
{
"siteCount" : 1,
"serverCount" : 1,
"activeServices" : "0 T, 0 U",
"activeServicesT" : 0,
"activeServicesU" : 0,
"activeAccessPoints" : 0,
"customerCount" : 1,
"activeCustomerCount" : 0,
"flowsProcessedCount" : 0,
"flowsNFProcessedCount" : 0,
"cmdsProcessedCount" : 0,
"ram" : 95,
"cpu" : 32,
"hdd" : 99,
"uptime" : "5 . 32 .",
"uptimeRaw" : 332,
"adLogins" : 0,
"adClicks" : 0,
"smsCount" : "0/0",
"smsCountS" : 0,
"smsCountV" : 0,
"radiusResponse" : " ",
"radiusResponseRaw" : 0.0,
"mongoUptime" : "1 . 0 . 17 . 25 .",
"mongoUptimeRaw" : 87445,
"mongoOpsCounters" : "7138",
"daysToExpiration" : 53,
"mongoPrimaryName" : null,
"mongoRSetMembers" : 0
}
}

Третий вариант предусматривает запрос по ссылке http://servername/api/statistiс?plain . При


этом результат возвращается в виде таблицы:
siteCount=31
serverCount=0
activeServicesT=0
activeServicesU=0
customerCount=1
activeCustomerCount=0
flowsProcessedCount=0
cmdsProcessedCount=0
ram=28
cpu=5
hdd=59
uptime=109
adLogins=0
adClicks=0
smsCountS=0
smsCountV=0
radiusResponse=0.0
mongoUptime=123
mongoOpsCounters=32

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

Существует также способ получения статистики о работе WNAM внешним, сторонним


приложением, написанным на Perl.
2. Мониторинг внешними скриптами

Скрипты доступны по адресу http://www.netams.com/files/wnam/misc/perl-monitoring

Для их работы потребуются


Perl-модули MongoDB, Email::Sender::Simple, Email::Sender::Transport::SMTP, Email::Simple::Cre
ator, которые вы можете установить через cpan -i

Отредактируйте эти скрипты, чтобы они содержали верные параметры доступа до базы данных,
адреса отправителя/получателя электронной почты с уведомлениями и т.п.

Добавьте запуск этих скриптов в cron для того, чтобы оперативно получать отчеты о состоянии
СМС-авторизации (отправка и подтверждение СМС), и работы WNAM и сопутствующих
компонент в целом.

VPN сеть для подключения отдельных хотспотов через


Интернет
Для организации провайдером услуги СМС-авторизации на основе хотспотов, подключенных
через Интернет, ООО "Нетамс" рекомендует придерживаться описанной ниже схемы.

Данный сценарий подходит, если:

вы обслуживаете значительное число небольших площадок (мест оказания услуги),


подключенных через Интернет
подключения площадок осуществляется через сеть стороннего провайдера Интернет
вы используете в качестве хотспотов устройства, установленные непосредственно на
площадках клиента - маршрутизаторы Mikrotik со встроенной точкой доступа, либо точки
доступа, перепрошитые на OpenWrt или dd-wrt

Сценарий не подходит вам, если вы используете:

профессиональное Wi-Fi оборудование, управляемое контроллером (выполняющим роль


хотспота)
вы обеспечиваете прозрачный (Layer-2) транспорт сетей с площадок клиентов, в
центральный узел вашей сети, где установлен большой хотспот (маршрутизатор Mikrotik,
Cisco ASR, Alcatel и т.п.)
у вас одна площадка оказания услуги (корпоративная сеть)

Рекомендуемая схема предполагает:

1. Установку маршрутизатора-хотспота на каждой площадке оказания услуги. Внешний


(WAN) интерфейс хотспота подключается к местному провайдеру Интернет, внутренний
(LAN) интерфейс либо не используется, либо к нему подключена локальная сеть с точками
доступа
2. Хотспот либо содержит в себе встроенную точку доступа, либо не содержит радио-модуля.
В последнем случае Wi-Fi доступ обеспечивается подключенными к LAN-порту любыми
точками доступа Wi-Fi, работающими в режиме "access point".
3. Для управления радио-ресурсами (каналы, SSID и т.п.) в случае применения внешних
точек доступа рекомендуется использовать Uniquity UniFi. При этом контроллер точек
доступа UniFi может располагаться на сервере WNAM. На контроллере должен быть
отключен "гостевой доступ"
4. Для обеспечения надежности и безопасности обмена информацией между хотспотами и
4.
центральным узлом вашей сети требуется настроить VPN-туннели. В противном случае вам
придется открыть доступ к порталу авторизации абонентов, и к RADIUS-серверу, для всего
Интернета
5. Трафик авторизации абонентов (страницы приветствия, реклама), трафик RADIUS и
NetFlow будут идти до сервера WNAM в туннеле, а остальной абонентский трафик (доступ в
интернет) - напрямую через локального провайдера Интернет
6. В качестве VPN-сервера используется OpenVPN с парольной авторизацией

Для настройки площадок рекомендуется


придерживаться непересекающейся схемы
IP-адресации клиентских подсетей. Адресация -
частная. В данном примере пусть:
Внешний (публичный) адрес сервера 1.2.3.4
Имя сервера wnam.provider.ru, резолвится в 1.2.3.4
(для поддержки выписывания сертификатов Let's
Encrypt)
Имя сервера vpn.provider.ru, резолвится в 1.2.3.4
(для поддержки клиентских VPN подключений)
Адрес туннельного интерфейса сервера
- 10.1.0.255/24, также будет задействован
служебный адрес 10.1.0.254
Адреса туннельных интерфейсов клиентских
хотспотов - 10.1.0.1 - 10.1.0.253/24
Адреса LAN-интерфейсов клиентских хотспотов -
10.1.1.1/24 - 10.1.253.1/24 соответственно. Таким
образом, вы можете подключить 253 площадки
оказания услуги, с внутренним адресом 10.1.N.1/24,
диапазоном адресов для клиентов 10.1.N.2-10.1.N.25
4 и туннельным адресом 10.1.0.N
Конфигурация интерфейсов на сервере

eth0: 1.2.3.4

tun0: 10.1.0.255

Конфигурация OpenVPN сервиса на сервере

Установите пакет openvpn:


apt-get install openvpn easy-rsa

Создайте сертификаты согласно инструкции отсюда: https://www.digitalocean.com/community/tut


orials/how-to-set-up-an-openvpn-server-on-debian-8#step-5-—-configure-and-build-the-certificate-a
uthority

Отредактируйте файл /etc/openvpn/server.conf


mode server
dev tun
proto tcp-server
tls-server
port 1194
topology subnet
ca keys/ca.crt
cert keys/wnam.provider.ru.crt
key keys/wnam.provider.ru.key
dh keys/dh2048.pem
cipher AES-128-CBC
auth md5
keepalive 10 120
status /var/log/openvpn-status.log
log /var/log/openvpn.log
user nobody
group nogroup
persist-key
persist-tun
ifconfig 10.1.0.255 10.1.0.254
ifconfig-pool 10.1.0.1 10.1.0.253
route 10.1.0.0 255.255.0.0
push "route 10.1.0.255"
ifconfig-pool-persist ipp.txt 0
auth-user-pass-verify /etc/openvpn/verify.sh via-file
script-security 2
client-cert-not-required
username-as-common-name
verb 2

Создайте скрипт, выполняющий проверку логина-пароля /etc/openvpn/verify.sh


#!/bin/sh
USERS=`cat /etc/openvpn/user.pass`
vpn_verify() {
if [ ! $1 ] || [ ! $2 ]; then
#echo "No username or password: $*"
exit 1
fi
## it can also be done with grep or sed
for i in $USERS; do
if [ "$i" = "$1:$2" ]; then
## you can add here logging of users
## if you have enough space for log file
#echo `date` $1:$2 >> your_log_file
exit 0
fi
done
}
if [ ! $1 ] || [ ! -e $1 ]; then
#echo "No file"
exit 1
fi
## $1 is file name which contains
## passed username and password
vpn_verify `cat $1`
#echo "No user with this password found"
exit 1

Затем выполните:
chmod +x /etc/openvpn/verify.sh

Создайте файл с IP-адресами клиентов /etc/openvpn/user.pass


vpn1,10.1.0.1
vpn2,10.1.0.2
vpn3,10.1.0.3

Создайте файл с логинами-паролями VPN клиентов /etc/openvpn/ipp.txt


vpn1:ate45cf7y345c5y2x3
vpn2:r2d346c34t4356yucf
vpn3:23cxterthure5y2yw3

Перезапустите сервис openvpn, проконтролируйте успешность запуска в файле /var/log/openvpn.


log:

Конфигурация интерфейсов на хотспоте

Настройку маршрутизатора Микротик будем демонстрировать на примере первого клиента,


имеющего vpn-имя vpn1.
В качестве WAN интерфейса используется ether1-gateway с настройками от локального
провайдера Интернет:
/ip address
add address=272.16.130.9/24 interface=ether1-gateway network=272.16.130.0
/ip route
add distance=1 gateway=272.16.130.1

В качестве LAN/WLAN интерфейса используется bridge с такими настройками:


/ip address
add address=10.1.1.1/24 interface=bridge-guest network=10.1.1.0

Интерфейс для OpenVpn подключения к серверу WNAM:


/interface ovpn-client
add auth=md5 cipher=aes128 connect-to=vpn.provider.ru name=wnam
password=ate45cf7y345c5y2x3 user=vpn1

Настройка DHCP и DNS:


/ip dhcp-server
add address-pool=dhcp-1 disabled=no interface=bridge lease-time=1h name=server
/ip dhcp-server network
add address=10.1.1.0/24 dns-server=8.8.4.4 gateway=10.1.1.1
/ip pool
add name=dhcp-102 ranges=10.1.1.2-10.1.1.254
/ip dns
set allow-remote-requests=yes servers=8.8.4.4
/ip dns static
add address=10.1.0.255 name=wnam.provider.ru

Внимание! Статической DNS записью мы переопределяем (для абонентов) адрес сервера


авторизации с той целью, чтобы трафик авторизации шёл в VPN-туннеле.

Настройка трансляции адресов (NAT):


/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" out-interface=ether1-gateway
add action=masquerade chain=srcnat out-interface=wnam src-address=10.1.1.0/24

Теперь со стороны хотспота надо проверить, что портал авторизации доступен:


/ping wnam.provider.ru src-address=10.1.1.1
/system telnet wnam.provider.ru port=80

Настройка Radius клиента и Netflow-клиента:


/radius
add address=wnam.provider.ru domain=wnam secret=wnam_radius service=hotspot
/ip traffic-flow
set interfaces=ether1-gateway
/ip traffic-flow target
add dst-address=wnam.provider.ru port=20002 version=5

Конфигурация хотспота
/ip hotspot
add disabled=no idle-timeout=none interface=bridge name=mk-wnam profile=mk-profile-wnam
/ip hotspot profile
add dns-name=mk.provider.ru hotspot-address=10.1.1.1 html-directory=hotspot login-by=http-pap
name=mk-profile-wnam radius-default-domain=wnam radius-interim-update=5m use-radius=yes
/ip hotspot user profile
set [ find default=yes ] add-mac-cookie=no name=default1 shared-users=unlimited
status-autorefresh=1h
/ip hotspot walled-garden
add dst-host=*.gosuslugi.ru dst-port=443
add dst-host=ocsp.int-x3.letsencrypt.org dst-port=80
add dst-host=cert.int-x3.letsencrypt.org dst-port=80
add dst-host=*.provider.ru dst-port=443
add dst-host=provider.ru dst-port=443
add dst-host=*.provider.ru dst-port=80
add dst-host=provider.ru dst-port=80
add dst-host=10.1.0.255 dst-port=80

Содержимое файла hotspot/rlogin.html:


<html><head><title>...</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">
</head>
<body>
<form name="wnamlogin" action="http://wnam.provider.ru/cp/mikrotik" method="post">
<input type="hidden" name="dst" value="$(link-orig)" />
<input type="hidden" name="username" value = "user"/>
<input type="hidden" name="password" value = "password" />
<input type="hidden" name="mac" value = "$(mac)" />
<input type="hidden" name="ip" value = "$(ip)" />
<input type="hidden" name="server-name" value = "$(server-name)" />
<input type="hidden" name="server-address" value = "$(server-address)" />
<input type="hidden" name="client-id" value="$(client-id)"/>
<input type="hidden" name="site-id" value="$(site-id)"/>
</form>
<script type="text/javascript">
<!--
document.wnamlogin.submit();
//-->
</script>
</body>
</html>

Конфигурация WNAM

Настройка сервера доступа

Тип: Mikrotik

Адрес: 10.1.0.1 (туннельный адрес хотспота)

Отметить:Использовать счетчики аккаунтинга, Определять имена абонентов, Принимать


детализацию потоков NetFlow

Настройка площадки:

Присвоенная IP подсеть: 10.1.1.0/24 (диапазон IP-адресов клиентов)