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

Так как лень, как известно, двигатель прогресса и ручками заносить каждого пользователя было лень решил автоматизировать процесс посредством рассылки пары 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

 

Результат:

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

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

 

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

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

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

 

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

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

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

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

 

/tool  sms  inbox print   

 

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

 

/tool  sms  inbox remove 0

 

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

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 создаём новое задание, которое каждую минуту будет запускать этот скрипт.

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

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

Запись опубликована в рубрике Администрирование. Добавьте в закладки постоянную ссылку.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*

code