[Безопасность] Mikrotik, уведомление в телеграм об успешном входе в систему

Igor Mullin
3 min readAug 21, 2021

--

Роутер является устройством, которое не только организует домашнюю сеть, но и оберегает ее от неприятного внешнего воздействия. Если кто-либо получит доступ к вашему роутеру используя различные уязвимости, то можно получить большие проблемы или даже лишиться денег или приватности.

Статья является репостом с моего канала в дзене. Также не забывайте читать нас в других сервисах: Instagram канала и telegram канала (RU, EN, DE). Medium, LiveJournal, YouTube.

Умный дом также будет подвержен опасности, если нас взломают. Защитимся немного. Для начала будем получать уведомления о том, что кто-то залогинился. Есть много различных способов, но я выбираю всегда #telegram . Идею черпнул тут. Для понимания рекомендую прочесть мою статью. Там находятся ответы на вопросы про #id чата и токен. Начнем, перейдем в скрипты и создадим один. Настройки → скрипты → создать новый

Имя: Log2Telega
Policy: read,write, police, test
Source:
:local DeviceName [/system identity get name];
:local Time [/system clock get time];
:local Date [/system clock get date];
:local TelegramMessageText;
:global ParseLogAccountEndArrayID;
:local IDsEventsAccount [/log find where topics ~ “account”];
:local LenArrayIDs [:len $IDsEventsAccount];
:local StartArrayID [:find $IDsEventsAccount $ParseLogAccountEndArrayID];
:local EndArrayID ($IDsEventsAccount -> ($LenArrayIDs-1));
:if ($EndArrayID != $ParseLogAccountEndArrayID and [:tobool $ParseLogAccountEndArrayID] ) do={
:local StartArray [:find $IDsEventsAccount $ParseLogAccountLastRunID];
:for KeyArray from=($StartArrayID+1) to=($LenArrayIDs-1) do={
:local IDMessage ($IDsEventsAccount ->$KeyArray );
:set TelegramMessageText “$TelegramMessageText %0D%0A $[/log get number=$IDMessage time] — $[/log get number=$IDMessage message];”;
}
# START SEND TELEGRAM MESSAGE
:local BotToken “тут мы вводим наш токен для телеграмма. строго внутри кавычек”;
:local ChatID “тут мы пишем id чата. Это можем быть мы или -общественная группа, тогда будет — перед чатом”;
:local ParseMode “html”;
:local DisableWebPagePreview True;
:local SendText “\F0\9F\94\93 <b>$DeviceName: AUTH</b> $TelegramMessageText”;
:local tgUrl “https://api.telegram.org/bot$BotToken/sendMessage?chat_id=$ChatID&text=$SendText&parse_mode=$ParseMode&disable_web_page_preview=$DisableWebPagePreview";
/tool fetch http-method=get url=$tgUrl keep-result=no;
# END SEND TELEGRAM MESSAGE
}
:set ParseLogAccountEndArrayID $EndArrayID;
Comment: Пишем свои комментарии

Еще раз напоминаю что #токен и id берем по этой инструкции. Их необходимо вставить в соответствующие строчки. Скрин окошка куда вставляем #скрипт — ниже.

Следующим действием будет добавление нашего скрипта в распсание. Настройки → расписание → создать новый

Название: log2telega
Policy: read,write, police, test
On Event: /system script run Log2Telega
Comment: log2telega run every 1 min

Тут главное, чтобы после слова run стояло корректное название нашего скрипта. Сохраняемся и ждем, потом логинимся в #роутер и радуемся результату:

Конечно, такие действия позволят нам лишь немного обезопаситься и помониторить ситуацию, но не спасут полностью. Однако, вместе с работающим #firewall это уже что-то, и мы сможем успеть предпринять действия в случае нежданного проникновения.

А на этом все, подписываемся, ставим лайки, репостим… ну вы все и сами знаете…. Это и правда поможет статьям выходить чаще. И еще, среди подписчиков Дзена — скоро будет небольшая лотерея☺.

--

--

Igor Mullin
Igor Mullin

Written by Igor Mullin

I´m a Hardware and Software Engineer and a PhD. In my professional activity I focus on such things like smart home systems and electric development.

No responses yet