====== Идентификация абонента в сети WiFi с помощью мобильного телефона ====== {{indexmenu_n>4}} Рекомендуем ознакомиться с возможностью [[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.]] ===== Введение ===== В связи с ужесточением правил доступа через публичные 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 " ===== Настойка 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 сообщений