====== Идентификация абонента в сети 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 сообщений