Организация HotSpot на оборудовании MikroTik с авторизацией через SMS

24118d9fcff14c89b3aaead3ede9fd0a.png

До недавнего времени бюджетный спутниковый доступ в интернет был исключительно ассиметричным (запрос проходил по наземным сетям связи, ответ «падал с неба»). Сейчас же одна известная трёхцветная кампания предлагает двунаправленный комплект по вполне демократичным ценам. Область применения, в первую очередь, для организации доступа в сеть в местах, куда прокладка наземной линии связи либо невозможна, либо слишком дорога.
Заказчиком была поставлена задача обеспечить доступом в Интернет охотбазу, расположенную в 60 километрах от города. Выезд на место показал наличие сотовых сетей, но 3G там только декларировался значком на дисплее телефона, а по факту — отсутствовал совсем. Попытка договориться с ОпСоСами о пробросе оптики от базовой станции, видневшейся вдали, привела к коммерческому предложению в 700 тысяч рублей за установку и 69 тысяч в месяц абонплаты за канал, что не могло не радовать. В тяжких раздумьях вбил в поисковую строку «Спутниковый интернет» и, о чудо, понял, что это — спасение.



Для реализации проекта было закуплено:
1) Комплект для приёма спутникового интернета — 50 000,00 руб.
2) ИБП CyberPower UT450EI — 4 500,00 руб.
3) Маршрутизатор Mikrotik RB951G-2HnD — 3 850,00 руб.
4) Монтажная мелочь — 1 500,00 руб.
5) USB-модем — валялся в ящике стола.
Процесс монтажа и настройки комплекта описывать не буду, ибо он мало чем отличается от монтажа обычной телевизионной тарелки и ресивера.


Приёмник имеет 10/100 RJ-45, который мы подключаем к маршрутизатору. Процесс настройки HotSpot-a описан во многих источниках, я делал по вот этому мануалу.
Ну, а дальше — самое интересное. Так как лень, как известно, двигатель прогресса и ручками заносить каждого пользователя было лень решил автоматизировать процесс посредством рассылки пары Login/password через SMS.


Сначала необходимо скачать и установить на Mikrotik пакет user-manager. Сразу после перезагрузки панель управления будет доступна по адресу http://IP.of.you.router/userman
Login: admin без пароля. Немедленно меняем. Для работы RADIUS сервера на Mikrotik создадим виртуальный маршрутизатор. Открываем терминал и вводим


/tool user-manager router add customer=admin disabled=no ip-address=127.0.0.1 name=virtual shared-secret=123456789

Результат


9ca666867b444be7a916b1e6f9566a28.png

Создадим профиль trial1


806ca3222dc94aa480b75ed53500e139.png

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


Далее настраиваем профиль HotSpot-a на работу с RADIUS


25dac98c57cd4f0aad30030bf7165367.png

И сам RADIUS сервер маршрутизатора.


541b767d005f48fd9a77742a74052374.png

Добавляем в самый верх NAT таблицы правило


/ip firewall filter add chain=input comment="allows user manager to work with local hosts" src-address=127.0.0.0/24

9e8643f94810439ea60384cc293240bf.png

На этом настройка сервера закончена. Приступаем к железной части. В USB-разъем втыкаем модем, убеждаемся, что маршрутизатор его видит. System →Ports


ac4e52a6be3c40b5a4806da34d1e4d4b.png

Устанавливаем Secret, включаем режим приёма сообщений. Tools→SMS


96f7574c98b94809be0a6eab76e173dc.png

Отправляем тестовое сообщение на номер модема, убеждаемся, что оно принято


/tool  sms  inbox print   

Удаляем тестовое сообщение


/tool  sms  inbox remove 0

Добавляем скрипт обработки сообщений. System→Scripts


b06d2297f0994be2a4be751559a1272b.png

Code


/tool  sms  set receive-enabled=yes
:local smsPhone
:local smsMessage
:local logMessage
delay 2;

:foreach i in=[/tool  sms  inbox find] do={
:set smsPhone [/tool  sms  inbox get $i phone];
:log info $smsPhone
:local date [/system clock get time]
:local hour [:pick $date 0 2]
:local min [:pick $date 3 5]
:local sec [:pick $date 6 8]
:local pass 27394
:set pass ($hour * $min * $sec)

:if ($pass = 0) do {:set pass 6524}

#:log info $pass
:set logMessage "$date. Get SMS. Genegating $smsPhone->$pass"

/tool user-manager user remove [/tool user-manager user find username=$smsPhone]
/tool user-manager user add customer=admin disabled=no username=$smsPhone password=$pass shared-users=1 phone=$smsPhone
/tool user-manager user create-and-activate-profile  customer=admin profile=trial1 $smsPhone

:set smsMessage "Login: $smsPhone Password: $pass"
:log info $smsMessage

:if ([:len $smsPhone]>10) do {
/tool sms send usb1 $smsPhone message="$smsMessage"
}
/tool sms inbox remove $i
delay 10
#
delay 1;
}

System→Sheduler создаём новое задание, которое каждую минуту будет запускать этот скрипт


dc21fd8606d04ad9b37455a197d89893.png

Скачиваем с маршрутизатора стартовую страничку хотспота, внедряем в неё информацию о номере, на который нужно отправить SMS


accdfdc9319142619a61b6018fae53c4.png

Проверяем работу системы.
Вот, собственно, и всё. Сделано за 15 минут на коленке, но работает, сильно не пинайте.


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

Комментарии (0)

© Habrahabr.ru