HotSpot SMS авторизация

Настройка гостевой HotSpot авторизации на MikroTik через звонок, смс, ваучеры и ЕСИА (госуслуги) в соответствии с законами РФ.

Профессиональная настройка MikroTik
Без предоплаты
Telegram: @Engineer_MikroTik

Вводные данные

В РФ есть законы (97-ФЗ от 05.10.2014 года, ПП № 758 от 31 июля 2014 г., № 801 от 12 августа 2014 г.), которые обязывают проводить идентификацию пользователей на общественных сетях.

Будем использовать готовое решение по авторизации, которое внедрим в гостевой Vlan. Его в дальнейшем можно подать как в CAPsMAN так и в локальную сеть.

Так выглядит HotSpot на MikroTik
Так выглядит HotSpot на MikroTik

Регистрация сервиса

Знакомимся с описание сервиса и тарифами (10 дней дают бесплатно) — https://global-hotspot.ru/ и проходим регистрацию https://areg.global-hotspot.ru/

Запрашиваем в чате тестовый период.

Получение конфигурации

На сайте нужно собрать конфигурацию под свою версию RouterOS, которую так же придется подправить. В примере используется последняя версия на момент написания статьи — Router OS 7.18.1 Stable

Все шаги настройки на сайте показаны в документации

Выбор шаблона

Выбираем нужный шаблон
Выбираем нужный шаблон

Внешний вид

HotSpot SMS авторизация
Редактируем шабон

Профиль

HotSpot SMS авторизация
Настраиваем профиль

Места

HotSpot SMS авторизация
Создаем место, из которого конфигурацию
HotSpot SMS авторизация
Выбираем версию RouterOS
HotSpot SMS авторизация
Настройки конфигурации
HotSpot SMS авторизация
Получаем конфигурацию

Всю конфигурацию заливать не нужно, т.к. у нас Vlan для дальнейшего использования

/system identity set name=[/interface ethernet get 0 mac-address]


/interface set ether1 name="ether1-uplink";
/ip dhcp-client add interface=ether1-uplink disabled=no comment="default configuration";
/ip neighbor discovery set [find name="ether1-uplink"] discover=no

/ip dns set allow-remote-requests=yes

/interface bridge add name=bridge-local disabled=no auto-mac=yes protocol-mode=rstp;
/ip address add address=192.168.88.1/24 interface=bridge-local comment="default configuration";
/ip pool add name="default-dhcp" ranges=192.168.88.10-192.168.88.254;
/ip dhcp-server add name=default address-pool="default-dhcp" interface=bridge-local lease-time=10m disabled=no;
/ip dhcp-server network add address=192.168.88.0/24 gateway=192.168.88.1 comment="default configuration";


/interface bridge add name="HS_bridge" disabled=no auto-mac=yes protocol-mode=rstp
/ip address add address=10.50.50.1/24 interface=HS_bridge comment="CaptivePortalV8 network" network=10.50.50.0
/ip pool add name=hs-pool-3 ranges=10.50.50.2-10.50.50.254
/ip dhcp-server add address-pool=hs-pool-3 disabled=no interface=HS_bridge lease-time=2h name=dhcp1
/ip dhcp-server network add address=10.50.50.0/24 comment="hotspot network" gateway=10.50.50.1


/ip firewall nat add chain=srcnat out-interface=ether1-uplink action=masquerade comment="default configuration"

/interface bridge port add bridge=HS_bridge interface=wlan1
/interface bridge port add bridge=HS_bridge interface=wlan2
/interface wireless set wlan1 mode=ap-bridge ssid=CaptivePortalV8 default-forwarding=no disabled=no band=2ghz-b/g/n
/interface wireless set wlan2 mode=ap-bridge ssid=CaptivePortalV8 default-forwarding=no disabled=no band=5ghz-a/n/ac

/ip firewall nat add action=masquerade chain=srcnat comment="masquerade hotspot network" src-address=10.50.50.0/24


/radius add service=hotspot address=109.68.214.124 secret=captive_v8_radpass timeout=3000ms require-message-auth=no
/radius add service=hotspot address=62.113.98.21 secret=captive_v8_radpass timeout=3000ms require-message-auth=no

/ip hotspot profile add name=glhsprof hotspot-address=10.50.50.1 use-radius=yes login-by=http-pap 
/ip hotspot profile set glhsprof radius-location-name=a703d562
/ip hotspot add address-pool=hs-pool-3 disabled=no interface=HS_bridge name=glhotspot profile=glhsprof idle-timeout=5m
/ip hotspot user profile set numbers=default keepalive-timeout=4d idle-timeout=none
/ip hotspot user profile set numbers=default address-pool=hs-pool-3
/ip hotspot user add name=admin


/ip hotspot walled-garden ip add dst-address=185.104.114.124/32
/ip hotspot walled-garden ip add dst-address=185.119.59.183/32
/ip hotspot walled-garden ip add dst-address=185.146.168.160/32
/ip hotspot walled-garden ip add dst-address=185.189.14.125/32
/ip hotspot walled-garden ip add dst-address=188.127.225.157/32
/ip hotspot walled-garden ip add dst-address=188.225.18.2/32
/ip hotspot walled-garden ip add dst-address=188.225.32.45/32
/ip hotspot walled-garden ip add dst-address=188.225.73.64/32
/ip hotspot walled-garden ip add dst-address=31.129.99.151/32
/ip hotspot walled-garden ip add dst-address=45.67.56.15/32
/ip hotspot walled-garden ip add dst-address=5.101.126.175/32
/ip hotspot walled-garden ip add dst-address=83.220.174.225/32
/ip hotspot walled-garden ip add dst-address=85.30.240.5/32
/ip hotspot walled-garden ip add dst-address=87.236.23.242/32
/ip hotspot walled-garden ip add dst-address=91.210.171.35/32
/ip hotspot walled-garden ip add dst-address=91.230.211.75/32
/ip hotspot walled-garden ip add dst-address=95.213.176.3/32


/ip hotspot walled-garden add dst-host=*.global-hotspot.ru
/ip hotspot walled-garden add dst-host=v8.global-hotspot.ru
/ip hotspot walled-garden add dst-host=*.glhs.ru



/system scheduler add interval=1m name=monv8_up on-event=":local resoult (\"mon_up\?type=routeros&uuid=f78942648087dff5544d4ef03c023c47&plid=a703d5629169f3af3a3907e63895c4d9&mac_e0=\".[/interface ethernet get 0 mac-address].\"&identity=\".[/system identity get name].\"&curtime=\".[/system clock get time].\"&uptime=\".[/system resource get uptime].\"&cpu_load=\".[/system resource get cpu-load].\"&board_name=\".[/system resource get board-name].\"&free_memory=\".[/system resource get free-memory]);local bEncoded;for i from=0 to=([:len \$resoult] - 1) do={:local char [:pick \$resoult \$i];if (\$char = \" \") do={ :set \$char \"_\"};set bEncoded (\$bEncoded . \$char) }; /tool fetch keep-result=no mode=http address=mik.hm.v8.global-hotspot.ru host=mik.hm.v8.global-hotspot.ru src-path= \$bEncoded" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=jan/01/1970 start-time=01:00:00


:if ([:len [/file find name=flash]] > 0) do={ \
    /ip hotspot profile set html-directory=/hotspot; \
    /tool fetch url=https://a.glhs.ru/files/f78942648087dff5544d4ef03c023c47/mikrotik/pl/a703d5629169f3af3a3907e63895c4d9/login/5/fe5616f33d14b3843708c59ddf4a8b88 dst-path=/flash/hotspot/login.html mode=https; \
    /tool fetch url=https://a.glhs.ru/files/f78942648087dff5544d4ef03c023c47/mikrotik/pl/a703d5629169f3af3a3907e63895c4d9/alogin/5/fe5616f33d14b3843708c59ddf4a8b88 dst-path=/flash/hotspot/alogin.html mode=https; \
    /tool fetch url=https://a.glhs.ru/files/f78942648087dff5544d4ef03c023c47/mikrotik/pl/a703d5629169f3af3a3907e63895c4d9/rlogin/5/fe5616f33d14b3843708c59ddf4a8b88 dst-path=/flash/hotspot/rlogin.html mode=https; \
    /tool fetch url=https://a.glhs.ru/files/f78942648087dff5544d4ef03c023c47/mikrotik/pl/a703d5629169f3af3a3907e63895c4d9/redirect/5/fe5616f33d14b3843708c59ddf4a8b88 dst-path=/flash/hotspot/redirect.html mode=https; \
    } \
else={\
    /ip hotspot profile set html-directory=/hotspot; \
    /tool fetch url=https://a.glhs.ru/files/f78942648087dff5544d4ef03c023c47/mikrotik/pl/a703d5629169f3af3a3907e63895c4d9/login/5/fe5616f33d14b3843708c59ddf4a8b88 dst-path=/hotspot/login.html mode=https; \
    /tool fetch url=https://a.glhs.ru/files/f78942648087dff5544d4ef03c023c47/mikrotik/pl/a703d5629169f3af3a3907e63895c4d9/alogin/5/fe5616f33d14b3843708c59ddf4a8b88 dst-path=/hotspot/alogin.html mode=https; \
    /tool fetch url=https://a.glhs.ru/files/f78942648087dff5544d4ef03c023c47/mikrotik/pl/a703d5629169f3af3a3907e63895c4d9/rlogin/5/fe5616f33d14b3843708c59ddf4a8b88 dst-path=/hotspot/rlogin.html mode=https; \
    /tool fetch url=https://a.glhs.ru/files/f78942648087dff5544d4ef03c023c47/mikrotik/pl/a703d5629169f3af3a3907e63895c4d9/redirect/5/fe5616f33d14b3843708c59ddf4a8b88 dst-path=/hotspot/redirect.html mode=https; \
}

Итоговая конфигурация

/ip hotspot profile
add hotspot-address=192.168.254.1 html-directory=flash/hotspot login-by=http-pap name=glhsprof radius-location-name=a703d562 use-radius=yes
/ip hotspot
add address-pool=DHCP-GUEST disabled=no interface=vlan300 name=glhotspot profile=glhsprof
/ip hotspot user profile
set [ find default=yes ] address-pool=DHCP-GUEST keepalive-timeout=4d
/ip hotspot user
add name=admin
/ip hotspot walled-garden
add comment="place hotspot rules here" disabled=yes
add dst-host=*.global-hotspot.ru
add dst-host=v8.global-hotspot.ru
add dst-host=*.glhs.ru
/ip hotspot walled-garden ip
add action=accept disabled=no dst-address=185.104.114.124
add action=accept disabled=no dst-address=185.119.59.183
add action=accept disabled=no dst-address=185.146.168.160
add action=accept disabled=no dst-address=185.189.14.125
add action=accept disabled=no dst-address=188.127.225.157
add action=accept disabled=no dst-address=188.225.18.2
add action=accept disabled=no dst-address=188.225.32.45
add action=accept disabled=no dst-address=188.225.73.64
add action=accept disabled=no dst-address=31.129.99.151
add action=accept disabled=no dst-address=45.67.56.15
add action=accept disabled=no dst-address=5.101.126.175
add action=accept disabled=no dst-address=83.220.174.225
add action=accept disabled=no dst-address=85.30.240.5
add action=accept disabled=no dst-address=87.236.23.242
add action=accept disabled=no dst-address=91.210.171.35
add action=accept disabled=no dst-address=91.230.211.75
add action=accept disabled=no dst-address=95.213.176.3

/ip address
add address=192.168.254.1/24 interface=vlan300 network=192.168.254.0

/ip firewall nat
add action=passthrough chain=unused-hs-chain comment="place hotspot rules here" disabled=yes
add action=masquerade chain=srcnat comment="masquerade hotspot network" disabled=yes out-interface-list=WAN src-address=192.168.254.0/24

/radius
add address=109.68.214.124 require-message-auth=no secret=captive_v8_radpass service=hotspot timeout=3s
add address=62.113.98.21 require-message-auth=no secret=captive_v8_radpass service=hotspot timeout=3s

Остальные настройки

В кабинете можно менять дизайн страницы, способы авторизации, ограничивать скорость, настраивать рекламу.

Итог

Система годится для любых предприятий, которые предоставляют гостевой WiFi и хотят соблюдать закон.

Профессиональная настройка MikroTik
Без предоплаты
Telegram: @Engineer_MikroTik
Настройка MikroTik