Для корректной работы WNAM необходимо спроектировать и настроить соответствующее сетевое окружение.
Типовая схема сети приведена на рисунке. В сети вашей компании (это может быть внутренняя сеть небольшого офиса, либо отдельный сегмент большой сети, предназначенный для служебных нужд) устанавливается сервер, на котором будет работать программное обеспечение WNAM, и сопутствующие службы. Это может быть как физический сервер, так и виртуальная машина.
Ключевым компонентом сети является хотспот - устройство, на котором производится перенаправление HTTP-сессии Wi-Fi абонента на внешний портал авторизации. Это может быть:
- контроллер беспроводных точек доступа, который имеет соответствующие функции (называемые производителем hostspot/wispr/external captive portal и т.п.): Cisco WLC, Bluesocket vWLC, Ruckus, Zyxel NXC
- маршрутизатор с функцией портала перехвата hotspot, возможно со встроенной точкой доступа: Mikrotik (модели RB951Ui-2HnD, RB951G-2HnD, RB750UP, RB2011iL-IN, RB1100AHx2 и т.п.)
- сервер-маршрутизатор Linux, выполняющий роль шлюза по умолчанию для сети абонентов Wi-Fi
- маршрутизатор на основе pfSense (клон FreeBSD) с функцией Captive Portal
- сервер-концентратор доступа BRAS, например Cisco 7200 или ASR
В первую очередь, вы должны построить беспроводную сеть доступа для ваших абонентов. В случае контроллерно-управляемых точек доступа, точки должны соответствовать контроллеру. В остальных случаях можно использовать любые точки доступа. Из соображений безопасности крайне желательно разграничить сетевые сегменты открытой (публичной части), и вашей внутренней сети. Такое разграничение можно обеспечить либо на физическом уровне, либо при помощи VLAN.
В приведенном ниже примере в качестве точек доступа используются Ubiquiti UniFi, в качестве маршрутизатора/хотспота Mikrotik.
Для идентификации через СМС сервер будет отправлять команды на отправку СМС с кодом доступа через шлюз СМС-провайдера (в настоящее время поддерживаются провайдеры SMSC, Websms.By, smstraffic, отправка через локально установленный USB GSM модем (утилита gammu) или любого провайдера по протоколу SMPP v3.4 через утилиту kannel).
Если у вас несколько площадок, где вы предоставляете доступ пользователям, вы можете установить на каждой из них по своему маршрутизатору Mikrotik. В таком случае вам необходимо настроить несколько экземпляров "серверов доступа" и "площадок" в соответствующих разделах интерфейса WNAM (внимание: количество площадок лицензируется). Если места предоставления услуги находятся где-тов Интернете (который предоставляет на месте альтернативный провайдер), вы можете связать площадки с центральным узлом (где находится сервер) при помощи VPN (OpenVPN, VPLS, VLAN и т.п.):
Вы можете также привязать несколько площадок на один маршрутизатор MikroTik (несколько экземпляров HotSpot).
Для успешной работы необходима настройка трёх компонентов: WNAM, RADIUS-сервера, портала HotSpot.
При первоначальном подключении абонента проводится его идентификация и перенаправление сессии на внешний сайт или рекламу, при последующих - только перенаправление. При идентификации производится привязка МАС-адреса абонентского устройства к номеру мобильного телефона абонента. При этом производится отправка абоненту кода подтверждения, который тот должен ввести на специальной странице. Таким образом становится реальным розыск абонента, пользовавшегося вашей радио-сетью, по запросу от соответствующих органов. Схема работы "по шагам" приведена ниже.
- Пользователь подключает свое беспроводное устройство (ноутбук, смартфон, планшет) к беспроводной сети (без авторизации), построенной на основе UniFi или иного радио-оборудования, получает IP-адрес от маршрутизатора (DHCP).
- Пользователь открывает какую-либо страницу в сети Интернет (либо его устройство само открывает страницу).
- Маршрутизатор или контроллер (компонент HotSpot) считает сессию пользователя "не авторизованной" и производит перенаправление сессии пользователя "на себя".
- HotSpot отображает пользователю собственную страницу авторизации (например, rlogin.html для Mikrotik). Указанная страница (шаблон) должны быть предварительно загружена в маршрутизатор, и в ней указана автоматическая отправка формы на внешний сервер WNAM. Производители контроллерно-управляемого радио-оборудования имеют такую функцию в настройках контроллера.
- Форма содержит ссылку на встроенный в WNAM веб-сервер, который показывает пользователю страницу СМС-идентификации.
- Пользователь вводит номер своего телефона.
- При получении номера телефона WNAM генерирует случайный (4 или 6-циферный) код активации, и через СМС-шлюз отправляет его на указанный телефон. Альтернативным способом является запрос пользователя отправить с этого телефона СМС на указанный вами номер - в таком случае, оплата за СМС перекладывается на абонента.
- Пользователь вводит код подтверждения
- При совпадении WNAM производит редирект (средствами HTTP redirect) сессии пользователя в сторону HotSpot маршрутизатора, либо открывает доступ пользователю иным способом.
- HotSpot производит проверку МАС-адреса пользователя путём отправки RADIUS-запроса серверу WNAM
- RADIUS-сервер, получив запрос на авторизацию, через Perl-модуль wnam-freeradius-bridge.pl передает в WNAM запрос на авторизацию (MAC-адрес абонентского устройства пользователя, идентификаторы площадки, текущий IP-адрес и т.п.).
- WNAM авторизует такое обращение, создает в своей базе учётную запись абонента (пользователя) по МАС-адресу (если такого адреса ещё не было), возвращает ответ RADIUS-серверу
- RADIUS-сервер возвращает ответ маршрутизатору
- Маршрутизатор авторизует на своем портале HotSpot сессию пользователя, открывая ему доступ в Internet.
- Одновременно с этим отправляет RADIUS-серверу запрос начала сессии (Accounting-Start).
- RADIUS-сервер транслирует запрос начала учёта сессии в WNAM, тот создаёт запись о новой сессии. Периодически получая сообщения о статусе сессии, WNAM ведет статистику о переданном абонентом трафике.
- При настройке на маршрутизаторе или контроллере отправки детальных сведений о трафике абонента в сторону WNAM производится привязка получаемой статистики к текущей сессии абонента, и хранение её в базе данных для возможного последующего розыска абонента.
- По завершении сессии (тайм-аут) сессий закрывается, а пользователь, если ещё не отключился и активен, снова перенаправляется на страницу подтверждения.
На один номер телефона можно привязать несколько устройств (МАС-адресов), в том числе тех, которые не имеют SIM-карты. Время жизни такой авторизации определяется в параметрах (меню "Конфигурация" - "Общие настройки" - "Авторизация" - "Длительность авторизации телефонного номера"), либо в индивидуальных настройках площадки. рекомендуется выставлять это время в 180 дней. При повторных подключениях того же пользователя, если с момента авторизации не прошло указанное выше время, производится безусловная (без подтверждений и СМС) авторизация сессии.
Настройки административного интерфейса WNAM позволяют установить содержимое страниц, отображаемых абонентам при первоначальном подключении (авторизации) и при каждом последующем подключении к сети. Помимо демонстрации рекламных материалов, формы согласия с условиями предоставления услуги возможно безусловно перенаправлять HTTP-сессию абонента на указанный вами сайт. Во всех случаях производится учёт числа показов и переходов по страницам каждого из типов, с возможностью получить детальную статистику в административном интерфейсе WNAM.
При поступлении запроса от вышестоящего провайдера или компетентных органов о сведениях об абоненте, посетившем определенный ресурс в сети Интернет в заданный промежуток времени, WNAM позволяет при помощи простой формы запроса получить информацию о потоках трафика, сессиях, параметрах абонента, вплоть до его номера телефона, и выгрузить все эти сведения в файл для предоставления запрашивающим.