Страница 1 из 1
сообщение при подключении к VPN
Добавлено: 23 янв 2018, 11:35
playful2017
добрый день, подскажите пожалуйста как реализовать,
я хочу сделать информирование, о подключении клиента к vpn, через e-mail.
1.JPG
первая команда не выводит вообще никакого результата(хотя подключение есть)
вторая команда выводит, но при добавлении в скрипт и выполнении его, приходит не данные а пустое сообщение.
скрин скрипта
2.JPG
так же на просторах интернета нашел код, но у меня он не работает, и разобрать синтаксис я пока не могу
Код: Выделить всё
:local email "ваш_адрес_почты"
##### Тело скрипта
/tool e-mail send to=$email subject="Пользователь $user подключился к VPN" body="Пользователь $user подключился по $[/ppp active get [/ppp active find where name=$user caller-id=$"caller-id" address=$"remote-address"] service] в $[/system clock get time].\r\nIP-адрес клиента - $"caller-id".\r\nИнфо об IP клиента - http://apps.db.ripe.net/search/query.html?searchtext=$"caller-id""
Re: сообщение при подключении к VPN
Добавлено: 23 янв 2018, 13:16
Chupaka
playful2017 писал(а): ↑23 янв 2018, 11:35
первая команда не выводит вообще никакого результата(хотя подключение есть)
У вас переменные $user и $"caller-id" глобальные и заполнены корректными данными?
playful2017 писал(а): ↑23 янв 2018, 11:35
вторая команда выводит, но при добавлении в скрипт и выполнении его, приходит не данные а пустое сообщение.
Она выводит данные в терминал побочно, сама же команда должна лишь присваивать переменной значение. А значение там своеобразное будет - вы внутренние идентификаторы так получите.
playful2017 писал(а): ↑23 янв 2018, 11:35
так же на просторах интернета нашел код, но у меня он не работает, и разобрать синтаксис я пока не могу
Код: Выделить всё
:local email "ваш_адрес_почты"
##### Тело скрипта
/tool e-mail send to=$email subject="Пользователь $user подключился к VPN" body="Пользователь $user подключился по $[/ppp active get [/ppp active find where name=$user caller-id=$"caller-id" address=$"remote-address"] service] в $[/system clock get time].\r\nIP-адрес клиента - $"caller-id".\r\nИнфо об IP клиента - http://apps.db.ripe.net/search/query.html?searchtext=$"caller-id""
Это предлагается в on-up запихнуть в профиле ppp? Какие данные вам в письме нужны? Начните с малого, добавляйте переменные, если работает:
Код: Выделить всё
:local email "ваш_адрес_почты"
/tool e-mail send to=$email \
subject="Пользователь $user подключился к VPN" \
body="Пользователь $user подключился по в $[/system clock get time]. IP-адрес клиента - $"caller-id"."
Доступные переменные можно глянуть вот тут:
https://wiki.mikrotik.com/wiki/Manual:P ... r_Profiles - в параметре on-up.
Re: сообщение при подключении к VPN
Добавлено: 23 янв 2018, 13:41
playful2017
Спасибо за разъяснение куда ставить скрипт
Код: Выделить всё
:local email "ваш_адрес_почты"
##### Тело скрипта
/tool e-mail send to=$email subject="Пользователь $user подключился к VPN" body="Пользователь $user подключился по $[/ppp active get [/ppp active find where name=$user caller-id=$"caller-id" address=$"remote-address"] service] в $[/system clock get time].\r\nIP-адрес клиента - $"caller-id".\r\nИнфо об IP клиента - http://apps.db.ripe.net/search/query.html?searchtext=$"caller-id""
Re: сообщение при подключении к VPN
Добавлено: 23 янв 2018, 14:26
Chupaka
Это значит, заработало, или это как будто был вопрос?..
Re: сообщение при подключении к VPN
Добавлено: 24 янв 2018, 08:01
playful2017
Chupaka писал(а): ↑23 янв 2018, 14:26
Это значит, заработало, или это как будто был вопрос?..
Заработало, спасибо за разъяснение куда вставлять скрипт=)
Re: сообщение при подключении к VPN
Добавлено: 28 сен 2018, 12:55
Vita077
Как отправить этим скриптом сообщение в 2 или более адреса? Цепочками адресов через , ; : с пробелами и без не получается.
:local email "адрес электронной почты"
##### Тело скрипта
/tool e-mail send to=$email subject="Пользователь $user подключился к VPN" body="Пользователь $user подключился по $[/ppp active get [/ppp active find where name=$user caller-id=$"caller-id" address=$"remote-address"] service] в $[/system clock get time].\r\nIP-$"caller-id""
Re: сообщение при подключении к VPN
Добавлено: 28 сен 2018, 13:33
Chupaka
Ну, если не получилось одной командой - всегда можно отправить несколькими
Код: Выделить всё
:local msg_subj "Пользователь $user подключился к VPN"
:local msg_body "Пользователь $user подключился по $[/ppp active get [/ppp active find where name=$user caller-id=$"caller-id" address=$"remote-address"] service] в $[/system clock get time].\r\nIP-$"caller-id"";
/tool e-mail
send to="email 1" subject=$msg_subj body=$msg_body
send to="email 2" subject=$msg_subj body=$msg_body
Re: сообщение при подключении к VPN
Добавлено: 28 сен 2018, 18:57
Vita077
у меня с таким синтаксисом не работает (RouterOS 6.39.3), видимо я логику не понимаю, скорее просто не знаю как... Работает скрипт, который я приводил выше. Правильно понимаю, надо ввести локальные переменные email 1 и email 2?
Re: сообщение при подключении к VPN
Добавлено: 28 сен 2018, 19:02
Chupaka
Нет, вместо email 1 и email 2 надо вбить ручками нужные email'ы. Что именно не работает? Что вы делаете, чего ожидаете и что идёт не так, как вы ожидаете? Телепатов тут, к сожалению, нет.
Re: сообщение при подключении к VPN
Добавлено: 01 окт 2018, 17:09
Vita077
Просто заменяю рабочий скрипт для одного email (приводил чуть выше) Вашим, с указанием двух адресов. В итоге ничего не происходит - в логах отображается только изменение профиля РРР, подключение/отключение vpn-клиента. В идеале хочется отправлять на 2 адреса, не хочу создавать второе подключение с отдельным профилем - как я понимаю, это очень даже "не по феншую". Ну и совсем было бы идеальным - отправлять сообщение не при переподключении клиента, а при смене его Caller ID.
Re: сообщение при подключении к VPN
Добавлено: 01 окт 2018, 17:25
Chupaka
Вы бы привели конкретный скрипт, который не работает, раз задаёте такие вопросы выше.
А как вы себе представляете смену Caller ID без переподключения?
Re: сообщение при подключении к VPN
Добавлено: 02 окт 2018, 06:49
Vita077
Поле "Caller ID" vpn-клиента - как правило IP-адрес с которого клиент подключается к серверу. Можно ли сделать так, чтобы сообщение отправлялось только при изменении этого значения? Получается скрипт надо немного усложнить с сохранением последнего IP-адреса и отправкой сообщения если он изменился на новый.
Скрипт же который у меня не работает - то что Вы давали чуть выше, слегка с укороченными инфо-сообщениями:
:local msg_subj "$user"
:local msg_body "$user подключился по $[/ppp active get [/ppp active find where name=$user caller-id=$"caller-id" address=$"remote-address"] service] в $[/system clock get time].\r\nIP - $"caller-id"";
/tool e-mail
send to="
[email protected]" subject=$msg_subj body=$msg_body
send to="
[email protected]" subject=$msg_subj body=$msg_body
Re: сообщение при подключении к VPN
Добавлено: 02 окт 2018, 10:59
Chupaka
Оказывается, подчёркивания в именах переменных просто так использовать нельзя
Попробуйте исправленный вариант:
Код: Выделить всё
:local "msg_subj" "$user"
:local "msg_body" "$user подключился по $[/ppp active get [/ppp active find where name=$user caller-id=$"caller-id" address=$"remote-address"] service] в $[/system clock get time].\r\nIP - $"caller-id"";
/tool e-mail
send to="[email protected]" subject=$"msg_subj" body=$"msg_body"
send to="[email protected]" subject=$"msg_subj" body=$"msg_body"
Caller-ID можно попробовать сохранять в комментарий к учётной записи. Это если их много...
Re: сообщение при подключении к VPN
Добавлено: 02 окт 2018, 11:32
Vita077
отправка писем в последнем варианте тоже не происходит...
С Caller ID - не критично, переподключения бывают редко, больше по причине отключения электроэнергии. В приоритете многоадресная отправка. Я правильно понимаю, в работающем скрипте можно добавить более 2 адресатов - просто указывать остальные с новой строки?
Re: сообщение при подключении к VPN
Добавлено: 02 окт 2018, 12:36
Chupaka
Отправка не происходит - а что происходит? В логе пусто?
Если "с новой строки" значит "скопировать полностью всю строку" - да, можно и так.
Re: сообщение при подключении к VPN
Добавлено: 02 окт 2018, 13:59
Vita077
прошу прощения, скрипт сработал, видимо удачный копипаст не получился при первой попытке. Благодарю Вас, очень помогли!
Re: сообщение при подключении к VPN
Добавлено: 03 окт 2018, 06:43
Vita077
в завершении, чтобы не плодить темы - данный скрипт, как я понимаю, можно применять в профиле PPP и для ppp-клиентов - соединений, поднятых при помощи usb-модемов. Интересует отправка на почту его локального адреса, полученного от оператора сотовой связи. Правильно понимаю, мне надо заменить в последней строке скрипта IP - $"caller-id"" на IP - $"local-address""?
Re: сообщение при подключении к VPN
Добавлено: 03 окт 2018, 07:39
Chupaka
Да, переменная local-address тоже доступна в скрипте, можно её использовать.
Re: сообщение при подключении к VPN
Добавлено: 20 авг 2020, 14:32
AlexPap
Добрый день.
Хотелось бы узнать, можно ли в профиле On Down: реализовать отправку uptime пользователя на почту?
Имеется ввиду - сколько пользователь работал (был подключен).
Re: сообщение при подключении к VPN
Добавлено: 20 авг 2020, 17:43
Chupaka
Добрый.
К сожалению, вызов скрипта происходит уже после отключения пользователя, поэтому "в лоб" не получится...
Жуткий костыль:
* выполняем в Терминале
(почему-то если просто ":global login" в скрипте - не работает
)
* в on-up пишем
Код: Выделить всё
:global login;
:set ($login->$user) ( [/system clock get date] . " " . [/system clock get time] );
* в on-down -
Код: Выделить всё
:global login;
:log info ( $user . " was logged in at " . $login->$user )
Т.е. при логине запоминаем время, при отключении его как-то используем...