8 Модуль Wi-Fi HotSpot

Введение

Модуль предоставляет возможность проводить авторизацию пользователей по номеру телефона в публичных Wi-Fi сетях.

Архитектура

Сценарий применения

В момент, когда абонент подключается к Wi-Fi, роутер обращается к DCHP-серверу для получения нового IP-адреса. Сервер возвращает данные адреса на роутер и вызывает shell-script, активирующий тариф с ограниченным доступом и «Белый список». В белые списки здесь имеет смысл включить, например, сайт провайдера или организации, предоставляющий публичный Wi-Fi.

Далее абонент перенаправляется в браузер на стартовую страницу, где ему необходимо пройти авторизацию по номеру телефона. Web-сервер получает ответ об успешной авторизации от SMS шлюза и с помощью shell-script удаляет ограничения на DPI и перенаправляет на нужную страницу.

Инсталляция и обновление

Рекомендации к оборудованию

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

Процессор (CPU) 2.5 ГГц, 1 шт

Оперативная память (RAM) 512 Мб - 1 Гб

Жесткий диск (HDD) 20 Гб - 50 Гб

Операционная система Cent OS 6.4 - 7

Сетевая плата (NIC) от 10 Mб/сек

Рекомендуемая операционная система Cent OS 7 Если вам необходимо поставить на Cent OS 6, убедитесь что установлен supervisor 3+. Если у вас нет нужного пакета обращайтесь в тех. поддержку.
Не устанавливаете подсистему на одно и тоже оборудование с DPI, Интерфейсом управления CKAT DPI 2! Используйте для этого отдельную виртуальную машину.

Перед установкой

Новая ВМ

Убедитесь, что установлен openssh-clients - необходим для подключения к DPI

Все остальное необходимое окружение будет установлено автоматически

Старая ВМ

Убедитесь, что установлен openssh-clients - необходим для подключения к DPI

Если установлен PHP версии < 7.1, удалите старую версию:

yum -y remove php*

Новая версия будет установлена автоматически при установке dpiui2.

Если установлен MySql, удалите:

yum remove mysql mysql-server mysql-community-common

Также удалите директорию MySql:

mv /var/lib/mysql /var/lib/mysql_old_backup

При установке wifi_hotspot будет установлен MariaDB 10.2+

CentOS 6

Рекомендуемая операционная система Cent OS 7 Если вам необходимо поставить на Cent OS 6, убедитесь что установлен supervisor 3+. Если у вас нет нужного пакета, установите его, выполнив команды:

sudo wget https://vasexperts.ru/install/supervisor-3.0-1.gf.el6.noarch.rpm
yum install supervisor-3.0-1.gf.el6.noarch.rpm

Инсталляция

Перед установкой или обновлением проверьте наличие интернета. Запуски скриптов выполняйте из под root или sudo.
Внимание: Требуется отключить selinux. Для этого установите SELINUX=disabled в файле /etc/selinux/config и перегрузите сервер.
Внимание: Если Вы подключили виртуальную машину в разделе Управление разделом HotSpot до того как установили на нее данный модуль, то он установится автоматически со всеми неообходимыми инструментами и настройками.

Для установки запустите скрипт:

#!/usr/bin/env bash
info () {
echo -e " info: $@ ";
}
ok () {
echo -e " done: $@ ";
}
error () {
echo -e " ERROR: $@";
}
CENTOSRELEASE=`cat /etc/redhat-release`
SUBSTR=`echo $CENTOSRELEASE|cut -c1-22`
SUBSTR2=`echo $CENTOSRELEASE|cut -c1-26`
#Check OS version
CentOsVersion=0
if [ "$SUBSTR" = "CentOS Linux release 7" ]
then
CentOsVersion=70
elif [ "$SUBSTR2" == "CentOS release 6.5 (Final)" ]
then
CentOsVersion=65
elif [ "$SUBSTR2" == "CentOS release 6.4 (Final)" ]
then
CentOsVersion=64
else
CentOsVersion=60
fi
#Configure repos
info "Configuring repos..."
rpm --import http://vasexperts.ru/centos/RPM-GPG-KEY-vasexperts.ru
rpm -Uvh http://vasexperts.ru/centos/6/x86_64/vasexperts-repo-1-0.noarch.rpm
MARIADB_REPO=/etc/yum.repos.d/mariadb.repo
if [ "$CentOsVersion" == 70 ]
then
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
echo "[mariadb]
name=MariaDB
baseurl=http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1" > $MARIADB_REPO
else
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
MACHINE_TYPE=`uname -m`
if [ ${MACHINE_TYPE} == 'x86_64' ]
then
echo "[mariadb]
name=MariaDB
baseurl=http://yum.mariadb.org/10.2/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1" > $MARIADB_REPO
else
echo "[mariadb]
name=MariaDB
baseurl=http://yum.mariadb.org/10.2/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1" > $MARIADB_REPO
fi
fi
ok "Finished Configuring repos."
#wifi_hotspot install
info "Wifi hotspot package installing..."
yum install -y wifi_hotspot --exclude=php-common*;
info "Finished wifi_hotspot package installing."

Будет произведена установка rpm-пакета wifi_hotspot. Будет произведена автоматическая настройка согласно конфигурации.

В процессе установки будет произведена установка / обновление окружения:

PHP >= 7.1

MariaDB >= 10.2

Apache

Composer

PHP SSH2 lib

Laravel/Lumen

В процессе установки будут открыты необходимые порты, а также запущен cron для выполнения фоновых задач по расписанию.

Установка подсистемы будет произведена в папку:

/var/www/html/wifi_hotspot/

После инсталляции, введите в браузере:

http://<IP адрес VM>/

Обновление

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

yum install -y wifi_hotspot

Конфигурация

Системные настройки модуля находятся в файле .env

/var/www/html/wifi_hotspot/backend/.env

Содержимое файла следующее:

#Системные настройки, лучше не трогать
APP_ENV=local
APP_DEBUG=true
APP_KEY=
APP_TIMEZONE=UTC
#Системные настройки подключения к БД MySql, лучше не трогать
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=wifi_hotspot
DB_USERNAME=root
DB_PASSWORD=vasexperts
#Настройки подключения к SMTP-серверу. Нужны для отправки данных по авторизации в режиме отладки.
CFG_SMTP_UNAME=smtptestvasexperts@gmail.com
CFG_SMTP_PW=pH3xkXTp1
CFG_SMTP_HOST=smtp.gmail.com
CFG_SMTP_PORT=587
CFG_SMTP_SECURE=tls
CFG_SMTP_SENDER=smtptestvasexperts@gmail.com
#Системные настройки, трогать нельзя
CACHE_DRIVER=file
QUEUE_DRIVER=database
SESSION_DRIVER=cookie
#
#Настройка экспорта ААА-сессий (файлы с сессиями храняться в папке /var/www/html/wifi_hotspot/backend/storage/aaa_events)
#
#Включение/отключение экспорта ААА-сессий
AAA_EXPORT_ENABLED=0
#IP-адрес NAS сервера, IPv4/IPv6, если неизвестно - 0.0.0.0
AAA_HOTSPOT_IP=0.0.0.0
#порт NAS сервера, число, если неизвестно - 0
AAA_HOTSPOT_PORT=0
#ИД точки подключения к сети передачи данных, целое число в диапазоне от 0 до 1000, необходимо заполнять для абонентов публичных Wifi-точек,
# соответствует идентификатору точки подключения в поле 1 из выгрузки точек подключения
AAA_HOTSPOT_ID=0
#Длина кода авторизации абонентов
AUTH_CODE_LENGTH=6

Если были внесены изменения в .env, необходимо выполнить команду php /var/www/html/wifi_hotspot/backend/artisan queue:restart

Информация о версиях

Версия v.1.2.4 (02.10.2020)

исправление багов

Версия v.1.1.0 (06.11.2019)

Переработан процесс замены логотипа и иконки через интерфейс dpiui2

Изменен ограничение размера файла логотипа или иконки с 64кб до 750кб

Версия v.1.0.10 (25.10.2019)

Исправление отображения портала на мобильных устройствах

Исправление алгоритма повторной авторизации

Версия v.1.0.7 (15.09.2019)

Создан новый модуль Wi-Fi HotSpot

Известные проблемы

При изменении логотипа в разделе Хотспот существует ограничение на максимальный размер файла 64кб. Будет исправленно в версии v.1.1.0.