[Alpha testing] MikroTik Management System

Здесь выкладываем скрипты

Насколько полезен данный сервис?

Очень полезный и удобный
8
73%
Сойдёт, хотя мог и получше сделать
2
18%
Бесполезный и ненужный сервис
1
9%
Что за отстой? Куда я попал?
0
Голосов нет
Верните Линуса!
0
Голосов нет
 
Всего голосов: 11
Аватара пользователя
Dragon_Knight
Модератор
Сообщения: 1661
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

18 янв 2017, 03:43

MikroTik Management System
Система удалённого управления устройствами на базе Mikrotik и сервиса Telegram.
Проект находится на стадии Alpha тестирования. Я, как автор, не несу никакой ответственности за любой возможный вред, причинённый данным сервисом. Использование сервиса означает, что Вы полностью берёте на себя ответственность за любые внештатные ситуации.

Возможности:
  • Выполнения скриптов на удалённом устройстве (Примеры: '/run home_ccr1009 reboot' | '/run home_ccr1009 wifi_off');
  • Выполнения произвольной команды на удалённом устройстве (Примеры: '/exe home_ccr1009 /system reboot' | '/exe home_ccr1009 :put [/system identity get name]');
  • Отправка произвольных сообщений от устройства (Не реализован пользовательский скрипт);
  • Поддержка неограниченного кол-во устройств на аккаунте;
  • Не требует наличия белого и статического IP;
  • Простая установка;

Регистрация устройства:
  1. Начать диалог с ботом @mikrotikmanagementsystem_bot;
  2. Зарегистрировать устройство (Например: '/reg home_1009');
  3. Получить ключ и скрипт установки системы (Ключ и скрипт необходимо хранить в тайне. Зная ключ можно перехватить управления устройством);
  4. Выполнить полученный код в терминале устройства (Код скачает и установит задание планировщика а так-же произведёт некоторую настройку системы);
  5. Начать управлять устройством;

Управление устройством:
  • Команда '/run ИМЯ_УСТРОЙСТВА ИМЯ_СКРИПТА' выполняет скрипт 'ИМЯ_СКРИПТА' на устройстве 'ИМЯ_УСТРОЙСТВА'. Скрипт должен быть создан самостоятельно. Скрипт должен возвращать результат своей работы через метод ':put', даже в том случае если результат не предусматривается, например ':put OK', при этом должна быть только одна точка вывода сообщений, т.е. несколько команд ':put' писать недопустимо (Ограничение RouterOS).
  • Команда '/exe ИМЯ_УСТРОЙСТВА КОМАНДА' выполняет команду 'КОМАНДА' на устройстве 'ИМЯ_УСТРОЙСТВА'. На устройстве команда копируется как временный скрипт, после чего выполняется, отсюда такие-же условия, как у команды '/run'.

Управление устройствами:
  • Команда '/reg ИМЯ_УСТРОЙСТВА' регистрирует устройство 'ИМЯ_УСТРОЙСТВА' и присваивает ему уникальный ID.
  • Команда '/unreg ИМЯ_УСТРОЙСТВА' удаляет устройство 'ИМЯ_УСТРОЙСТВА'.
  • Команда '/list' отображает список Ваших устройств.

Поддержка:
В случае нахождения багов или ошибок прошу писать в эту тему.



Помощь в ремонте и настройке оборудования MikroTik, Мытищи, Москва.
Дома: [RouterBOARD CCR1009-8G-1S-1S+] + [RouterBOARD cAP 2n] + [RouterBOARD Groove A-2Hn-32] + [D-Link ANT24-0800];
Работа 1: [RouterBOARD RB493G] + [MikroTik R52H] + [MikroTik CA493] + [D-Link ANT24-0800] + [RouterBOARD SXT G-2HnD];
Работа 2: [RouterBOARD RB2011UiAS-IN];
Резерв: [RouterBOARD RB450G];
Аватара пользователя
podarok66
Модератор
Сообщения: 3423
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

18 янв 2017, 09:55

Вот мне сразу стало интересно. Я провел эксперимент на смарте. И выявил интересную штуку. Если команду вводить руками - отрабатывает. Если копировать - пишет "Системная ошибка разбора команды" А я уж собрался десятка два команд накатать и потом просто копировать их при нужде прямо из чата. :-) Не прокатило. Все равно очень и очень интересный продукт.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
podarok66
Модератор
Сообщения: 3423
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

18 янв 2017, 16:09

Николай, смотри, какой ответ присылает устройство
Команда выполнена успешно. Ответ устройства:
''.

Так и задумывалось или где-то что-то потерялось?
И вопрос, на кой мне ключ? Его не надо никуда вставлять, так зачем он?


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
Dragon_Knight
Модератор
Сообщения: 1661
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

18 янв 2017, 17:20

podarok66 писал(а):Вот мне сразу стало интересно. Я провел эксперимент на смарте. И выявил интересную штуку. Если команду вводить руками - отрабатывает. Если копировать - пишет "Системная ошибка разбора команды" А я уж собрался десятка два команд накатать и потом просто копировать их при нужде прямо из чата. :-)

Интересно. Я сейчас добавлю в код отладку и попрошу Вас отправить пару таких команд (после 18:00). Найдём в чём дело :)

Выполнение команды это по сути создание временного скрипта, его выполнение и удаление. Отсюда скрипт должен что-то вернуть (методом :put, причём во всём скрипте должна быть только один такой вывод). На данный момент более правильный способ использования прямого ввода команд, это:

Код: Выделить всё

:local result; :local ping [ping count=10 interval=100ms 8.8.8.8]; :if ($ping = 10) do={:set result "ping ok";} else={:set result "ping error";}; :put $result

Но я подумаю как сделать команды без обязательного возврата результата :)

Ключ, это уникальный идентификатор устройства в системе. Если обратите внимание, то он используется и в установочном скрипте, и в скрипте главного планировщика. Пока ручной ввод его не требуется, но в будущем может пригодится :)



Помощь в ремонте и настройке оборудования MikroTik, Мытищи, Москва.
Дома: [RouterBOARD CCR1009-8G-1S-1S+] + [RouterBOARD cAP 2n] + [RouterBOARD Groove A-2Hn-32] + [D-Link ANT24-0800];
Работа 1: [RouterBOARD RB493G] + [MikroTik R52H] + [MikroTik CA493] + [D-Link ANT24-0800] + [RouterBOARD SXT G-2HnD];
Работа 2: [RouterBOARD RB2011UiAS-IN];
Резерв: [RouterBOARD RB450G];
Аватара пользователя
podarok66
Модератор
Сообщения: 3423
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

18 янв 2017, 20:15

Dragon_Knight писал(а):Я сейчас добавлю в код отладку и попрошу Вас отправить пару таких команд (после 18:00). Найдём в чём дело :)

Ты мне не выкай, пожалуйста. Чай не посетители, одно дело делаем. Если что, я Михаил. Шалопай, конечно, но без этого скучно жить... :-)
С копированием разобрался, там в смарте спереди лишние символы подставлялись. Все в норме, если их вручную удалить или аккуратно копировать.
Dragon_Knight писал(а):Отсюда скрипт должен что-то вернуть

Команды были абсолютно экспериментальные:

Код: Выделить всё

/exe podarok66 /queue simple set [find name=Down_bad] disabled=no

Код: Выделить всё

/exe podarok66 /queue simple set [find name=Down_bad] disabled=yes

Что он в этом варианте должен был вернуть, я не представляю...
В целом, афигенски удобненько выйдет иногда. Особенно с запуском скриптов. Мне иногда надо откуда-нить на домашнюю машинку попасть, включать ее надо через WOL, вот тут просто в смарте набрал короткую команду на запуск скрипта и уря. Ну а далее есть и Team Viewer в portable версии на флешке, тут уж я король))) .Короче, я всеми лапами за.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
Dragon_Knight
Модератор
Сообщения: 1661
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

18 янв 2017, 23:05

podarok66 писал(а):Команды были абсолютно экспериментальные:

Код: Выделить всё

/exe podarok66 /queue simple set [find name=Down_bad] disabled=no

Код: Выделить всё

/exe podarok66 /queue simple set [find name=Down_bad] disabled=yes

Что он в этом варианте должен был вернуть, я не представляю....


Если чисто по феншую, да и по всем правилам, то должно быть так:

Код: Выделить всё

/exe podarok66 :do {/queue simple set [find name=Down_bad] disabled=no; :put OK} on-error={:put ERROR}

Но нужно подумать, и наверное генерировать вставку do {} on-error={} самостоятельно...

ADD: Обновил. Теперь если пользовательская команда не содержит ручного вывода ":put", то скрипт пользователя встраивается в конструкцию вида: ":do {КОМАНДА;:put "OK";} on-error={:put "ERROR";};".
При этом возможность самостоятельного вывода не потерялась.

Так-же я заметил, что название твоего устройства = ник. Это не обязательно, т.к. имя устройства уникально только в рамках одного пользователя, поэтому для простоты набора можно указывать даже "home" или просто "1".
Скоро добавлю возможность редактировать имя устройства, а так-же добавлять описание для каждого из них.



Помощь в ремонте и настройке оборудования MikroTik, Мытищи, Москва.
Дома: [RouterBOARD CCR1009-8G-1S-1S+] + [RouterBOARD cAP 2n] + [RouterBOARD Groove A-2Hn-32] + [D-Link ANT24-0800];
Работа 1: [RouterBOARD RB493G] + [MikroTik R52H] + [MikroTik CA493] + [D-Link ANT24-0800] + [RouterBOARD SXT G-2HnD];
Работа 2: [RouterBOARD RB2011UiAS-IN];
Резерв: [RouterBOARD RB450G];
Аватара пользователя
algerka
Сообщения: 386
Зарегистрирован: 14 дек 2011, 12:31

19 янв 2017, 18:39

Dragon_Knight писал(а):MikroTik Management System
Система удалённого управления устройствами на базе Mikrotik и сервиса Telegram.


Николай, вы проделали большой труд.
Предыдущий ваш пример информирования через Телеграм возможно и будет интересен кому-то, хотя, на мой взгляд, информирование по эл.почте имеет больше плюсов. Ладно, он хоть не представляет большой угрозы.
Но тут, удаленное выполнение команд на маршрутизаторе!
Вы вообще понимаете какую огромную дыру, с множественными точками уязвимости, предлагаете?


Александр
Аватара пользователя
Dragon_Knight
Модератор
Сообщения: 1661
Зарегистрирован: 26 мар 2012, 18:21
Откуда: МО, Мытищи
Контактная информация:

19 янв 2017, 18:57

Например? Команды от бота до системы идут по https. Думаю сертификат телеграмма не вызывает сомнения.

Команды от системы до маршрутизатора идут пока по http, но в последствии будет самоподписанный сертификат.

Маршрутизатор принимает команды с определённого адреса. Пока я виду только два способа перехвата управляющих комманд:
1) Подмена dns записи хоста управления, что достаточно проблематично.
2) перехват http трафика, но проблема уйдёт при переходе на https.

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

Но если у Вас есть конкретные предложения по улучшению безопасности, я с радостью выслушаю их :)



Помощь в ремонте и настройке оборудования MikroTik, Мытищи, Москва.
Дома: [RouterBOARD CCR1009-8G-1S-1S+] + [RouterBOARD cAP 2n] + [RouterBOARD Groove A-2Hn-32] + [D-Link ANT24-0800];
Работа 1: [RouterBOARD RB493G] + [MikroTik R52H] + [MikroTik CA493] + [D-Link ANT24-0800] + [RouterBOARD SXT G-2HnD];
Работа 2: [RouterBOARD RB2011UiAS-IN];
Резерв: [RouterBOARD RB450G];
Аватара пользователя
algerka
Сообщения: 386
Зарегистрирован: 14 дек 2011, 12:31

19 янв 2017, 19:50

Как осуществляется связь и передаются данные мы с вами можем только догадываться. Возможно это еще точки уязвимости.
Я имел в виду более простые вещи:
с чего у вас такая уверенность что доступ к вашему аккаунту телеграм будет только у вас? вы исключаете возможность что у вас могу украсть телефон или вы его не можете потерять?
а если взять во внимание все большую популярность вирусов которые получают доступ к телефону ?
а вы, как автор бота, разве не можете запустить что-то на чужом маршрутизаторе где стоит ваш скрипт ?
или представьте себя на месте коллеги администратора, который устроился на работу где стоит микротик, и на котором не порядочный предыдущий админ оставил такую лазейку, через которую он может гадить. ведь если вы видите микротик первый раз в жизни, вряд-ли первым делом полезете смотреть какие на нем скрипты запускаются.
И таких аргументов еще много.
Ни в коем случае не хочу вас обидеть, но пользы от вашего предложения меньше чем оно может принести вреда. Вы же прекрасно понимаете что основные пользователи этого скрипта это начинающие администраторы, которые не особо задумываются о последствиях.
Все самое большое зло в мире было сделано из лучших побуждений :(


Александр
Аватара пользователя
podarok66
Модератор
Сообщения: 3423
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

19 янв 2017, 19:53

algerka писал(а):Вы вообще понимаете какую огромную дыру, с множественными точками уязвимости, предлагаете?

Спорить не буду, я в уязвимостях дуб дубом. Но исходя из жизненного опыта скажу, самая большая дыра сидит за столами в офисах. Вот там ничем не прикрыть.
Микротик используют частники и организации малого и реже среднего звена. Особых секретов там нет. Доступ осуществляется через личный смарт, проще всего защитить смарт. Уже в ходу и отпечатки пальцев, на стадии какого-то бета-супертеста по-моему, но даже у меня смарт с этой фишкой. Кроме того, например у меня на телефоне есть такая фича, как "Второе пространство". Можно в повседневной жизни пользоваться им, и только в приложениях с использованием доступа использовать основное. И попробуй тут с ходу влезь.
Меня Николаева работа уже сейчас выручает, а секреты не для меня.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить