Идентификация абонента в сети WiFi с помощью мобильного телефона [Документация VAS Experts]

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
dpi:dpi_options:use_cases:dpi_bestpractice_wifi_login [2023/08/29 12:46] elena.krasnobryzhdpi:dpi_options:use_cases:dpi_bestpractice_wifi_login [2024/09/26 15:29] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
-====== dpi_bestpractice_wifi_login ======+====== Идентификация абонента в сети WiFi с помощью мобильного телефона ====== 
 +{{indexmenu_n>4}} 
 + 
 +<note important>Рекомендуем ознакомиться с возможностью  [[dpi:dpi_components:module_wi-fi_hotspot|модуля Wi-Fi HotSpot]], управление осуществляется через [[dpi:dpi_components:dpiui|графический интерфейс DPIUI2]].\\ 
 +Ниже представлен вариант для самостоятельной реализации данного модуля.\\ 
 +[[ dpi:dpi_options:use_cases:wifi_hotspot_session_management|Подробная инструкция развертывания Wi-Fi Hot Spot.]]</note> 
 + 
 +===== Введение ===== 
 +В связи с ужесточением правил доступа через публичные WiFi hotspots к сети оператора связи, появилась необходимость идентифицировать абонента одним из способов по телефонному номеру, по паспортным данным или через портал гос.услуг. В данном примере разберем организацию доступа с использованием идентификации абонента по телефонному номеру. 
 + 
 +===== Схема работы ===== 
 +Последовательность действий: 
 +  - абонент подключается к сети WiFi 
 +  - появляется welcome page с информацией, что абонент должен открыть браузер и идентифицировать себя ((для мобильных устройств, например iphone автоматически отображаемая welcome page открывается в специальном режиме браузера, в котором нельзя сохранить сессионные куки и требуется открыть браузер отдельно.)) 
 +  - абонент отрывает браузер, при переходе на любой URL, происходит переадресация абонента на страницу идентификации 
 +  - абонент вводит телефонный номер, запрашивает код доступа 
 +  - код доступа отправляется на телефонный номер через SMS 
 +  - абонент вводит полученный код доступа 
 +  - происходит запись сессионной куки на абонентское устройство с сохранением в течении суток ((сессионные куки используются для повторной идентификации абонента в сети что бы не требовалось снова идентифицировать абонента через отправку SMS, срок хранения может регулироваться оператором связи самостоятельно.)) и происходит переход на запрошенный пользователем URL 
 + 
 +Для настройки сети потребуется, подключенные отдельно: 
 +  - DHCP сервер для организации централизованной выдачи адресов абонентам, обладающий возможностью при выдачи нового IP адреса вызвать shell скрипт ((считаем включенным в сеть до DPI)) 
 +  - Виртуальная машина с установленным WEB-сервером Apache (httpd), [[dpi:dpi_components:utilities:oldutility:nfsen|модулем просмотра статистики и отчетов (nfsen)]] 
 +  - Доступ к сервису для отправки SMS сообщений((в примере используется сервис www.smsdirect.ru)) 
 +  - (опционально) NAT для уменьшения к-ва используемых IPv4 адресов, и записью лога трансляций IP<->IP,PORT ((не будет рассматриваться далее, для упрощения схемы)) 
 +  - (опционально) Radius для аутентификации в сети по идентификатору абонента ((не будет рассматриваться далее, для упрощения схемы)) 
 + 
 +Схема сети (упрощенно): 
 +  - WiFi роутер, сконфигурированный для получения IP от централизованного DHCP сервера и установлена welcome page ((должна располагаться на ВМ с WEB-сервером)) 
 +  - Роутер(ы) сети 
 +  - СКАТ DPI 
 +  - Граничный роутер 
 + 
 +таким образом весь трафик абонентов проходит через СКАТ DPI. 
 + 
 +Последовательность работы: 
 +  - абонентское устройство подключается к WiFi роутеру 
 +  - WiFi роутер обращается за новым IP к DHCP серверу 
 +  - DHCP сервер вызывает shell скрипт, при выдаче нового IP, и отдает данные по новому IP на WiFi роутер 
 +  - shell скрипт по выданному IP на СКАТ DPI активирует услугу белый список и тариф с ограничениями доступа 
 +  - WEB-сервер получает запрос на welcome page, абонент активирует браузер и переходит на любой URL 
 +  - WEB-сервер получает запрос на страницу идентификации ((так же проверяется наличие куки, если куки есть, то происходит автоматическая регистрация в сети абонента по данным сохраненным в куки)), абонент вводит телефонный номер и нажимает "получить код доступа" 
 +  - WEB-сервер получает запрос на код доступа, формирует случайное число и отправляет на телефон абонента, абонент вводит в форму полученный код и нажимает подтвердить 
 +  - WEB-сервер получает запрос на подтверждение кода доступа, если код правильный, вызывает shell скрипт для удаления услуги белый список и установки тарифа WiFi доступа, устанавливает куки в браузере и переадресует на запрошенный URL 
 + 
 +[[http://vasexperts.ru/upload/ident.rar|архив с исходными файлами]] 
 + 
 +===== Настройка DPI ===== 
 +используем описание классов protocols.txt 
 +  http    cs0 
 +  https   cs0 
 +  dns     cs0 
 +  default cs1 
 + 
 +Конвертируем: 
 +  cat protocols.txt|lst2dscp /etc/dpi/protocols.dscp 
 + 
 +из архива с исходниками копируем на DPI сервер директорию: 
 +  htdocs/wifi/.script в /home/fastdpi/ 
 +   
 +создаем файл тарифа default_policing.cfg для доступа к интернет через WiFi - 10 mbit: 
 +  htb_inbound_root=rate 10mbit 
 +  htb_inbound_class0=rate 1mbit ceil 10mbit 
 +  htb_inbound_class1=rate 1mbit ceil 10mbit 
 +  htb_inbound_class2=rate 8bit ceil 10mbit 
 +  htb_inbound_class3=rate 8bit ceil 10mbit 
 +  htb_inbound_class4=rate 8bit ceil 10mbit 
 +  htb_inbound_class5=rate 8bit ceil 10mbit 
 +  htb_inbound_class6=rate 8bit ceil 10mbit 
 +  htb_inbound_class7=rate 8bit ceil 10mbit 
 +  htb_root=rate 10mbit 
 +  htb_class0=rate 1mbit ceil 10mbit 
 +  htb_class1=rate 1mbit ceil 10mbit 
 +  htb_class2=rate 8bit ceil 10mbit 
 +  htb_class3=rate 8bit ceil 10mbit 
 +  htb_class4=rate 8bit ceil 10mbit 
 +  htb_class5=rate 8bit ceil 10mbit 
 +  htb_class6=rate 8bit ceil 10mbit 
 +  htb_class7=rate 8bit ceil 10mbit 
 + 
 +создаем файл тарифа captive_portal_hard.cfg для блокировки доступа к интернет совместно с белым списком: 
 +  htb_inbound_root=rate 256kbit 
 +  htb_inbound_class0=rate 8bit ceil 256kbit 
 +  htb_inbound_class1=rate 8bit ceil 8bit 
 +  htb_inbound_class2=rate 8bit ceil 8bit 
 +  htb_inbound_class3=rate 8bit ceil 8bit 
 +  htb_inbound_class4=rate 8bit ceil 8bit 
 +  htb_inbound_class5=rate 8bit ceil 8bit 
 +  htb_inbound_class6=rate 8bit ceil 8bit 
 +  htb_inbound_class7=rate 8bit ceil 8bit 
 +  htb_root=rate 256kbit 
 +  htb_class0=rate 8bit ceil 256kbit 
 +  htb_class1=rate 8bit ceil 8bit 
 +  htb_class2=rate 8bit ceil 8bit 
 +  htb_class3=rate 8bit ceil 8bit 
 +  htb_class4=rate 8bit ceil 8bit 
 +  htb_class5=rate 8bit ceil 8bit 
 +  htb_class6=rate 8bit ceil 8bit 
 +  htb_class7=rate 8bit ceil 8bit 
 + 
 +Настроить услугу белый список: 
 +  cp_server=yoursite.ru/welcome.php 
 + 
 +===== Настройка DHCP ===== 
 +  - настроить [[dpi:dpi_components:platform:subscriber_management:subsman_remote#удаленный_запуск_команд_через_ssh|удаленный запуск команд через SSH]] 
 +  - установить на триггер на выдачу нового IP: ssh dpi_user@dpi_host "/home/fastdpi/_add_captive_portal.sh <IP>" 
 + 
 +===== Настойка Web-сервера ===== 
 +  - настроить [[dpi:dpi_components:platform:subscriber_management:subsman_remote#удаленный_запуск_команд_через_ssh|удаленный запуск команд через SSH]] 
 +  - настроить конфигурацию Apache, пример в директории архива conf/: \\ в conf.d/php.ini перенести/добавить настройки из примера conf/php.ini\\ включить файл main.conf\\ настроить DocumentRooot на /var/www/html/htdocs/wifi/ 
 +  - скопировать htdocs/ в /var/www/html 
 +  - отредактировать /var/www/html/htdocs/wifi/.script/remove_captive_portal.sh 
 +  - отредактировать /var/www/html/htdocs/wifi/request.php указать USER и PASSWORD доступ к сервису отправки SMS сообщений