Mikrotik telegram bot блокировка
К подключению резервного интернет канала дома каждый приходит по своим причинам, но некоторые устройства в умном доме требуют постоянного подключения к сети интернет, оперативность получения важных уведомлений напрямую зависит от стабильности подключения к тому же, как же мы узнаем, что интернет пропал, не имея резервного канала :)
Какой тип подключения выбрать в качестве резервного зависит только от желания, финансовой и технической возможности. Требования к скорости не большие и зависит от того, каким устройствам необходим постоянный доступ к сети. Если не использовать постоянный доступ для торрент обмена, то в качестве резервного канала можно использовать USB LTE модем с лимитированным трафиком.
Имеется MikroTik RB4011 с настройками:
- Основной интернет канал 100МБит, внешний IP, интерфейс ether1
- Резервный интернет канал 10МБит, интерфейс ether2
- OpenVPN подключение к внешней VPS, интерфейс vpn-ovpn
- Туннель 6to4 для IPv6 трафика, v6to4-tunnel
Необходимо при разрыве основного канала пустить весь трафик по резервному, переподключить VPN, погасить туннель 6to4 и прислать уведомление в телеграмм.
Настройка
Для удобства переименовываем названия портов ether1 и ether2 в ether1-wan-main и ether2-wan-reserv
Если IP адреса для основного и/или резервного канала прилетают по DHCP, то в настройках DHCP Сlient'а необходимо для каждого интерфейса выставить параметр Add Default Route - no .
Добавляем маршруты по умолчанию, маршрут основного канала будет иметь дистанцию (distance) 1, резервного 2:
где: gateway=100.99.88.1 - шлюз для основного канала, gateway=10.9.8.1 - шлюз для резервного канала. Неактивный маршрут резервного канала будет выделен синим цветом.
Для мониторинга состояния каналов будет задействована утилита Netwatch (Tools -> Netwatch), в качестве хостов наблюдения будут использованы DNS сервера Яндекс, адрес 77.88.8.8 будет использоваться для проверки работоспособности основного канала, 77.88.8.1 - для резервного.
Добавляем отдельные маршруты для проверяемых адресов, что бы проверка шла четко по определенному интернет каналу не зависимо от того через какой канал идет маршрут по умолчанию.
В Firewall (IP -> Firewall) добавляем запрещающие правила на прохождение пакетов к проверяемым адресам не через свой канал, на случай, если канал отсохнет, то маршрут использующий этот канал станет не активным и будет задействован текущий маршрут по умолчанию. Эти правила необходимо расположить выше правил разрешающих доступ в интернет.
Мониторинг и переключение каналов
Как говорилось выше, в качестве мониторинга будет использоваться утилита Netwatch . Настройка этой утилиты крайне проста, задается хост наблюдения и интервал через какое время необходимо выполнять проверку, при переходе наблюдаемого хоста из состояния Down в состояние Up выполняются скрипты с вкладки UP , при переходе из состояния Up в состояние Down выполняются скрипты с вкладки DOWN .
Для проверки основного канала в Netwatch добавляем (Tools -> Netwatch -> +).
- Host: 77.88.8.8
- Interval: 00:01:00
- Timeout: 1000
Каждую минуту происходит проверка хоста с IP адресом 77.88.8.8, как только происходит смена состояния из доступен в недоступен, то начинается обработка скрипта, описанного на вкладке DOWN. Комментарии:
Аналогичная ситуация происходит на вкладке UP при переходе хоста с IP адресом 77.88.8.8 из состояния Down в состояние Up.
Для проверки резервного канала в Netwatch добавляем (Tools -> Netwatch -> +).
- Host: 77.88.8.1
- Interval: 00:01:00
- Timeout: 1000
Действия в случае неполадок с резервным каналом аналогичные, как и для основного, не затрагивается только 6to4 туннель.
Сегодня я хотел бы рассказать о том, как реализовать отправку событий из Mikrotik в чат telegram.
Ни для кого не секрет, что Telegram, на данный момент, является самым быстрым мессенджером в мире, а мы все хотим получать оповещения о событиях максимально оперативно, отсюда и родилась идея данной статьи.
Первое, что нам нужно сделать – создать собственного бота telegram.
Делается это довольно просто:
- Находим в поиске аккаунт с именем @botfather
- Нажимаем на кнопку Start в нижней части экрана
- После чего пишем ему команду /newbot
- Потом отвечаем на 2 несложных вопроса:
Первый вопрос – имя создаваемого бота Test1splaBot
Второй вопрос – ник создаваемого бота (должен оканчиваться на bot) Test_1spla_bot
- В ответ получим токен нашего бота, в моём случае, это 153358077:AAF4qYdUNIcWfp-SLtduVR18DuzqtXwEQAs
Затем, нужно найти нашего бота в поиске по имени @Test_1spla_bot и нажать на кнопку Start, чтобы его запустить.
После этого нужно создать групповой чат в telegram.
Делается это довольно просто:
- Нажимаем “Next”.
- Указываем название нашего чата, например, “Test_1spla_support”.
- Приглашаем нашего бота в данный чат, напомню, найти его теперь можно по имени @Test_1spla_bot
Итак, к данному моменту у нас есть бот, он активирован и приглашён в наш чат. Но он молчит.
Для того, чтобы заставить его говорить необходимо:
Где XXXXXXXXXXXXXXXXXX – токен вашего бота
Находим на ней следующий текст:
ИД групповых чатов начинаются с минуса, именно этот id нам и нужен.
Токен бота: 153358077:AAF4qYdUNIcWfp-SLtduVR18DuzqtXwEQAs
ID чата, куда он должен писать: -175202495
Отличаются они только экранированием знака ? в URL.
По сути всё, скрипт отправки в чат готов и вы можете применять его в своих скриптах, в утилите NetWatch и многих других.
Если вы системный администратор или IT-директор, то у нас есть партнёрская программа с очень интересными предложениями по взаимовыгодному сотрудничеству.
С подробностями вы можете ознакомиться у нашего онлайн-консультанта, оставив контакты через форму обратной связи или позвонив по телефону (812) 425-12-19.
Если вам нужна помощь в настройке оповещений с оборудования или серверов, наши специалисты всегда готовы вам помочь.
Статью подготовил технический директор компании Первый Сервисный Провайдер Гавриш Артём.
Бесплатный чек-лист
по настройке RouterOS
на 28 пунктов
управление с телеги
На днях сдружил свои железки с телеграм, научился запускать скрипты и получать вывод..Подскажите, есть ли возможность отправлять именно команды (как в терминале) и получать ответ например в переменную? ну а дальше думаю смогу уже прикрутить и к телеге Я реализовал управление с андройд-смарфтона виджетами termux. Но работает только в пределах локальной сети, так как нет белого айпи.
• Кому интересно управление микротиками с помощью телеграмм, решил написать простенький мануальчик. Я и сам недавно только научился, протестировал, а теперь вот делюсь опытом, еще и телеграмм апиай официально разблокировали, так что вообще красота..
Управление сводится к отправке в группу телеграмм команды для определенного тика (в команде присутствует имя, необходимого для запуска скрипта), микрот в свою очередь по шедулеру выполняет чтение поступившей для него команды, и запускает заранее созданный скрипт.
Скриптов можно придумать сколько угодно на все случаи жизни, вот несколько примеров с описанием и содержимым:
telega_test
ping
log_print
wol_my_pc - включает комп, который подключен напрямую к данному микротику и мак адрес которого прописан в скрипте
для активации отправляем: /mikrotik wol_my_pc
wol_my_pc (поменяйте название интерфейса и мак адрес на свои)
telega_clean - скрипт очистки глобальной переменной content, часто помогает при отказе работы главного скрипта, в очищенном виде переменная content содержит <"ok":true,"result":[]>данный скрипт запускается вручную, либо по шедулеру (например раз в час)
Необходимо узнать токен бота и айди чата для использования скриптов.
Прошивка микротика v6.46.3 или выше. Если у вас ниже, то гарантии нет что будет работать.
Для корректной работы не одного, а нескольких тиков в одной группе телеграмм, перед каждой командой пишется название тика (Identity) которому адресована команда либо "all", чтобы команда выполнилась на всех тиках. Чтобы не держать в голове все имена и команды, можно добавить шаблоны в свою группу телеграмм через бота BotFather, для этого пишем ему (БотФазеру) команду:
выбираете своего бота и пишите список команд по шаблону: tik1_wol_my_pc - tik1 my pc ontik1_telega_test - proverka svyazi tik1
tik1_log_print_10 - last logs
tik1_ping - ping addr or ip
tik2_log_print_10 - last logs
tik2_wol_my_pc - tik2 my pc on
tik3_log_print_10 - last logs
tik4_log_print_10 - last logs
all_log_print_10 - last logs
Буквы обязательно все латинские и маленькие, а также левая часть (сама команда) не содержит пробелов.
Теперь, нажав на кнопку "/" в своём чате с ботом, всегда можно посмотреть, какие команды (скрипты) и на каких устройствах нам доступны.
Бота создали, группу создали, добавили туда бота, токен бота записали, айди чата группы записали, скрипты подготовили, теперь создаем скрипт, например с именем - Telegram
это будет основной скрипт для чтения телеграмм на наличие новых команд
Запихиваем в него содержимое (не забывая поменять айдишки в первых двух строках на свои):
Носки бывают чрезвычайно полезны. Сейчас мы расскажем, как правильно настроить их на роутере MikroTik. Итак, поговорим о SOCKS?
Предисловие
Установление соединения
Когда клиент хочет получить доступ к внешнему ресурсу, который блокирует Firewall, то соединение происходит следующим образом:
- Клиент подключается к proxy-серверу (обычно используется TCP порт 1080);
- Сервер проверяет список доступа и выясняет, есть ли у клиента права на доступ к внешним ресурсам;
- Если клиент имеет такие права, то proxy-сервер пересылает пакет на внешний ресурс, к которому хочет получить доступ клиент;
- Сервер создаёт сессию между клиентом и внешним ресурсом и между ними начинается обмен пакетами верхнеуровневых протоколов. После установления соединения можно передавать и UDP пакеты.
В настоящее время, MikroTik поддерживает SOCKS версии 4 при указании внешнего ресурса он понимает только IP-адрес. Версия SOCKS4a — может резолвить доменные имена внешних ресурсов. Более поздняя версия протокола — SOCKS5 включает расширенную поддержку аутентификации, подключение по UDP и IPv6.
На сегодняшний день, протокол SOCKS5 пока не поддерживается на устройствах MikroTik. Хотя пользователи очень просят разработчиков включить поддержку SOCKS5 в новые релизы RouterOS вот уже 8 лет. Поэтому при работе с SOCKS совместно с MikroTik, клиент также должен иметь 4 версию.
Необходимо очень тщательно настроить Firewall’ьные правила и список доступа SOCKS чтобы исключить нежелательный доступ извне. Как правило, скомпрометированные через уязвимости SOCKS устройства, используются для рассылки спама и фишинговых писем.
Перейдём к настройкам SOCKS-сервера на MikroTik:
Параметры настройки через WinBox
Параметры настройки SOCKS сервера в WinBox находятся в IP → Socks:
Как только вы поставите галочку напротив Enabled сервер станет активным. Далее, необходимо настроить списки доступа, для этого нажимаем на кнопку Access:
Активные SOCKS сессии, проходящие через сервер можно отслеживать на вкладке Connections
Параметры настройки через Termial
Для того, чтобы настроить SOCKS через терминал нужно также сначала настроить параметры сервера. Настройка проводится через команду ip socks set , доступы следующие параметры:
- enabled — включает функционал SOCKS proxy-сервера (yes — включен, no — выключен);
- port — номер порта, на котором сервер будет слушать SOCKS запросы. По умолчанию — 1080
- connection-idle-timeout — время, через которое будут сброшены неактивные сессии (по умолчанию — 2 минуты (2m));
- max-connections — максимальное число одновременных подключений (по умолчанию — 200)
Посмотреть текущие или настроенные параметры можно командой:
Далее необходимо настроить правила, по которым будет осуществляться контроль доступа к серверу SOCKS. Для этого вводим команду /ip socks access set , доступны следующие параметры:
- action — действие, которое будет предпринято при соответствии критериев данного правила:
- allow — разрешить прохождение трафика по данному правилу;
- deny — запретить прохождение трафика по данному правилу.
Практическое применение
Но одному нашему сотруднику обязательно нужно иметь доступ к данному ресурсу. Поэтому сисадмин открывает активирует SOCKS сервер и настраивает список доступа.
Та же самая настройка через терминал выглядит следующим образом:
Готово, теперь дело за клиентом, который должен настроить сотрудник. Покажем настройку на примере браузера Google Chrome. Открываем Settings → Advanced → Confidentiality and Security, крутим в самый низ до пункта System и выбираем Proxy settings. В появившемся окне выбираем LAN settings → ставим галку напротив Use a proxy server for your LAN и заходим в Advanced. В появившемся окне вбиваем параметры нашего SOCKS сервера в строку Socks (в нашем случае 192.168.11.1 и порт 1080) и применяем настройки:
Послесловие
Данная статья носит исключительно образовательный характер и не ставит своей целью научить кого-либо обходить правила Firewall. Протокол SOCKS 4 устарел, не поддерживает аутентификацию и не может резолвить доменные адреса. В целях безопасности, мы не рекомендуем использовать этот протокол вообще и в том числе — настраивать его на MikroTik.
По умолчанию — сервер SOCKS на роутерах MikroTik отключен. Если Вы обнаружили, что он активирован, то это может быть признаком того, что Ваш роутер был скомпрометирован злоумышленниками. Об этом мы подробнее расскажем в следующих статьях.
Полезна ли Вам эта статья?
Пожалуйста, расскажите почему?
Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!
Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.
Читайте также: