Инструкция по настройке hotspot на Mikrotik для сервиса flyLogin

flyLogin — авторизация и маркетинг на сетях free Wi-Fi

Для реализации сервиса flyLogin используется оборудование Mikrotik с операционной системой RouterOS

Конфигурация для сценария только Авторизация (сервис flyLogin):

Устанавливаем на ПК, ПО WinBox отсюда http://www.mikrotik.com/download  

Подключаемся к устройству.

Обновляем прошивку!!!

Создаем bridge (например с названием bridge-hotspot) в который должны входить wifi и проводные интерфейсы на которох должна работать услуга hotspot:

/interface bridge add name=bridge-hotspot

На микротиках со встроенным wifi bridge уже обычно создан и туда добавлены нужные интерфейсы, проверяйте в настройках (bridge — ports)

Добавляем в него интерфейсы:

/interface bridge port add bridge=bridge-hotspot interface=ether3-slave-local — 3 медный порт

/interface bridge port add bridge=bridge-hotspot interface=wlan1 — wifi интерфейсы

и т.д. В bridge может входить и всего один порт, например только wifi интерфейс.

Назначаем ip адрес на созданный bridge интерфейс, адреса из этой сети будут получать клиенты hotspot:

/ip address add address=192.168.110.1/24 interface=bridge-hotspot

Добавляем RADIUS сервера:

radius add service=hotspot address=176.99.2.231 secret=123456

radius add service=hotspot address=91.232.135.206 secret=123456

Запускаем мастер создания hotspot:

/ip hotspot setup

Отвечаем на вопросы:

hotspot interface: bridge-hotspot

local address of network: 192.168.110.1/24 (сеть прописанную на интерфейсе подставит автоматически)

masquerade network: yes (включаем nat этой сети)

address pool of network: 192.168.110.2-192.168.110.254 (диапазон адресов которые будут выдаваться по DHCP)

select certificate: none (сертификаты не используются)

ip address of smtp server: 0.0.0.0 (не меняем)

dns servers:77.88.8.8 (можно использовать любые, Yandex используется что бы не зависеть от провайдера и от «внешних» ресурсов. Подробнее о Yandex DNS https://dns.yandex.ru/ )

dns name: wf.wifly.net

name of local hotspot user: admin (не меняем, оставляем admin)

password for the user: (оставляем пустым)

После создания hotspot зайти в IP-Hotspot-User Profiles», в настройках профайла default установить Keepalive Timeout равным 02:00:00

Меняем способы аутентификации:

Через web IP-Hotspot-Server Profiles-hsprof1 в Login By оставляем только http-chap,http-pap.

Чуть ниже ставим галочку Use RADIUS.

В Interim Update прописываем 00:05:00.

Добавляем разрешенные ресурсы:

/ip hotspot walled-garden add action=allow server=hotspot1 dst-host=login.wifly.net

В разделе Hotspot->User Profiles->default поставить Open Status Page: HTTP Login

При наличии подключения к Интернету заменить файлы в папке Hotspot.

Для этого из winbox открываем New Terminal и вводим команды по одной:

/tool fetch host=login.wifly.net url=http://login.wifly.net/rlogin.html dst-path=([/ip hotspot profile get [find dns-name~"wifly"] html-directory]) mode=http

/tool fetch host=login.wifly.net url=http://login.wifly.net/mikrotik/0/login.html dst-path=([/ip hotspot profile get [find dns-name~"wifly"] html-directory]) mode=http

/tool fetch host=login.wifly.net url=http://login.wifly.net/mikrotik/0/alogin.html dst-path=([/ip hotspot profile get [find dns-name~"wifly"] html-directory]) mode=http

/tool fetch host=login.wifly.net url=http://login.wifly.net/mikrotik/0/logout.html dst-path=([/ip hotspot profile get [find dns-name~"wifly"] html-directory]) mode=http

/tool fetch host=login.wifly.net url=http://login.wifly.net/mikrotik/0/status.html dst-path=([/ip hotspot profile get [find dns-name~"wifly"] html-directory]) mode=http

Если не появляется страница авторизации, проверяем все настройки еще раз, если все верно — удаляем хотспот, перезагружаем микротик и настраиваем еще раз.

После настройки обязательно закрываем доступ к DNS серверу из Интернета:

/ip firewall filter add chain=input action=reject reject-with=icmp-network-unreachable protocol=udp in-interface=ether1-gateway dst-port=53

Отключаем неиспользуемые сервисы:

/ip service disable ftp,telnet,api-ssl

В случае отсутствия подключения к интернету на Микротике заменить файлы через winbox (Files) : login.html, alogin.html, logout.html, status.html   Скачать >>

Задаем имя Микротика такое же как в поле “Идентификатор зоны” в свойствах зоны https://login.wifly.net/zones

/system identity set name=XXXXXXXXXXXX

Включаем NTP и устанавливаем часовой пояс:

/system clock set time-zone-name=Europe/Moscow

/system ntp client set enabled=yes primary-ntp=198.60.73.8

Разрешаем в фаерволе весь трафик icmp:

/ip firewall filter add chain=input action=accept protocol=icmp

Разрешаем доступ к управлению по ssh:

/ip firewall filter add chain=input action=accept protocol=tcp src-address=0.0.0.0/0 in-interface=ether1-gateway dst-port=22

Устанавливаем пароль командой password!!!

Добавляем файл rlogin.html

1) Скачать файл rlogin

Вариант №1, если используется хостнейм на микротике (большинство случаев). Скачать rlogin >>

                 ИЛИ скачать и запустить команду непосредственно на роутере& Войдите в терминал: New Terminal и вставьте команду отображенную ниже и нажмите Enter

/tool fetch host=login.wifly.net url=http://login.wifly.net/rlogin.html dst-path=([/ip hotspot profile get [find dns-name~"wifly"] html-directory]) mode=http

Вариант №2, если имя хотспота (название сервера hotspot в IP-Hotspot-Servers). Скачать rlogin >>

2) Разместить файл rlogin.html в директории, где расположены файлы хотспота: hotspot или flash/hotspot

3) Перезагрузить роутер

Для кастомных доменов (не my.wifly.net ) в файле rlogin.html необходимо заменить my.wifly.net на собственное имя

Файл для заливки в роутер login.html 

Установка скрипта мониторинга состояния оборудования.

Для мониторинга состояния роутера и отображения его состояния в Личном кабинете услуги, необходимо добавить скрипт Healthcheck. Скрипт обращается к серверам сервиса и сообщает о работоспособности устройства, если устройство не выходит на связь это фиксируется и можно формировать алерты на это сообщение.

Адрес сервера мониторинга к которому обращается скрипт — wifihealthcheck.xyz

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

Период обновления статуса роутера на системе — один раз в 5 минут.

Для установки скрипта зайдите на роутер Mikrotik через программу WinBox и откройте Terminal. Скопируйте все команды скрипта и вставьте их в окно терминала, далее Enter. Скрипт выполниться на роутере и начнет свою работу.

Скрипт начало:

/system script
add name=healthcheck owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":local hostname1 [/system identity get value-name=na\
me]\r\
\n:local hotspotCount [/ip hotspot print count-only]\r\
\n:local checkdns [/ping 8.8.8.8 count=4]\r\
\n:if (\$hotspotCount > 0) do={\r\
\n for h from=0 to \$hotspotCount do={\r\
\n :local hotspotName [/ip hotspot get value-name=name number=\$h]\r\
\n :local HotSpotINT [/ip hotspot get value-name=interface number=\$h] \r\
\n :local ssidsToSend\r\
\n :local CWInt [/interface print count-only where type ~ \"wlan\"]\r\
\n :if (checkdns > 0) do={\r\
\n :if (\$CWInt > 0) do={\r\
\n :local CWInt2 (\$CWInt-1)\r\
\n\tfor x from=0 to=\$CWInt2 do={\r\
\n\t\t:local currSSID [/interface wireless get number=\$x ssid]\r\
\n\t\t:local NameWInt [/interface wireless get value-name=name number=\$x]\r\
\n\t\t\r\
\n\t\t:local f1 [/interface bridge port find interface=\$NameWInt]\r\
\n\t\t\tif (\$f1 != \"\") do={\r\
\n\t\t\t\t:local f2 [/interface bridge port get value-name=bridge number=\$f1]\r\
\n\t\t\t\t\r\
\n\t\t\t\tif (\$f2 = \$HotSpotINT) do={\r\
\n\t\t\t\t\t:set ssidsToSend \$currSSID\r\
\n\t\t\t\t\t\r\
\n\t\t\t\t}\t\r\
\n\t\t\t} \r\
\n\t}\r\
\n } \r\
\n }\r\
\n :log warning \"send healthckeck with hotsname = \$hostname1 hotspot name= \$hotspotName ssid = \$ssidsToSend\"\r\
\n /tool fetch host=wifihealthcheck.xyz url=https://wifihealthcheck.xyz/ http-method=post http-data=\"hostname=\$hostname1&hotspot=\$hotspotName&ssid=\$ssidsToSend\
\" mode=https check-certificate=no keep-result=no\r\
\n }\r\
\n}\t"

/system scheduler
add interval=5m name=healthcheck on-event=healthcheck policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-date=sep/01/2019 \
start-time=00:00:00

Скрипт конец:

Если есть вопросы, пишите на support@wifly.net  тема “Вопросы по flyLogin” или оставляйте заявку на портале поддержки https://support.wifly.net

Нужна консультация? Укажите свои контакты, и мы поможем!

Tagged:

Добавить комментарий