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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now