Jump to content
Калькуляторы

HotSpot (методы реализации на своем сервере) Как связать авторизацию через Wi-Fi с кастомной страницей

Всем привет!

Много что прочитал на эту тему, в том числе и тут на форуме, но конечной ясности не возникло, к сожалению.

 

Есть задача - при соединении с WiFi-оборудованием отображать кастомный мини-сайт (сам бекенд на PHP) с полем ввода номера телефона и отсылкой СМС (на это можно не обращать внимание, так как это не имеет прямого отношения к теме, отсылка СМС уже работает с помощью интеграции с API смс-шлюза). После успешной проверки на ввод кода страница должна показать видеоролик (скорее всего тут будет редирект на страницу с роликом), после чего уже разрешить пользователю ходить в мир.

 

То есть схема такая:

 

1) коннект к роутеру

2) видим страницу с формой (есть свой Linux-сервер, где всё это крутится)

3) форму сабмитим, попадаем на страницу с роликом

4) через 10 секунд попадаем на страницу "УРА!"

5) есть выход в интернет

 

Собственно, сам сайт (набор страниц) уже есть. Осталось только связать всё воедино.

В наличии свой сервер Linux, нет ограничений по установке и настройке любых пакетов. Можно ставить всё что душе приглянется.

 

Вопросы:

 

1) какие аппаратные средства стоит использовать? Микротик? посоветуйте, пожалуйста, модель

2) какова общая схема взаимодействия? нужен RADIUS-сервер? Как сам сайт "сообщит" роутеру, что этого клиента надо пропустить в интернет? Через запись в радиус-БД?

3) как при этом всём управлять сессиями? смотреть кол-во подключенных и т.д.?

 

Буду очень признателен за любые ответы!

Share this post


Link to post
Share on other sites

Советую использовать mikrotik hotspot либо что-нибудь из chilli на *wrt. Думаю, можно даже найти/написать что-то нативное под линукс - вопрос лишь в том, кто будет роутить абонентов и какие будут использоваться точки доступа.

Share this post


Link to post
Share on other sites

Советую использовать mikrotik hotspot либо что-нибудь из chilli на *wrt. Думаю, можно даже найти/написать что-то нативное под линукс - вопрос лишь в том, кто будет роутить абонентов и какие будут использоваться точки доступа.

Вот я и как раз хотел обратиться за подсказкой к знающим людям.

Мне бы понять как все это собрать в единый живой организм.

Я так понимаю, сам микротик может выступать и как роутер, и как wifi-точка. При этом за авторизацией может бегать на RADIUS-сервер (например, freeradius), поднятый на сервачке.

Сам радиус-сервер смотрит в БД на сессии, а эти сессии добавлять в БД уже непосредственно из PHP, как то так?

Share this post


Link to post
Share on other sites

Советую посмотреть на проект RadiusDesk. Он бесплатен + есть настройки для микротика, а самое главное - поддерживает Dynamic NAS, что очень хорошо, если у вас не статические IP адреса.

Edited by magnometik

Share this post


Link to post
Share on other sites

Я так понимаю, сам микротик может выступать и как роутер, и как wifi-точка. При этом за авторизацией может бегать на RADIUS-сервер (например, freeradius), поднятый на сервачке.

Сам радиус-сервер смотрит в БД на сессии, а эти сессии добавлять в БД уже непосредственно из PHP, как то так?

Да, в целом всё так. По вашим вопросам:

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

- для маленьких инсталляций можно обойтись без RADIUS-сервера

- смотреть подключенных пользователей можно в админке микрота (ip hotspot)

Если вам требуется готовое решение - велкам в личку.

 

Советую посмотреть на проект RadiusDesk. Он бесплатен + есть настройки для микротика, а самое главное - поддерживает Dynamic NAS, что очень хорошо, если у вас не статические IP адреса.

RadiusDesk уже год не щупал, но год назад у них работало всё немного через жо.

Share this post


Link to post
Share on other sites

У нас работает связка Mikrotik Hotspot + RadiusDesk. При подключении к Wi-fi у пользователя открывается внешняя страница авторизации (настраивается путём изменения файла login.html в директории Files на микротике). После ввода номера телефона скрипт записывает данные о пользователе в базу данных на MySQL(с неё берет данные RasiusDesk), пользователю отправляется через смс-шлюз пароль. Далее, когда он авторизуется, то открывается страница с рекламой и появляется интернет.

 

1) какие аппаратные средства стоит использовать? Микротик? посоветуйте, пожалуйста, модель

 

Мы используем MikroTik RB951-2n. Хотя сейчас дешевле и новее Mikrotik hAP.

 

2) какова общая схема взаимодействия? нужен RADIUS-сервер? Как сам сайт "сообщит" роутеру, что этого клиента надо пропустить в интернет? Через запись в радиус-БД?

 

Радиус сервер нужен. Авторизация по HTTP CHAP. Данные о пользователях пишутся "на лету" самописным скриптом прямо в БД.

 

3) как при этом всём управлять сессиями? смотреть кол-во подключенных и т.д.?

 

Смотреть количество подключенных можно напрямую из БД, т.к. радиус тоже пишет туда, соответственно и сессиями можно так рулить, либо ограничивать на микротике.

Edited by magnometik

Share this post


Link to post
Share on other sites

У нас работает связка Mikrotik Hotspot + RadiusDesk. При подключении к Wi-fi у пользователя открывается внешняя страница авторизации (настраивается путём изменения файла login.html в директории Files на микротике). После ввода номера телефона скрипт записывает данные о пользователе в базу данных на MySQL(с неё берет данные RasiusDesk), пользователю отправляется через смс-шлюз пароль. Далее, когда он авторизуется, то открывается страница с рекламой и появляется интернет.

А RadiusDesk уже научился делать авторизацию через FB?

Share this post


Link to post
Share on other sites

У нас работает связка Mikrotik Hotspot + RadiusDesk. При подключении к Wi-fi у пользователя открывается внешняя страница авторизации (настраивается путём изменения файла login.html в директории Files на микротике). После ввода номера телефона скрипт записывает данные о пользователе в базу данных на MySQL(с неё берет данные RasiusDesk), пользователю отправляется через смс-шлюз пароль. Далее, когда он авторизуется, то открывается страница с рекламой и появляется интернет.

А RadiusDesk уже научился делать авторизацию через FB?

 

Да, наконец то научились :)

Вот мануал

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.