Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
dpi:dpi_options:use_cases:wifi_hotspot_session_management [2024/08/07 12:48] – elena.krasnobryzh | dpi:dpi_options:use_cases:wifi_hotspot_session_management [2025/01/15 10:46] (текущий) – [Установка виртуальных машин (ВМ)] elena.krasnobryzh | ||
---|---|---|---|
Строка 7: | Строка 7: | ||
- Абонент подключается к сети WiFi | - Абонент подключается к сети WiFi | ||
- Появляется welcome page с информацией, | - Появляется welcome page с информацией, | ||
- | - Абонент отрывает браузер, | + | - Абонент отрывает браузер, |
- Абонент вводит телефонный номер, запрашивает код доступа | - Абонент вводит телефонный номер, запрашивает код доступа | ||
- Код доступа отправляется на телефонный номер через SMS | - Код доступа отправляется на телефонный номер через SMS | ||
- Абонент вводит полученный код доступа | - Абонент вводит полученный код доступа | ||
- | - Происходит запись сессионной куки на абонентское устройство с сохранением | + | - Происходит запись сессионных куки на абонентское устройство с сохранением заданного периода, а также |
=====Установка виртуальных машин (ВМ)===== | =====Установка виртуальных машин (ВМ)===== | ||
- | - Создаём 2 виртуальные машины со следующими минимальными характеристиками: | + | - Создать две |
- | * dpiui_vm – 1 cpu, 2Gb Ram, 50G hard disk, Guest OS Centos 7, nic 1 | + | * ВМ '' |
- | * cp_wifi_vm – 1 cpu, 1Gb Ram, 30G hard disk, Guest OS Centos 7, nic</ | + | * ВМ '' |
- | | + | |
- Выключить selinux на обоих ВМ: | - Выключить selinux на обоих ВМ: | ||
- | * Отредактировать файл / | + | * Отредактировать файл |
- | * SELINUX=disabled и перезагрузить ВМ | + | * Задать значение параметра '' |
=====Установка и настройка dpiui_vm===== | =====Установка и настройка dpiui_vm===== | ||
- | + | | |
- | | + | |
- Настроить сеть на обоих ВМ и СКАТ:< | - Настроить сеть на обоих ВМ и СКАТ:< | ||
ONBOOT=yes | ONBOOT=yes | ||
Строка 31: | Строка 30: | ||
GATEWAY=10.0.0.1 | GATEWAY=10.0.0.1 | ||
DNS1=10.0.0.2</ | DNS1=10.0.0.2</ | ||
- | - Войти в GUI и добавить обе ВМ и СКАТ в разделе «ОБОРУДОВАНИЕ», | + | - Войти в GUI и добавить обе ВМ и СКАТ в разделе «ОБОРУДОВАНИЕ», |
=====Установка и настройка cp_wifi_vm===== | =====Установка и настройка cp_wifi_vm===== | ||
+ | - Установить пакет '' | ||
+ | - Отредактировать конфиг файл для Hotspot:< | ||
+ | - **'' | ||
+ | - **'' | ||
+ | - **'' | ||
+ | - **'' | ||
+ | - **'' | ||
- | - Установить пакет wifi_hotspot на cp_wifi_vm по [[dpi: | + | Если прописан параметр |
- | - Отредактируем конфиг файл для hotspot:< | + | |
- | - AAA_HOTSPOT_IP – 10.0.0.4\\ Адрес NAS сервера, | + | |
- | - AAA_HOTSPOT_PORT – 0\\ Порт NAS сервера, | + | |
- | - AAA_HOTSPOT_ID – 2\\ ИД точки подключения к сети передачи данных, | + | |
- | - AAA_EXPORT_ENABLED=1\\ Включить экспорт ААА | + | |
- | - AUTH_CODE_LENGTH=4\\ Поменять кол-во символов в коде для SMS авторизации | + | |
- | + | ||
- | Если прописали | + | |
В конце выполнить команду:< | В конце выполнить команду:< | ||
=====Установка и настройка dhcp-isc на cp_wifi_vm===== | =====Установка и настройка dhcp-isc на cp_wifi_vm===== | ||
- | + | | |
- | | + | - Настроить скрипты статического |
- | - Далее настраиваем | + | * Сначала конфигурационный |
- | * Сначала конфиг файл dhcpd — nano / | + | |
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 " | option domain-name " | ||
- | |||
on commit { | on commit { | ||
Строка 93: | Строка 86: | ||
suffix (concat (" | suffix (concat (" | ||
suffix (concat (" | suffix (concat (" | ||
- | |||
log(concat(" | log(concat(" | ||
Строка 103: | Строка 95: | ||
} | } | ||
subnet 10.0.0.0 netmask 255.255.255.0 { | subnet 10.0.0.0 netmask 255.255.255.0 { | ||
- | }</ | + | }</ |
touch / | touch / | ||
Строка 111: | Строка 102: | ||
chmod 755 / | chmod 755 / | ||
- | + | chmod 755 / | |
- | chmod 755 / | + | |
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 " | set INT_ClIENT " | ||
set status 0 | set status 0 | ||
- | #Записываем | + | #Запись dhcp-lease (start and end) в базе |
spawn / | spawn / | ||
Строка 131: | Строка 120: | ||
- | # | + | # |
spawn ssh -i / | spawn ssh -i / | ||
expect { | expect { | ||
Строка 169: | Строка 158: | ||
} elseif {$status == 0} { | } elseif {$status == 0} { | ||
send " | send " | ||
- | |||
expect eof | expect eof | ||
exit 1; | exit 1; | ||
} | } | ||
- | |||
set status 0 | set status 0 | ||
- | + | # | |
- | # | + | |
spawn ssh -i / | spawn ssh -i / | ||
- | |||
expect { | expect { | ||
Строка 193: | Строка 178: | ||
send " | send " | ||
expect eof | expect eof | ||
- | }< | + | }</code>И скопировать |
METHOD=$1 | METHOD=$1 | ||
IP_ADDR=$2 | IP_ADDR=$2 | ||
MAC_ADDR=$3 | MAC_ADDR=$3 | ||
- | |||
MYSQL_CONNECT_LEASEDB=" | MYSQL_CONNECT_LEASEDB=" | ||
- | |||
if [ " | if [ " | ||
Строка 207: | Строка 190: | ||
[ " | [ " | ||
echo " | echo " | ||
- | |||
elif | elif | ||
Строка 214: | Строка 196: | ||
fi | fi | ||
- | echo "end mysql"</ | + | echo "end mysql"</ |
systemctl start dhcpd | systemctl start dhcpd | ||
firewall-cmd --permanent —add-service=dhcp | firewall-cmd --permanent —add-service=dhcp | ||
firewall-cmd --reload</ | firewall-cmd --reload</ | ||
- | - Создадим | + | - Создать скрипт для переноса файла сессий на FTP:<code bash> |
mkdir / | mkdir / | ||
mkdir / | mkdir / | ||
- | touch / | + | touch / |
FTP_ADDR="< | FTP_ADDR="< | ||
Строка 228: | Строка 209: | ||
FTP_PASS="< | FTP_PASS="< | ||
- | + | #Директория с ААА Hotspot | |
- | #директория с ааа hotspot | + | |
DIR="/ | DIR="/ | ||
- | |||
ls $DIR | while read f; do | ls $DIR | while read f; do | ||
curl --user $FTP_USER: | curl --user $FTP_USER: | ||
- | mv $DIR/$f / | + | mv $DIR/$f / |
*/5 * * * * / | */5 * * * * / | ||
- | - Создадим | + | - Создать открытый и закрытый ключ:< |
ssh-keygen -t rsa</ | ssh-keygen -t rsa</ | ||
- | Секретную фразу оставляем | + | Секретную фразу оставить |
- | **Внимание! Переносим id.pub на скат | + | **Внимание! Перенести id.pub на СКАТ |
- | * скат | + | * СКАТ |
- | * микротик | + | * Mikrotik |
=====Настройка СКАТ===== | =====Настройка СКАТ===== | ||
- | + | | |
- | | + | |
udr=1</ | udr=1</ | ||
- | - Настроим фильтрацию по федеральному списку:< | + | - Настроить фильтрацию по федеральному списку:< |
federal_black_list=1 | federal_black_list=1 | ||
# | # | ||
black_list_redirect=http:// | black_list_redirect=http:// | ||
- | - Сделаем класс по умолчанию: | + | - Задать класс по умолчанию: |
- | - Включим выгрузку | + | - Включить выгрузку |
- | * Настроить интерфейс eth1: nano / | + | * Настроить интерфейс |
ONBOOT=yes | ONBOOT=yes | ||
IPADDR=< | IPADDR=< | ||
Строка 273: | Строка 251: | ||
ipfix_dns_tcp_collectors=< | ipfix_dns_tcp_collectors=< | ||
ipfix_nat_udp_collectors=< | ipfix_nat_udp_collectors=< | ||
- | - Сделаем трафик в class 7 минимальным:< | + | - Сделать трафик в class 7 минимальным:< |
tbf_inbound_class7=rate 1kbit</ | tbf_inbound_class7=rate 1kbit</ | ||
- | - Включим редирект на captive | + | - Включить редирект на Captive |
- | - Выключим nat для приватных адресов: | + | - Выключить NAT для приватных адресов: |
- Остальные настройки СКАТ:< | - Остальные настройки СКАТ:< | ||
ctrl_dev=lo | ctrl_dev=lo | ||
Строка 286: | Строка 264: | ||
http_parse_reply=1 | http_parse_reply=1 | ||
rlimit_fsize=32000000000</ | rlimit_fsize=32000000000</ | ||
- | - Заменить содержимое скрипта / | + | - Заменить содержимое скрипта |
fdpi_ctrl load --service 5 --profile.name=' | fdpi_ctrl load --service 5 --profile.name=' | ||
fdpi_ctrl load --service 11 --profile.name=' | fdpi_ctrl load --service 11 --profile.name=' | ||
fdpi_ctrl load --policing --profile.name=' | fdpi_ctrl load --policing --profile.name=' | ||
- | - Добавить открытый ключ для доступа с hotspot | + | - Добавить открытый ключ для доступа с Hotspot |
fdpi_ctrl load --service 5 --profile.name=' | fdpi_ctrl load --service 5 --profile.name=' | ||
fdpi_ctrl load --service 11 --profile.name=' | fdpi_ctrl load --service 11 --profile.name=' | ||
- | fdpi_ctrl load --policing --profile.name=' | + | fdpi_ctrl load --policing --profile.name=' |
- | - Настроим интерфейс eth0 для доступа к hotspot | + | - Настроить интерфейс |
ONBOOT=yes | ONBOOT=yes | ||
IPADDR=10.0.0.6 | IPADDR=10.0.0.6 | ||
PREFIX=24 | PREFIX=24 | ||
DNS1=10.0.0.2</ | DNS1=10.0.0.2</ | ||
+ | |||
+ | =====Настройка DPI и Hotspot через DPIUI===== | ||
+ | Настройка приоритизации по протоколам. | ||
+ | |||
+ | 1. Перейти во вкладку Управление DPI → ПРИОРИТИЗАЦИЯ ПО ПРОТОКОЛАМ (DSCP) → Редактор | ||
+ | * cs0 – что пропускаем | ||
+ | * cs1 – что зажимаем тарифом | ||
+ | * cs7 – что зажимаем глобально< | ||
+ | default cs1 | ||
+ | dns cs0 | ||
+ | http cs0 | ||
+ | https cs0</ | ||
+ | 2. CG-NAT в СКАТе: | ||
+ | |||
+ | **Настройка Hotspot:** | ||
+ | - Перейти во вкладку Управление услугами → Hotspot\\ Web сервер: | ||
+ | - Включить WiFi и SMS авторизацию\\ SMS авторизацию через сервис sms.ru:\\ Метод: '' | ||
+ | - Тело (From):< | ||
+ | to = [PHONE] | ||
+ | msg = Ваш код для WIFI: [CODE]</ | ||
+ | |||
+ | **Настройка тарифов Hotspot (в редакторе): | ||
+ | - Тариф для авторизации:< | ||
+ | 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</ | ||
+ | - Тариф для бесплатного WiFi:< | ||
+ | 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</ | ||
+ | |||
+ | 3. Услуги: | ||
+ | Перейти к управлению услугами, | ||
+ | |||
+ | 4. Белый список: | ||
+ | Перейти во вкладку Управление услугами → Услуги → Черные и белые списки.\\ | ||
+ | Выбрать нужный профиль и создать список: | ||
+ | Если для CP есть запись в DNS, то добавить так: '' | ||
+ | Сохранить настройки через интерфейс. | ||
+ | |||
+ | =====Настройка Mikrotik 100.64.0.1===== | ||
+ | - Настроить клиентский интерфейса Mikrotik\\ Обновить до Router OS 6.48.x< | ||
+ | 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/ | ||
+ | |||
+ | /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/ | ||
+ | |||
+ | /system clock | ||
+ | set time-zone-name=Europe/ | ||
+ | |||
+ | /system ntp client | ||
+ | set enabled=yes primary-ntp=< | ||
+ | |||
+ | /tool bandwidth-server | ||
+ | set authenticate=no enabled=no</ | ||
+ | - Настроить IP связь между DHCP/ | ||
+ | |||
+ | =====Настройка unifi network===== | ||
+ | - Настроить точки ubiquiti: | ||
+ | * Установить unifi network на сервер | ||
+ | * Настроить DHCP для выдачи настроек точкам | ||
+ | * Если точки и контроллер в разных подсетях, | ||
+ | - Настроить Сеть и прочее: | ||
+ | * Перейти в настройки и далее в Network\\ Создать новою сеть и указать vlan 40 и название WiFi-Client, | ||
+ | * Перейти в настройки и далее в 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 | ||
+ | |||