Настройка GUI, СКАТ и WiFi HotSpot при включенном менеджменте сессий [Документация VAS Experts]

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
dpi:dpi_options:use_cases:wifi_hotspot_session_management [2024/08/07 12:48] elena.krasnobryzhdpi:dpi_options:use_cases:wifi_hotspot_session_management [2025/01/15 10:46] (текущий) – [Установка виртуальных машин (ВМ)] elena.krasnobryzh
Строка 7: Строка 7:
   - Абонент подключается к сети WiFi   - Абонент подключается к сети WiFi
   - Появляется welcome page с информацией, что абонент должен открыть браузер и идентифицировать себя   - Появляется welcome page с информацией, что абонент должен открыть браузер и идентифицировать себя
-  - Абонент отрывает браузер, при переходе на любой URLпроисходит переадресация абонента на страницу идентификации+  - Абонент отрывает браузер, при переходе на любой URL происходит переадресация абонента на страницу идентификации
   - Абонент вводит телефонный номер, запрашивает код доступа   - Абонент вводит телефонный номер, запрашивает код доступа
   - Код доступа отправляется на телефонный номер через SMS   - Код доступа отправляется на телефонный номер через SMS
   - Абонент вводит полученный код доступа   - Абонент вводит полученный код доступа
-  - Происходит запись сессионной куки на абонентское устройство с сохранением в заданного периода и происходит переход на запрошенный пользователем URL+  - Происходит запись сессионных куки на абонентское устройство с сохранением заданного периода, а также переход на запрошенный пользователем URL
  
 =====Установка виртуальных машин (ВМ)===== =====Установка виртуальных машин (ВМ)=====
-  - Создаём 2 виртуальные машины со следующими минимальными характеристиками: +  - Создать две виртуальные машины со следующими минимальными характеристиками: 
-    * dpiui_vm – 1 cpu, 2Gb Ram, 50G hard disk, Guest OS Centos 7, nic 1 +    * ВМ ''dpiui_vm'' – [[dpi:dpi_components:dpiui:install_and_update:hardware_recommendations]] 
-    * cp_wifi_vm – 1 cpu, 1Gb Ram, 30G hard disk, Guest OS Centos 7, nic</code> +    * ВМ ''cp_wifi_vm'' – [[dpi:dpi_components:module_wi-fi_hotspot#рекомендации_к_оборудованию|Требования к оборудованию]] 
-  Устанавливаем последнюю версию CentOS-7 (build-2009 на момент написания) на обе виртуальные машины. По ходу установки выбираем (minimal install) минимальную установку.\\ После установки ОС, входим в консоль и устанавливаем пакеты на обе ВМ:<code bash>yum install epel-release</code>и после: <code bash>yum install nano tcpdump openssh-server openssh-clients</code>+  Установить ОС на обе виртуальные машины. По ходу установки выбрать минимальную установку (minimal install).\\ После установки ОС открыть консоль и установить пакеты на обе ВМ: сначала<code bash>yum install epel-release</code>и после: <code bash>yum install nano tcpdump openssh-server openssh-clients</code>
   - Выключить selinux на обоих ВМ:   - Выключить selinux на обоих ВМ:
-    * Отредактировать файл /etc/sysconfig/selinux +    * Отредактировать файл ''/etc/sysconfig/selinux'' 
-    * SELINUX=disabled и перезагрузить ВМ+    * Задать значение параметра ''SELINUX=disabled'' и перезагрузить ВМ
  
 =====Установка и настройка dpiui_vm===== =====Установка и настройка dpiui_vm=====
- +  - Установить DPIUI на ''dpiui_vm'' по [[dpi:dpi_components:dpiui:install_and_update:install|инструкции]]
-  - Установить dpiui на dpiui_vm по [[dpi:dpi_components:dpiui:install_and_update:install:start|инструкции]]+
   - Настроить сеть на обоих ВМ и СКАТ:<code bash>BOOTPROTO=static   - Настроить сеть на обоих ВМ и СКАТ:<code bash>BOOTPROTO=static
 ONBOOT=yes ONBOOT=yes
Строка 31: Строка 30:
 GATEWAY=10.0.0.1 GATEWAY=10.0.0.1
 DNS1=10.0.0.2</code>''IPADDR'' — указать для каждого хоста согласно схеме (или использовать свою адресацию). DNS1=10.0.0.2</code>''IPADDR'' — указать для каждого хоста согласно схеме (или использовать свою адресацию).
-  - Войти в GUI и добавить обе ВМ и СКАТ в разделе «ОБОРУДОВАНИЕ», следуя [[dpi:dpi_components:dpiui:user_guide:admin_section:equipment_management:start|инструкции]]:+  - Войти в GUI и добавить обе ВМ и СКАТ в разделе «ОБОРУДОВАНИЕ», следуя [[dpi:dpi_components:dpiui:user_guide:admin_section:equipment_management|инструкции]]:
  
 =====Установка и настройка cp_wifi_vm===== =====Установка и настройка cp_wifi_vm=====
 +  - Установить пакет ''wifi_hotspot'' на ВМ ''cp_wifi_vm'' по [[dpi:dpi_components:module_wi-fi_hotspot|инструкции]]:
 +  - Отредактировать конфиг файл для Hotspot:<code bash>nano /var/www/html/wifi_hotspot/backend/.env</code>Изменить/добавить только эти строчки:
 +    - **''AAA_HOTSPOT_IP – 10.0.0.4''**\\ Адрес NAS сервера, IPv4/IPv6, если неизвестно — 0.0.0.0
 +    - **''AAA_HOTSPOT_PORT – 0''**\\ Порт NAS сервера, число, если неизвестно — 0
 +    - **''AAA_HOTSPOT_ID – 2''**\\ ИД точки подключения к сети передачи данных, целое число в диапазоне от 0 до 1000, необходимо заполнять для абонентов публичных WiFi-точек, соответствует идентификатору точки подключения в поле 1 из выгрузки точек подключения
 +    - **''AAA_EXPORT_ENABLED=1''**\\ Включить экспорт ААА
 +    - **''AUTH_CODE_LENGTH=4''**\\ Поменять количество символов в коде для SMS авторизации
  
-  - Установить пакет wifi_hotspot на cp_wifi_vm по [[dpi:dpi_components:module_wi-fi_hotspot:start|инструкции]]: +Если прописан параметр ''AUTH_CODE_LENGTH'', то в файле ''/var/www/html/wifi_hotspot/frontend/env.js'' установить значение:<code bash>AppEnv.AuthCodePlaceHolder = "0000";</code>
-  - Отредактируем конфиг файл для hotspot:<code bash>nano /var/www/html/wifi_hotspot/backend/.env</code>Изменяем/добавляем только эти строчки: +
-    - AAA_HOTSPOT_IP – 10.0.0.4\\ Адрес NAS сервера, IPv4/IPv6, если неизвестно – 0.0.0.0 +
-    - AAA_HOTSPOT_PORT – 0\\ Порт NAS сервера, число, если неизвестно - 0 +
-    - AAA_HOTSPOT_ID – 2\\ ИД точки подключения к сети передачи данных, целое число в диапазоне от 0 до 1000, необходимо заполнять для абонентов публичных Wifi-точек, соответствует идентификатору точки подключения в поле 1 из выгрузки точек подключения +
-    - AAA_EXPORT_ENABLED=1\\ Включить экспорт ААА +
-    - AUTH_CODE_LENGTH=4\\ Поменять кол-во символов в коде для SMS авторизации +
- +
-Если прописали параметр AUTH_CODE_LENGTH, то надо в файле /var/www/html/wifi_hotspot/frontend/env.js установить значение:<code bash>AppEnv.AuthCodePlaceHolder = "0000";</code>+
  
 В конце выполнить команду:<code bash>php /var/www/html/wifi_hotspot/backend/artisan queue:restart</code> В конце выполнить команду:<code bash>php /var/www/html/wifi_hotspot/backend/artisan queue:restart</code>
  
 =====Установка и настройка dhcp-isc на cp_wifi_vm===== =====Установка и настройка dhcp-isc на cp_wifi_vm=====
- +  - Установить пакет ''dhcp-isc'': <code bash>yum install dhcp expect</code> 
-  - Установить пакет dhcp-isc — yum install dhcp expect +  - Настроить скрипты статического ARP и конфигурационный файл ''dhcpd.conf''
-  - Далее настраиваем скрипты статического arp и конфиг файл dhcpd.conf: +    * Сначала конфигурационный файл ''dhcpd'': <code bash>nano /etc/dhcp/dhcpd.conf</code> Поставить свои значения ''option domain-name'' и ''option ntp-servers''!<code bash>ddns-update-style none;
-    * Сначала конфиг файл dhcpd — nano /etc/dhcp/dhcpd.conf\\ Поставить свои значения option domain-name и option ntp-servers!<code bash>ddns-update-style none;+
 authoritative; authoritative;
 db-time-format local; db-time-format local;
- 
- 
 log-facility local7; log-facility local7;
- 
  
 subnet 100.64.0.0 netmask 255.255.252.0 { subnet 100.64.0.0 netmask 255.255.252.0 {
Строка 69: Строка 63:
   option domain-name-servers 10.0.0.2;   option domain-name-servers 10.0.0.2;
   option domain-name "name.local";   option domain-name "name.local";
- 
  
   on commit {   on commit {
Строка 93: Строка 86:
       suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":",       suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":",
       suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2));       suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2));
- 
  
       log(concat("Release: IP: ", ClientIP, " Mac: ", ClientMac));       log(concat("Release: IP: ", ClientIP, " Mac: ", ClientMac));
Строка 103: Строка 95:
 } }
 subnet 10.0.0.0 netmask 255.255.255.0 { subnet 10.0.0.0 netmask 255.255.255.0 {
-}</code>Создаём директории и изменяем её права:<code bash>mkdir /usr/local/etc/dhcpd/ && chown dhcpd:dhcpd /usr/local/etc/dhcpd/ +}</code>Создать директории и изменить её права:<code bash>mkdir /usr/local/etc/dhcpd/ && chown dhcpd:dhcpd /usr/local/etc/dhcpd/
  
 touch /usr/local/etc/dhcpd/clients_add_drop_mysql.sh && touch /usr/local/etc/dhcpd/clients_add_drop.sh  touch /usr/local/etc/dhcpd/clients_add_drop_mysql.sh && touch /usr/local/etc/dhcpd/clients_add_drop.sh 
Строка 111: Строка 102:
 chmod 755 /usr/local/etc/dhcpd/ chmod 755 /usr/local/etc/dhcpd/
  
- +chmod 755 /usr/local/etc/dhcpd/*</code>Далее скопировать следующий скрипт в ''/usr/local/etc/dhcpd/clients_add_drop.sh'':<code bash>#!/usr/bin/expect -f
-chmod 755 /usr/local/etc/dhcpd/*</code>Теперь скопируем следующий скрипт в /usr/local/etc/dhcpd/clients_add_drop.sh:<code bash>#!/usr/bin/expect -f +
  
 set METHOD [lindex $argv 0] set METHOD [lindex $argv 0]
Строка 119: Строка 108:
 set MAC_ADDR [lindex $argv 2] set MAC_ADDR [lindex $argv 2]
 set MAC_ADDR [string toupper $MAC_ADDR] set MAC_ADDR [string toupper $MAC_ADDR]
-клиентский интерфейс на микротике:+#Клиентский интерфейс на микротике:
 set INT_ClIENT "vWifi" set INT_ClIENT "vWifi"
 set status 0 set status 0
  
  
-#Записываем dhcp-lease (start and end) в базе hotspot+#Запись dhcp-lease (start and end) в базе Hotspot
 spawn /usr/local/etc/dhcpd/./clients_add_drop_mysql.sh "$METHOD" "$IP_ADDR" "$MAC_ADDR" spawn /usr/local/etc/dhcpd/./clients_add_drop_mysql.sh "$METHOD" "$IP_ADDR" "$MAC_ADDR"
  
Строка 131: Строка 120:
  
  
-#Подключаемся к роутеру+#Подключение к роутеру
 spawn ssh -i /usr/local/etc/dhcpd/.ssh/id_rsa admin+t@100.64.0.1 -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null spawn ssh -i /usr/local/etc/dhcpd/.ssh/id_rsa admin+t@100.64.0.1 -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null
 expect { expect {
Строка 169: Строка 158:
 } elseif {$status == 0} { } elseif {$status == 0} {
 send "quit\r"; send "quit\r";
- 
  
 expect eof expect eof
 exit 1; exit 1;
 } }
- 
  
 set status 0 set status 0
  
- +#Подключение к СКАТ и прописывание статической записи абонента
-#Подключаемся к скату и прописываем статическую запись абона.+
 spawn ssh -i /usr/local/etc/dhcpd/.ssh/id_rsa dpisu@10.0.0.6 -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null spawn ssh -i /usr/local/etc/dhcpd/.ssh/id_rsa dpisu@10.0.0.6 -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null
- 
  
 expect { expect {
Строка 193: Строка 178:
 send "exit\r"; send "exit\r";
 expect eof expect eof
-}<code>И скопируем в /usr/local/etc/dhcpd/clients_add_drop_mysql.sh скрипт для добавления в базу hotspot данных о dhcp-lease:<code bash>#!/bin/bash+}</code>И скопировать в ''/usr/local/etc/dhcpd/clients_add_drop_mysql.sh'' скрипт для добавления в базу Hotspot данных о ''dhcp-lease'':<code bash>#!/bin/bash
 METHOD=$1 METHOD=$1
 IP_ADDR=$2 IP_ADDR=$2
 MAC_ADDR=$3 MAC_ADDR=$3
- 
  
 MYSQL_CONNECT_LEASEDB="mysql -u root -pvasexperts -Dwifi_hotspot -h 127.0.0.1" MYSQL_CONNECT_LEASEDB="mysql -u root -pvasexperts -Dwifi_hotspot -h 127.0.0.1"
- 
  
 if [ "$METHOD" = "add" ]; then if [ "$METHOD" = "add" ]; then
Строка 207: Строка 190:
    [ "$METHOD" = "drop_rls" ]; then    [ "$METHOD" = "drop_rls" ]; then
     echo "insert into hotspot_aaa(TYPE,MAC,IP) values("2",\""$MAC_ADDR"\",\""$IP_ADDR"\");" | $MYSQL_CONNECT_LEASEDB     echo "insert into hotspot_aaa(TYPE,MAC,IP) values("2",\""$MAC_ADDR"\",\""$IP_ADDR"\");" | $MYSQL_CONNECT_LEASEDB
- 
  
 elif elif
Строка 214: Строка 196:
 fi fi
  
-echo "end mysql"</code>Включаем сервер dhcpd и добавим правило в firewall:<code bash>systemctl enable dhcpd+echo "end mysql"</code>Включить сервер ''dhcpd'' и добавиить правило в firewall:<code bash>systemctl enable dhcpd
 systemctl start dhcpd systemctl start dhcpd
 firewall-cmd --permanent —add-service=dhcp firewall-cmd --permanent —add-service=dhcp
 firewall-cmd --reload</code> firewall-cmd --reload</code>
-  - Создадим скрипт для переноса файла сессий на ftp:<code bash>mkdir  /srv/aaa/+  - Создать скрипт для переноса файла сессий на FTP:<code bash>mkdir  /srv/aaa/
 mkdir  /srv/aaa/processed/ mkdir  /srv/aaa/processed/
 mkdir  /srv/aaa/script/ mkdir  /srv/aaa/script/
-touch /srv/aaa/script/script.sh</code>Скопируем содержимое в /srv/aaa/script/script.sh:<code bash>#!/bin/bash +touch /srv/aaa/script/script.sh</code>Скопировать содержимое в ''/srv/aaa/script/script.sh'':<code bash>#!/bin/bash
  
 FTP_ADDR="<ip ftp>" FTP_ADDR="<ip ftp>"
Строка 228: Строка 209:
 FTP_PASS="<password ftp>" FTP_PASS="<password ftp>"
  
- +#Директория с ААА Hotspot
-#директория с ааа hotspot+
 DIR="/var/www/html/wifi_hotspot/backend/storage/aaa_events" DIR="/var/www/html/wifi_hotspot/backend/storage/aaa_events"
- 
  
 ls $DIR | while read f; do ls $DIR | while read f; do
     curl --user $FTP_USER:$FTP_PASS --upload-file $DIR/$f ftp://$FTP_ADDR/ISP/aaa/  > /dev/null 2>&1     curl --user $FTP_USER:$FTP_PASS --upload-file $DIR/$f ftp://$FTP_ADDR/ISP/aaa/  > /dev/null 2>&1
-    mv $DIR/$f /srv/aaa/processed</code>и добавим на выполнение в cron:<code bash>crontab -e+    mv $DIR/$f /srv/aaa/processed</code>и добавить на выполнение в cron:<code bash>crontab -e
 */5 * * * * /srv/aaa/script/script.sh</code> */5 * * * * /srv/aaa/script/script.sh</code>
-  - Создадим открытый и закрытый ключ:<code bash>mkdir usr/local/etc/dhcpd/.ssh && cd usr/local/etc/dhcpd/.ssh+  - Создать открытый и закрытый ключ:<code bash>mkdir usr/local/etc/dhcpd/.ssh && cd usr/local/etc/dhcpd/.ssh
 ssh-keygen -t rsa</code> ssh-keygen -t rsa</code>
  
-Секретную фразу оставляем пустой\\  +Секретную фразу оставить пустой.\\  
-**Внимание! Переносим id.pub на скат (10.0.0.6) и микротик (100.64.0.1)!** +**Внимание! Перенести id.pub на СКАТ (10.0.0.6) и Mikrotik (100.64.0.1)!** 
-  * скат (10.0.0.6): перенести файл по ssh на скат и добавить в authorized_keys <code bash>cat id.pub >>  ~/.ssh/authorized_keys</code> +  * СКАТ (10.0.0.6): перенести файл по SSH на СКАТ и добавить в ''authorized_keys'' <code bash>cat id.pub >>  ~/.ssh/authorized_keys</code> 
-  * микротик (100.64.0.1): перенести файл по ssh или через web интерфейс и сделать import <code bash>user ssh-keys import public-key-file=id.pub user=admin</code>+  * Mikrotik (100.64.0.1): перенести файл по SSH или через Web-интерфейс и сделать import<code bash>user ssh-keys import public-key-file=id.pub user=admin</code>
  
 =====Настройка СКАТ===== =====Настройка СКАТ=====
- +  - Настроить на СКАТе DB для юзеров:<code bash>nano /etc/dpi/fastdpi.conf  
-  - Настроим на скате db для юзеров:<code bash>nano /etc/dpi/fastdpi.conf  +
 udr=1</code> udr=1</code>
-  - Настроим фильтрацию по федеральному списку:<code bash>black_list_sm=0+  - Настроить фильтрацию по федеральному списку:<code bash>black_list_sm=0
 federal_black_list=1 federal_black_list=1
 #редирект на страничку #редирект на страничку
 black_list_redirect=http://block.lan/</code> black_list_redirect=http://block.lan/</code>
-  - Сделаем класс по умолчанию: class_order=0 +  - Задать класс по умолчанию: <code bash>class_order=0</code> 
-  - Включим выгрузку ipfix+  - Включить выгрузку IPFIX
-    * Настроить интерфейс eth1: nano /etc/sysconfig/network-scripts/ifcfg-eth1 <code bash>BOOTPROTO=none+    * Настроить интерфейс ''eth1''''nano /etc/sysconfig/network-scripts/ifcfg-eth1'' <code bash>BOOTPROTO=none
 ONBOOT=yes ONBOOT=yes
 IPADDR=<ip address> IPADDR=<ip address>
Строка 273: Строка 251:
 ipfix_dns_tcp_collectors=<ip:port ipfix collectors> ipfix_dns_tcp_collectors=<ip:port ipfix collectors>
 ipfix_nat_udp_collectors=<ip:port ipfix collectors></code> ipfix_nat_udp_collectors=<ip:port ipfix collectors></code>
-  - Сделаем трафик в class 7 минимальным:<code bash>tbf_class7=rate 1kbit+  - Сделать трафик в class 7 минимальным:<code bash>tbf_class7=rate 1kbit
 tbf_inbound_class7=rate 1kbit</code> tbf_inbound_class7=rate 1kbit</code>
-  - Включим редирект на captive portal: cp_server=10.0.0.4 (ip cp) +  - Включить редирект на Captive portal: ''cp_server=10.0.0.4 (ip cp)'' 
-  - Выключим nat для приватных адресов: nat_exclude_private=1+  - Выключить NAT для приватных адресов: ''nat_exclude_private=1''
   - Остальные настройки СКАТ:<code bash>ctrl_port=29000   - Остальные настройки СКАТ:<code bash>ctrl_port=29000
 ctrl_dev=lo ctrl_dev=lo
Строка 286: Строка 264:
 http_parse_reply=1 http_parse_reply=1
 rlimit_fsize=32000000000</code> rlimit_fsize=32000000000</code>
-  - Заменить содержимое скрипта /var/dpiui2/add_captive_portal_auth_ivstar.sh на следующие:<code bash>#!/bin/sh+  - Заменить содержимое скрипта ''/var/dpiui2/add_captive_portal_auth_ivstar.sh'' на следующие:<code bash>#!/bin/sh
 fdpi_ctrl load --service 5 --profile.name='hotspot_white_list_profile' --ip $1 fdpi_ctrl load --service 5 --profile.name='hotspot_white_list_profile' --ip $1
 fdpi_ctrl load --service 11 --profile.name='NAT_PUBLIC_WIFI' --ip $1 fdpi_ctrl load --service 11 --profile.name='NAT_PUBLIC_WIFI' --ip $1
 fdpi_ctrl load --policing --profile.name='wifi_hotspot_auth_policing' --ip $1</code> fdpi_ctrl load --policing --profile.name='wifi_hotspot_auth_policing' --ip $1</code>
-  - Добавить открытый ключ для доступа с hotspot на скат в файл /home/dpisu/.ssh/authorized_keys:<code bash>#!/bin/sh+  - Добавить открытый ключ для доступа с Hotspot на СКАТ в файл ''/home/dpisu/.ssh/authorized_keys'':<code bash>#!/bin/sh
 fdpi_ctrl load --service 5 --profile.name='hotspot_white_list_profile' --ip $1 fdpi_ctrl load --service 5 --profile.name='hotspot_white_list_profile' --ip $1
 fdpi_ctrl load --service 11 --profile.name='NAT_PUBLIC_WIFI' --ip $1 fdpi_ctrl load --service 11 --profile.name='NAT_PUBLIC_WIFI' --ip $1
-fdpi_ctrl load --policing --profile.name='wifi_hotspot_auth_policing' --ip $1</code>Сохраняем все изменения в файле /etc/dpi/fastdpi.conf и делаем reboot. +fdpi_ctrl load --policing --profile.name='wifi_hotspot_auth_policing' --ip $1</code>Сохранить все изменения в файле ''/etc/dpi/fastdpi.conf'' и делаем ''reboot''
-  - Настроим интерфейс eth0 для доступа к hotspot и dpiui<code bash>nano /etc/sysconfig/network-scripts/ifcfg-eth0</code> <code bash>BOOTPROTO=none+  - Настроить интерфейс ''eth0'' для доступа к Hotspot и DPIUI<code bash>nano /etc/sysconfig/network-scripts/ifcfg-eth0</code> <code bash>BOOTPROTO=none
 ONBOOT=yes ONBOOT=yes
 IPADDR=10.0.0.6 IPADDR=10.0.0.6
 PREFIX=24 PREFIX=24
 DNS1=10.0.0.2</code> DNS1=10.0.0.2</code>
 +
 +=====Настройка DPI и Hotspot через DPIUI=====
 +Настройка приоритизации по протоколам.
 +
 +1. Перейти во вкладку Управление DPI → ПРИОРИТИЗАЦИЯ ПО ПРОТОКОЛАМ (DSCP) → Редактор
 +  * cs0 – что пропускаем
 +  * cs1 – что зажимаем тарифом
 +  * cs7 – что зажимаем глобально<code bash>Bittorrent cs7
 +default cs1
 +dns cs0
 +http cs0
 +https cs0</code>
 +2. CG-NAT в СКАТе:\\ Перейти во вкладку Управление услугами → Услуги → CGNAT\\ Создать профиль:\\ Описание: ''NAT_WIFI''\\Тип: ''CGNAT''\\ Nat IP пул: ''<public ip>''\\ Число tcp сессий: ''1000'' (на абонента)\\ Число udp сессий: ''1000'' (на абонента) 
 +
 +**Настройка Hotspot:**
 +  - Перейти во вкладку Управление услугами → Hotspot\\ Web сервер: ''WiFi-Hotspot'' (ВМ ''cp_wifi_vm'' заведенная ранее в DPIUI)\\ Captive portal URL: ''https://10.0.0.4'' (url cp)\\ Время жизни сессии: ''36000''\\ URL для редиректа: ''https://google.ru'' (страница редиректа после успешной авторизации)
 +  - Включить WiFi и SMS авторизацию\\ SMS авторизацию через сервис sms.ru:\\ Метод: ''Post''\\ Url:  ''https://sms.ru/sms/send''
 +  - Тело (From):<code bash>api_id  =  <id из личного кабинета sms.ru>
 +to  =  [PHONE]
 +msg  =  Ваш код для WIFI: [CODE]</code> 
 +
 +**Настройка тарифов Hotspot (в редакторе):**
 +  - Тариф для авторизации:<code bash>htb_inbound_root=rate 5mbit ceil 5mbit burst 2500kbit cburst 2500kbit
 +htb_inbound_class0=rate 8bit ceil  5mbit burst 8bit cburst 2500kbit
 +htb_inbound_class1=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_inbound_class2=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_inbound_class3=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_inbound_class4=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_inbound_class5=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_inbound_class6=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_inbound_class7=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_root=rate 100kbit ceil 100kbit burst 50kbit cburst 50kbit
 +htb_class0=rate 8bit ceil  100kbit burst 8bit cburst 50kbit
 +htb_class1=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_class2=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_class3=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_class4=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_class5=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_class6=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_class7=rate 8bit ceil  8bit burst 8bit cburst 8bit</code>
 +  - Тариф для бесплатного WiFi:<code bash>htb_inbound_root=rate 10mbit ceil 10mbit burst 5mbit cburst 5mbit
 +htb_inbound_class0=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_inbound_class1=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_inbound_class2=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_inbound_class3=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_inbound_class4=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_inbound_class5=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_inbound_class6=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_inbound_class7=rate 8bit ceil  8bit burst 8bit cburst 8bit
 +htb_root=rate 10mbit ceil 10mbit burst 5mbit cburst 5mbit
 +htb_class0=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_class1=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_class2=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_class3=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_class4=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_class5=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_class6=rate 8bit ceil  10mbit burst 8bit cburst 5mbit
 +htb_class7=rate 8bit ceil  8bit burst 8bit cburst 8bit</code>
 +
 +3. Услуги:\\
 +Перейти к управлению услугами, включить CGNAT и выбрать профиль NAT_WIFI
 +
 +4. Белый список:\\
 +Перейти во вкладку Управление услугами → Услуги → Черные и белые списки.\\
 +Выбрать нужный профиль и создать список: ''ip 10.0.0.4 (ip cp)''\\
 +Если для CP есть запись в DNS, то добавить так: ''cn example.com''\\
 +Сохранить настройки через интерфейс.
 +
 +=====Настройка Mikrotik 100.64.0.1=====
 +  - Настроить клиентский интерфейса Mikrotik\\ Обновить до Router OS 6.48.x<code bash>/interface vlan
 +add arp=reply-only arp-timeout=10m interface=sfp1 name=vWifi vlan-id=40
 +
 +/ip settings
 +set icmp-rate-limit=5 rp-filter=strict
 +
 +/ip address
 +add address=100.64.0.1/22 interface=vWifi network=100.64.0.0
 +
 +/ip dhcp-relay
 +add dhcp-server=10.0.0.4 disabled=no interface=vWifi local-address=100.64.0.1 name=relay1
 +
 +/ip dns
 +set servers=10.0.0.2
 +
 +/ip route
 +add distance=1 dst-address=10.0.0.4/32 gateway=<указать шлюз> pref-src=100.64.0.1
 +
 +/system clock
 +set time-zone-name=Europe/Moscow
 +
 +/system ntp client
 +set enabled=yes primary-ntp=<указать ntp сервер>
 +
 +/tool bandwidth-server
 +set authenticate=no enabled=no</code>
 +  - Настроить IP связь между DHCP/Hotspot и Mikrotik
 +
 +=====Настройка unifi network=====
 +  - Настроить точки ubiquiti:
 +    * Установить unifi network на сервер
 +    * Настроить DHCP для выдачи настроек точкам
 +    * Если точки и контроллер в разных подсетях, то в DHCP указать option 43 и присвоить ей значение IP контроллера (в формате hex) используя инструкцию: https://help.ui.com/hc/en-us/articles/204909754-UniFi-Device-Adoption-Methods-for-Remote-UniFi-Controllers\\ **Внимание!** Нужно переключиться на старый интерфейс, для этого надо отжать рычажок в System Settings → New USER Interface
 +  - Настроить Сеть и прочее:
 +    * Перейти в настройки и далее в Network\\ Создать новою сеть и указать vlan 40 и название WiFi-Client, шлюз указать как 100.64.0.1/22, остальное по желанию
 +    * Перейти в настройки и далее в Guest Control\\ В Pre-Authorization Access указать IP Hotspot (10.0.0.4)
 +    * Перейти в настройки и далее в Wireless Networks
 +      * Создать WiFi сеть
 +      * Сразу открыть ADVANCED OPTIONS
 +      * Вписать любое имя/SSID
 +      * Поставить галочку напротив Enabled
 +      * Поставить галочку напротив Open
 +      * Поставить галочку напротив Guest Policy
 +      * В Network выбрать WiFi-Client
 +      * Поставить галочку напротив Block LAN to WLAN Multicast and Broadcast Data
 +      * Поставить галочку напротив Allow BSS Transition with WNM
 +      * Поставить галочку напротив Block Tunneled Link Direct Setup (TDLS) connections
 +      * Поставить галочку напротив Isolates stations on layer 2 (ethernet) level
 +    * Нажать Save
 +