Это старая версия документа!
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б/сек
 
Перед установкой
Новая ВМ
- Убедитесь, что установлен 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
Инсталляция
Для установки запустите скрипт:
#!/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
php /var/www/html/wifi_hotspot/backend/artisan queue:restart
Информация о версиях
Версия 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.
 
Была ли полезна эта информация?

