ServerAdmin.ru
27.2K subscribers
193 photos
27 videos
9 files
2.5K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
▶️ На канале Артема Матяшова вышло новое видео - Пишем код на маршрутизаторе MikroTik. Ранее я уже упоминал этот канал. Можно смело подписываться, там все видео очень качественные и информативные.

В этом ролике речь идёт не только о Mikrotik. Артём рассказывает, как он автоматизировал управление светом на кухне с помощью API платформы умного дома от Ynadex и роутера Mikrotik. Он там прям много всего накодил в RouterOS.

В видео дана вся теория и полная реализация. Можно взять и повторить. Мне было интересно посмотреть. В голове постоянно крутятся мысли по автоматизации дома, но пока не доходят руки для реализации. Есть более насущные задачи.

У меня тоже есть в доме некоторая автоматизация с помощью Микротика 😄 Каждое утро он запускает медиасервер с помощью WOL. Свои тестовые сервера я тоже запускают по WOL, но в ручном режиме, когда это необходимо. К Mikrotik организован ограниченный доступ извне.

#видео
​​От компании Mikrotik давно не было новостей и новинок. Последняя рассылка была в апреле. Недавно выпустили очередной Newsletter, пометив его июльским. Там есть несколько интересных новинок, о которых расскажу.

Перед этим хочу поделиться информацией на тему покупки новых устройств. Было же объявлено, что компания Mikrotik прекращает продажу своего оборудования в РФ. На практике каких-то особых проблем с приобретением не возникло. В настоящий момент бюджетные микротики для дома можно купить в популярных сетевых магазинах типа dns, citilink или ozone. В наличие наиболее ходовые устройства есть. Менее популярные модели можно поискать на Avito или заказать на Aliexpress. Там тоже много всего в наличии. Те, кому нужны более крупные корпоративные закупки, пользуются услугами поставщиков, которые завозят устройства через Казахстан.

Теперь к новинкам:
Chateau LTE6-US - новая точка доступа для дома на основе WAN интерфейса через LTE. На борту мощный процессор, 5 гигабитных сетевых интерфейсов и современный LTE модем. Мне как раз домой такая штука пригодилась бы прямо сейчас. Но судя по описанию, этот продукт предназначен для рынка США. При этом по характеристикам он очень похож на Chateau 5G, но стоит в 2,5 раза дешевле. Не понял, почему так. Видеообзор.

RB5009UPr+S+IN - необычный девайс с пассивным охлаждением и PoE-in & PoE-out на всех 8-ми Ethernet портах. Имеет пассивное охлаждение и может быть смонтирован в стойку в количестве 4-х штук на 1U. То есть это операторское решение. Питаться может от трех разных источников одновременно: 2-pin коннектор на 48V, обычный блок питания через jack на 24V и через PoE-In на 57V. Если я правильно понял из описания, эта штука в первую очередь заточена на питание свитчей в стойках. Это её основное назначение. Видеообзор.

CSS610-8P-2S+IN - популярный формат свитчей из среднего ценового сегмента. Служит для подключения и питания различных сетевых устройств по стандарту 802.3af/at PoE-out. Имеет 8 гигабитных портов и 2 SFP+. Добротный POE свитч с управлением на базе SwitchOS Lite. Видеообзор.

CRS518-16XS-2XQ-RM - операторский свитч из высокого ценового сегмента. На борту 2 ❗️100G QSFP28 ports и 16 25G SFP28 ports. Видеообзор.

Я по прежнему остаюсь на 6-й версии RouterOS. Для 7-й ветки стала типичной картинка, когда выходит новая версия и через день сразу же к ней обновление. Какой-то стабильности и надежности в этой ветке до сих пор не видно. Так что пока жду.

Рассылка в виде pdf

#mikrotik
​​У меня было много заметок на тему бэкапа данных и ни одной за всё время существования канала на тему бэкапа настроек сетевых устройств. А тема-то важная. Настраивать какой-нибудь роутер с нуля с кучей правил firewall, qos, vpn и так далее та ещё морока. Потеря конфигурации обычно не фатальна, но очень неприятна.

Существует популярный Open Source продукт для бэкапа сетевых устройств - Oxidized. О нём рассказывали еще в 2017 году на MUM Russia (MikroTik User Meeting). Ссылка на презентацию. Как вы понимаете, Микротики он тоже бэкапит. Так что тема серьезная 😎. Список поддерживаемых устройств внушительный. Всё популярное присутствует, даже Eltex есть.

Oxidized написан на Ruby. Установка простая и типовая для Unix систем. Ставим сначала ruby, а потом через gem install всё остальное. Есть docker контейнер с примером файла docker-compose.yaml. Не буду сюда копировать, в репозитории всё описано прямо на главной. Искать не надо.

Oxidized состоит в виде службы, которая по ssh или telnet ходит на устройства и собирает конфигурации, и веб интерфейса для просмотра и управления всем этим делом. Хранить конфигурации программа умеет в том числе в GIT репозитории. Это позволяет удобно просматривать изменения между разными версиями конфигураций. Веб интерфейс очень простой (список устройств и конфигурации к ним), аутентификации нет, так что надо хотя бы за прокси ставить с basic auth.

Продукт старый и известный, так что настройка не будет представлять каких-то сложностей. В сети масса руководств по этой теме. Я знал аналог этой программы, написанный русскоязычными программистами в 2018 году - cBackup. У них была обзорная статья на хабре в то время. Программа функциональная, удобная, внешний вид хороший. Можете сами оценить на сайте. К сожалению, развития так и не получила и на текущий момент она устарела и есть проблемы с микротиками, начиная с какого-то обновления. Подключения по SSH не работают, бэкапы не делаются. Жаль, что продукт не получил развития. Я хотел его попробовать, но увидел, что обновлений нет, так что это не имеет смысла, даже если получится запустить.

А вы что используете для бэкапа сетевых устройств? Вариантов может быть масса, начиная от готовых больших систем (NOC Project) и заканчивая банальными скриптами с отправкой конфигураций на почту или заливкой на ftp.

❗️Чуть не забыл упомянуть, что Oxidized поддерживает интеграцию с известной системой мониторинга LibreNMS. С помощью этой интеграции сможете просматривать конфигурации устройств прямо в мониторинге. Подробности интеграции в руководстве LibreNMS.

Исходники - https://github.com/ytti/oxidized

#backup #network #mikrotik
▶️ На прошлой неделе делал подборку бесплатных обучающих материалов и обратил внимание, что нет вообще ничего на тему Mikrotik. Ни разу не попадалось никаких курсов в свободном доступе по этой теме. Решил поискать в интернете специально, но так ничего похожего на какой-то целостный курс или набор материалов не увидел. Делюсь тем, что нашёл.

🟢 Официальный канал Mikrotik. Там очень много видео, так что найти что-то по настройке не так просто. Надо сразу перейти в плейлисты и выбрать MikroTips. Это как раз обучающие видео по конкретной настройке какого-то функционала. Там же есть плейлисты со всех MUM. Это хоть и не инструкции, но всё равно хороший и качественный материал по теории настройки.

🟢 Канал сертифицированного тренера Романа Козлова - Mikrotik Training. Этот канал мне уже знаком. Смотрел в прошлом несколько вебинаров по интересующим меня темам. Сразу вспомнил вот этот - Передача маршрутов удаленным VPN-клиентам. Автор востребованные темы рассматривает, подробно описывая настройку. Есть чему поучиться.

🟢 Канал сертифицированного тренера Дмитрия Скоромнова
- курсы-по-ит.рф. Я знаю его лично и проходил очное обучение. На канале только отдельные уроки с его платных курсов. Каждый урок рассматривает какую-то узкую тему. Где-то только теория, где-то практика с настройкой устройства. Самих уроков выложено много.

🟢 На англоязычном канале The Network Berg есть полный курс подготовки к MTCNA, который, кстати, тоже проходит на английском языке. Там же в плейлистах советую обратить внимание на лист MTCNA - EVE-NG Setup. Там рассказывается, как развернуть тестовую лабу с микротиками на EVE-NG.

🟢 Также нашёл репозиторий на Github, где представлены русскоязычные материалы по основным темам из MTCNA на русском языке в текстовом виде.

Больше чего-то более ли менее целостного и похожего на обучение по Микротик я не нашёл. Если у вас есть что-то на примете, то поделитесь информацией.

#обучение #mikrotik
Хочу с вами посоветоваться по поводу решения одной задачи на тему Mikrotik и его мониторинга. Решение уже придумал и на стенде реализовал. Но может вы посоветуете что-то другое, что мне просто в голову не пришло.

Задача - настроить резервирование каналов на Mikrotik из двух провайдеров. Настроить мониторинг наличия интернета на каждом канале и оповещать о переключениях с основного канала на резерв и обратно. Устройств таких будет много.

Я долго прикидывал, как лучше сделать и решил вот так. Переключение каналов реализовал скриптом. Я много раз это делал, вполне надёжное и рабочее решение. Когда я упоминаю об этом, мне постоянно пишут, типа зачем тут скрипт, можно по-другому и т.д. Да, я знаю. Но мне нужно после переключения сбросить некоторые соединения, переподключить сразу VPN (гашу и поднимаю интерфейс) и настроить мониторинг этого дела. Скриптом проще всего.

Все логи Микротиков улетают на централизованный Syslog сервер, где стоит Zabbix. Он парсит лог и при обнаружении определённой строки в логе, которую пишет скрипт, понимает, что канал переключился. Триггер висит активным всё время, пока канал резервный. При переключении обратно триггер гаснет. Минус тут один. Так как лог парсит Zabbix Server, сработанный триггер висит на нём. Все Микротики добавлены на GEO карту, их неплохо было бы подсветить красным, когда нет основного интернета, но в данном случае не знаю, как это сделать.

Долго думал над тем, как реализовать проверку наличия интернета на каналах. Самое простое, что приходит в голову - пинговать внешние IP адреса. Почти на всех каналах они есть. Но показалось не очень надёжным решением. Иногда используются LTE модемы, где пинги извне заблокированы и это не настраивается. Иногда внешнего IP нет.

В итоге тоже реализовал скриптом. Просто раз в минуту запускаю скрипт с пингом публичных DNS адресов Яндекса через разные интерфейсы разных провайдеров. Результат пишу в лог, который улетает на сервер и там анализируется Zabbix.

Собрал всё это на стенде, погонял. Работает надёжно и стабильно. Меня ещё просили настроить мониторинг канала в интернет, так как бывает, что LTE сигнал через какое-то время очень сильно ухудшается. Когда происходит на него переключение, работать нереально. Тоже долго думал над этой задачей. Опять же, можно реализовать скриптом, но нужен какой-то один публичный Микротик, где будет запущен его встроенный сервер теста скорости. К нему можно подключаться скриптом, результат выводить в лог и анализировать. Других вариантов в голову не приходит.

#mikrotik #zabbix
​​В марте этого года Microsoft выпустила необычный продукт - бесплатный Open Source сканнер заражения RouterOS (Mikrotik) RouterOS Scanner. Он выполняет следующие проверки на устройствах:
версию системы и наличие CVE под неё
наличие запланированных задач
наличие правил переадресации трафика
наличие статических DNS записей в кэше
изменение стандартных портов у системных служб
наличие дополнительных пользователей
наличие подозрительных файлов на устройстве
наличие настроенных прокси

Как происходит типовое заражение Микротиков и почему выбраны именно эти проверки, подробно объясняется в блоге Microsoft.

Routeros scanner написан на Python и запускается просто:
# python3 main.py -i 192.168.88.1 -p 22 -u admin -ps pAsSw0rd
Перед этим, соответственно, надо склонировать репозиторий и установить зависимости:
# git clone https://github.com/microsoft/routeros-scanner
# pip install -r requirements.txt

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

Инструмент неплохой и кто бы что не думал о Microsoft, в целом это крупная компания, которая создала массу хороших продуктов или небольших утилит (calc.exe 😁, пользуюсь постоянно). Я себе поставил в WSL, мало ли, пригодится.

Прогнал через один из своих роутеров, получил совет изменить стандартный порт ssh 22 на какой-то другой. А ещё говорят, что это пустая затея. Сам я тоже чаще всего меняю, так как на нестандартный спам запросов всегда меньше. Но в общем случае, ssh порт и всё остальное всегда скрыто от общего доступа.

Исходники - https://github.com/microsoft/routeros-scanner

#mikrotik
​​Расскажу про технологию, которую возможно не все знают. Речь пойдёт про port knocking, который я иногда использую. Это очень простой способ защитить подключение к какому-то сервису через интернет.

Суть метода в том, что разрешающее правило на firewall создаётся после поступления определённой последовательности пакетов. Чаще всего в качестве такой последовательности выбирают icmp пакеты определённой длины. Но совсем не обязательно ограничиваться только этим. Тут можно придумать любую последовательность и использовать различные порты, протоколы, tcp флаги и т.д.

Вот простейший пример реализации port knocking на Mikrotik.

add action=add-src-to-address-list \
address-list=winbox_remote \
address-list-timeout=30m \
chain=input comment="icmp port knocking" \
in-interface=ether1-wan packet-size=144 protocol=icmp

Создаём правило в firewall, которое будет на 30 минут добавлять в список winbox_remote все ip, откуда придёт пакет размером 144 байта по протоколу icmp.

Теперь разрешим всем ip адресам из этого списка подключаться по winbox:

add action=accept chain=input \
comment="accept winbox_remote" \
dst-port=8291 in-interface=ether1-wan \
protocol=tcp src-address-list=winbox_remote

Важно поставить эти два правила выше блокирующего правила для input. Теперь достаточно выполнить с любого устройства ping:

ping 1.2.3.4 -l 116 -n 1
(размер пакета ставим 116, потому что 28 байт добавит заголовок)

И роутер откроет доступ к tcp порту 8291, чтобы можно было подключиться по winbox. Через 30 минут адрес будет удалён из списка и новое подключение будет сделать невозможно. По такому же принципу, можно сделать и закрывающее правило. Поработали, отправили определённую последовательность и очистили список winbox_remote.

Таким простым и нехитрым способом можно очень надёжно прикрыть какой-то сервис. Например, тот же rdp. Достаточно настроить port knocking на шлюзе, а пользователю дать батник, который будет сначала пинговать, а потом подключаться. Причём можно использовать более сложную последовательность действий из нескольких шагов. Подобный пример описан в статье. Я его реально применяю очень давно.

В Linux реализацию port knocking тоже настроить не сложно. Есть готовый софт для этого. Например, knockd. При желании, можно и вручную написать правила для iptables, если хорошо разбираетесь в них. Реализаций может быть тоже великое множество, в том числе с использованием списков ipset или более современных nftables. Тема легко гуглится и решается.

#mikrotik #security #gateway
Я долго это терпел, но не выдержал. Надоело то, что не грузятся аватарки в youtube. Для всех других сайтов обходился редким включением VPN, так как не часто хожу по запрещёнке. Но ютубом пользуюсь каждый день.

В итоге настроил:
 OpenVPN сервер на американском VPS.
 Подключил его к домашнему Микротику.
 Создал Address List со списком доменов, запросы к которым хочу заворачивать в VPN туннель.
 Промаркировал все запросы к этому списку.
 Настроил в routes маршрут через OpenVPN туннель для всех промаркированных запросов.

И о чудо, спустя почти год я постоянно вижу все картинки с ютуба.

Подробно весь процесс настройки показан вот в этом видео:

Wireguard + Mikrotik. Частичное перенаправление трафика
https://www.youtube.com/watch?v=RA8mICgGcs0

Единственное отличие — у автора уже RouterOS 7 и настроен WireGuard. Мне пока не хочется экспериментов с 7-й версией, поэтому я до сих пор везде использую 6-ю. А там поддержки WG нет, поэтому подключаюсь по OpenVPN.

#vpn #mikrotik
​​Для бэкапа сетевых устройств существует не так много бесплатных продуктов. Наиболее известным из них является Oxidized. Это Open Source проект, который можно запустить у себя. Написан на Ruby. Я подробно писал о нём в отдельной заметке, так что не буду повторяться.

Сегодня хочу рассказать о коммерческом проекте Unimus, у которого есть бесплатная версия для бэкапа 5 сетевых устройств. Программу написал тренер по Mikrotik из США Tomas Kirnak (презентация программы на MUM: видео и доклад в pdf). Написана Unimus на Java, так что работает практически на любой операционной системе. Я попробовал на Windows, скачав Portable версию.

Unimus имеет очень простой и приятный веб интерфейс, хороший функционал. Там не только бэкап, но и управление (групповые операции, обновление и т.д.). Разработан в первую очередь под корпоративный рынок и большие сети, так что там многое автоматизировано. У автора была сеть из 1500 устройств Mikrotik, для которых он и написал программу. Так что максимальная поддержка устройств этого вендора там была изначально, но сейчас список значительно шире. Поддерживает всё популярное сетевое оборудование: Cisco, Huawei, HP, Fortinet и т.д. Есть оповещения по email.

Понятное дело, сейчас покупать такое не имеет никакого смысла, да и технически невозможно, хотя по мировым меркам цена очень скромная. Тем не менее, бесплатная версия нормально работает. Я без проблем запустил и забэкапил тестовый микротик. Не надо ни разбираться в установке, ни в настройке. Достаточно запустить, добавить устройство, настроить бэкап. Всё максимально просто и понятно.

Сайт

Другие варианты бэкапа микротиков:
- Oxidized
- Rancid
- eNMS
- Backup по SSH +diff
- Бэкап настроек на ftp сервер
- Отправка бэкапа настроек по email

#backup #mikrotik
​​Последнее время перестал следить за новостями Mikrotik, так как их устройства существенно подорожали, да и с наличием не всё так хорошо, как раньше. Хотя в целом все ходовые модели есть и при желании купить можно. Я знаю компании, которые по прежнему их закупают и активно используют в своей инфраструктуре.

Но мимо этой новости не смог пройти мимо. Для легендарной версии беспроводного роутера RB2011, который продаётся как раз с 2011 года практически в неизменном виде, вышло долгожданное обновление за ту же цену! Но при этом производительность в 4 раза выше, плюс другие полезные изменения. Я впервые впечатлился микротиками как раз при знакомстве с этим устройством. Он отлично подходил в роли шлюза для небольшого офиса и загородного дома, либо в качестве точки доступа, объединённой в единую сеть с помощью CAPsMAN.

На его замену за те же самые $129 выпустили L009UiGS-2HaxD-IN. Основные особенности этой модели:

Двухядерный ARM процессор и 512 мегабайт оперативной памяти с пассивным охлаждением всего этого хозяйства. Это примерно в 4 раза мощнее старого процессора mips.
Полноценный USB 3.0 порт, который можно использовать для LTE модема или внешнего хранилища. Это хранилище могут использовать контейнеры, работа которых поддерживается в RouterOS 7. Можно, к примеру, запустить контейнер с Pi-Hole или Adguard и резать рекламу, либо какую-то сетевую хранилку запустить, или даже простенький сайт захостить.
Все порты гигабитные. Со 2-го по 8-й подключены в единый свитч чип суммарной ёмкостью 2.5G. Первый порт обрабатывается напрямую процессором.
Есть отдельный консольный порт для управления, spf порт (поддерживает 2.5G).
Устройство может быть запитано по PoE через первый порт, а если питается от своего блока питания, то может выдать PoE-Out на 8-м порту.
Дизайн корпуса позволяет разместить 4 устройства в серверную стойку и занять 1U.
Есть поддержка Wi-Fi 6 на частоте 2.4 GHz, 5 GHz почему-то нет 🤷‍♂️ и это портит всё впечатление.

⇨ Обзор: https://www.youtube.com/watch?v=rIxkkNxsEhs

Устройство классное за свои деньги. В первую очередь в качестве шлюза. Аналогов нет и пока не предвидится. Странно, что за столько лет никто не попытался зайти в этот же сегмент и составить конкуренцию Микротикам. Часто называют Zyxel с серией Keenetic, но это всё равно не то. Функционал и удобство управление заметно хуже.

#mikrotik
​​Мне подсказали интересную программу для управления сетевыми устройствами — Mupsbox. Вышла она в 2019 году и изначально поддерживала только микротики. Сейчас поддерживает помимо него остальных популярных вендоров (Cisco, HP, Dlink, Huawei и т.д.). Привлекла она меня в первую очередь тем, что бесплатная версия имеет хорошую функциональность, которая позволяет полноценно использовать программу.

🟢 Основные возможности Mupsbox:

Управление сетевыми устройствами.
Бэкап, восстановление, сравнение архивов и конфигураций.
Подсчёт трафика.
Syslog сервер для сбора логов.
Функциональность HotSpot для доступа в сеть.

Mupsbox представляет из себя приложение под Windows с типовым установщиком. База локальная, хранится в firebird. Выглядит немного непривычно, потому что какого-то стандарта для такого рода приложений нет, но я довольно быстро установил и разобрался, немного подсмотрев инструкцию.

🔴 Ограничения бесплатной версии:

Добавление устройств и управление без ограничений.
Бэкап только 10 устройств.
Подсчёт трафика только для 3-х устройств, хранение статистики — неделя.
Syslog сервер только для 1 устройства, хранение лога — неделя.
Hotspot для одного устройства и только 5 аутентификаций в сутки.

Программа состоит из основного приложения и набора служб Windows, которые настраиваются и запускаются по необходимости. Отдельная служба ftp, sftp, tftp для сбора логов, отдельная для syslog сервера, отдельная для web интерфейса и т.д. Программа умеет отправлять оповещения по email или telegram.

Стоимость платных лицензий невысока. Разработчики из России, и тут есть компания, которая готова их продавать. Все цены и контакты есть на сайте. Даже бесплатная версия позволяет добавлять устройства без ограничений, что само по себе уже удобно, если нет никаких других программ для этих целей. Будет всё в одном списке с возможностью посмотреть основную информацию и быстро подключиться к устройству. Туда можно и любые Linux серверы добавлять по SSH, но я не совсем понял, для чего это может быть нужно.

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

Сайт / Обзор / Telegram группа

#network #mikrotik #backup
​​Некоторое время назад у Mikrotik вышли обновления long term прошивки 6-й версии RouterOS. Первое было в мае, второе в июле. До этого более 1,5 лет не было обновлений. И при этом там почти нет значительных изменений или латания каких-то дыр. Более того, описания этих двух обновлений почти совпадают, а в датах выхода, которые видно через интерфейс роутера, вообще ошибка. Одна и та же стоит для обоих версий.

Я даже как-то раз полгода назад специально проверял, не было ли long term обновлений. Было странно, что так долго нет обновлений. Раньше они регулярно выходили. Думал, что это у меня какие-то проблемы, или доступ к серверу обновлений ограничили. Но ничего этого не было. Версия CHR у меня тоже нормально работает, лицензия активна.

С одной стороны это говорит о том, что развитие 6-й версии фактически завершено. А с другой о том, что и дыр никаких за это время обнаружено не было, так что в обновлениях не было необходимости.

Как по мне, так это отлично для сетевых устройств. Чем меньше там дыр, обновлений и нововведений, тем лучше. Настроил один раз и забыл. При этом лично мне нововведения 7-й версии не нужны. Так что все устройства Mikrotik под моим управлением до сих пор на 6-й версии. Обновлять не планирую, пока не объявят прекращение поддержки этой версии.

#mikrotik
▶️ Посмотрел на днях видео, которое меня привлекло в первую очередь своим названием:

Голосовое управление оборудованием Mikrotik: от фантазий к реальности

Не могу сказать, что мне это было сильно интересно или полезно, но для общего развития знать не помешает, насколько сейчас продвинулись технологии голосового управления.

А подвинулись они до такой степени, что сейчас практически любой, кто умеет работать с Linux, может настроить распознавание голосовых команд и выполнять какие-то действия. Это в случае использования чьих-то наработок. Если строить свою логику, то придётся немного программировать на одном из популярных языков программирования. Bash тоже сойдёт, если что.

В выступлении автор рассказывает, как он с помощью колонки Алиса, сервиса Яндекса (если я правильно понял, то он бесплатен, если у тебя колонка) настроил выполнение некоторых команд на домашнем Mikrotik: включение гостевой wifi сети, отключение интернета детям и другие штуки.

В данном случае Микротик здесь постольку-поскольку, потому что реально выполняется подключение по SSH и выполняется заскриптованная команда. То есть это универсальный вариант запуска любых команд по SSH.

Я сам не фанат какой-то автоматизации в доме. Ничего умнее термостата тёплого пола и gsm модуля для управления котлом у меня нет. Все кнопки физические, везде протянуты провода. Я даже wifi не планирую использовать, так как у всех и так море интернета в смартфонах, а все рабочие места проводные. Пока необходимости в wifi в новом доме не возникло ни разу.

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

#видео #mikrotik
​​Несмотря на то, что Микротики стало сложнее купить, да и стоить они стали больше, особых альтернатив так и не просматривается. Я сам постоянно ими пользуюсь, управляю, как в личных целях, так и на работе. Мне нравятся эти устройства. Очень хочется продолжать ими пользоваться. У меня и дома, и на даче, и у родителей и много где ещё стоят Микротики.

Я когда-то писал про полезный ресурс для Mikrotik - https://buananetpbun.github.io. Там была куча скриптов, утилит, генераторов конфигов для различных настроек. Я им иногда пользовался. Там сначала дизайн поменялся, стало удобнее, появились запросы доната. На днях зашёл, смотрю, а там всё платное стало. Из открытого доступа почти всё исчезло.

Сначала решил через web.archive.org зайти, посмотреть, что там можно достать из полезного контента. Перед этим попробовал поискать по некоторым ключевым словам похожие ресурсы. И не ошибся. Сразу же нашёл копию сайта, когда он был ещё бесплатным. Так что теперь можно пользоваться им:

https://mikrotiktool.github.io

Основное там - большая структурированная база скриптов для RouterOS. Помимо прям больших и сложных скриптов, там много и простых примеров по типу блокировки сайтов с помощью блокировки DNS запросов, с помощью Layer 7, блокировка торрентов и т.д.

Помимо скриптов там есть генераторы конфигов, которые помогут выполнить настройку устройства. Например:
MikroTik Burst Limit Calculator - помогает рассчитать параметры burst при настройке простыл очередей.
Port Knocking Generator with (ping) ICMP + Packet Size - простенький генератор правил firewall для настройки Port Knocking.
Simple Queue Script Generator - генератор конфигурации для простых очередей.

В общем, там много всего интересного. Если настраиваете Микротики, покопайтесь. Можете найти для себя что-то полезное.

#mikrotik
​​В устройствах Mikrotik есть очень простой способ анализа любого трафика, проходящего через него. Вы можете весь или только выборочный трафик отправить в Wireshark, запущенный на любой машине. Делается это с помощью штатного инструмента, который располагается в Tools ⇨ Packet Sniffer.

Чтобы им воспользоваться, необходимо на любом компьютере в локальной сети запустить Wireshark с фильтром udp port 37008 на локальном сетевом интерфейсе. В самом Mikrotik надо открыть в указанном разделе настройки, вкладку General можно не трогать. На вкладке Streaming поставить галочку Enabled, указать IP адрес машины с Wireshark и порт 37008. На вкладке Filter можно конкретизировать, какой именно трафик будем отправлять. Если не настроить фильтр, то отправляться будет весь трафик. После настройки там же запускаем сниффер, нажав Start.

После этого идём в Wireshark и наблюдаем там весь трафик с Микротика. Очень просто, быстро и удобно. Случайно узнал об этой возможности. Сам не пользовался никогда. А трафик если надо было куда-то отправить, то отправлял через NetFlow. Но для разовых задач описанный способ проще и удобнее.

Сколько лет прошло, а по удобству и функциональности так и не появилось у Микротиков конкурентов. Даже несмотря на то, что последнее время компания выпускает не очень удачные с точки зрения удобства пользователя модели, сознательно обрезая те или иные возможности, чтобы загонять пользователей в более дорогие сегменты. Ничего лучше за те же деньги всё равно нет.

И если бы мне нужен был какой-то роутер, я бы всё равно выбирал из моделей Mikrotik. Мне они просто нравятся. Хорошо, что пока не нужны, так как цены кусаются. Из всех устройств, что я приобретал для себя или куда-то в компании, все они до сих пор успешно работают.

#mikrotik
Расскажу про одну историю с Микротиком, которая недавно у меня произошла. Есть небольшой филиал компании, который сидит в бизнес-центре, где до сих пор нет возможности подключить скоростной интернет по адекватной цене. Они сидят много лет на тарифе 10 Мбит/с. Для работы, в принципе, хватает. Вообще, это дикость, но я до сих пор с таким сталкиваюсь в разных местах.

Очень много лет назад туда был куплен легендарный MikroTik RB2011UIAS-2HND-IN. Такой красный, с рогами, 8-ю портами и двумя switch чипами по 4 порта на каждый. Сейчас его уже сняли с продажи и заменили более современной и мощной моделью. Этот Микротик выступал в роли шлюза, подключаясь к OpenVPN серверу. На такой ширине канала его производительности хватало за глаза.

Недавно ответственный человек оттуда сказал, что провайдер просит заменить сетевые настройки, которые он в итоге и изменил. Я обновил все списки с этим IP и закрыл тему. Дальше начались странности. В мониторинг стали прилетать алерты по ночам об очень высокой нагрузке на CPU. Сначала напрягся, подумал, не случилось ли что неладное. Этот Микрот вообще не беспокоил такими сообщениями никогда.

Полез в Zabbix и ELK смотреть графики и логи. В мониторинге увидел, что CPU улетает в потолок во время ночных бэкапов. Оттуда много информации приходится тянуть. Этот процесс длится несколько часов. В логах периодически вижу отвал VPN соединения. Думаю, что за ерунда.

Стал смотреть графики загрузки каналов. Увидел, что по OpenVPN соединению стал бегать трафик 30 Мбит/с и это потолок для данной железки. Больше она тянуть по OpenVPN не может. Судя по всему изменился тариф на более скоростной. И чтобы получить скорость по VPN выше, чем 30 Мбит/с, надо менять железку. Особой нужды в этом нет. Скорее всего ограничу скорость на интерфейсе через Simple queue. У меня есть статья по этой теме:

Ограничение скорости в Mikrotik с помощью QUEUE

Написал давно, но с тех пор в 6-й версии ROS особо ничего не менялось. Сам постоянно туда заглядываю, когда надо что-то простое настроить в QOS. Вот ещё пару ссылок по этой теме:

Централизованный сбор логов Mikrotik в ELK Stack
Мониторинг Mikrotik в Zabbix

Маршрутизаторы эти появились лет 10 назад и до сих пор благополучно работают во многих местах. Как ни крути, а Mikrotik продаёт качественное железо.

#mikrotik
​​Для бэкапа конфигураций Mikrotik есть простая и удобная программа от известного в узких кругах Васильева Кирилла. У него на сайте много интересных статей, рекомендую. Программа называется Pupirka.

Pupirka работает очень просто. Подключается по SSH, делает экспорт конфигурации и кладёт её рядом в папочку. Ничего особенного, но всё аккуратно организовано, с логированием, конфигами и т.д. То есть пользоваться удобно, не надо писать свои костыли на баше.

Достаточно скачать один исполняемый файл под свою систему. Поддерживаются все популярные. Пример для Linux:

# wget https://github.com/vasilevkirill/pupirka/releases/download/v0.7/pupirka_linux_amd64
# mv pupirka_linux_amd64 pupirka
# chmod +x pupirka

Запускаем программу:

# ./pupirka

Она создаст структуру каталогов и базовый файл конфигурации:

▪️ backup - директория для бэкапов устройств
▪️ device - директория с конфигурациями устройств для подключения
▪️ keys - ssh ключи, если используются они вместо паролей
▪️ log - лог файлы для каждого устройства, которое бэкапится
▪️ pupirka.config.json - базовый файл конфигурации

Дефолтную конфигурацию можно не трогать, если будете подключаться на стандартный 22-й порт.

Вам достаточно в директорию device положить json файл с настройками подключения к устройству. Например, router.json:

{
"address": "192.168.13.1",
"username": "backuser",
"password": "secpassw0rd"
}

Теперь можно запустить pupirka, она забэкапит это устройство:

zerox@T480:~/pipirka$ ./pupirka
INFO[0000] Starting....
INFO[0000] Scan Devices....
INFO[0000] Running Hook....
INFO[0000] Running Not Hook
INFO[0000] Devices count 1
INFO[0000] Rotate device list...
INFO[0000] Create Folder ./backup/router for backup
INFO[0005] Backup Start ---->
WARN[0005] Starting backup router ...
INFO[0008] Backup Finish <----
INFO[0008] Running Hook....
INFO[0008] Running Not Hook

В директории backup/router будет лежать экспорт конфигурации, а в log/router будет лог операции с ключевой фразой "Backup complete", по которой можно судить об успешности процедуры.

Pupirka поддерживает хуки, так что после бэкапа конфиг можно запушить в git репозиторий. Для этого есть отдельные настройки в глобальном конфиге.

Описание программы можно посмотреть на сайте автора. В принципе, её можно использовать не только для бэкапов микротиков, но и каких-то других вещей. Команду, вывод которой она будет сохранять, можно указать в конфиге. То есть можно ходить и по серверам, собирать какую-то информацию.

Накидайте, кому не в лом, звёзд на гитхабе. Программа хоть и простая, но удобная.

#mikrotik
​​Ещё один пример расскажу про неочевидное использование Zabbix. Люблю эту систему мониторинга больше всех остальных именно за то, что это с одной стороны целостная система, а с другой - конструктор, из которого можно слепить всё, что угодно. Безграничный простор для построения велосипедов и костылей.

У Zabbix есть тип элемента данных - SSH Агент. Он может ходить по SSH на хосты с аутентификацией по паролю или ключу, выполнять какие-то действия и сохранять вывод. С помощью этого можно, к примеру, сохранять бэкапы Микротиков. Причём встроенные возможности Zabbix позволят без каких-то дополнительных телодвижений отбрасывать неизменившиеся настройки, чтобы не хранить одну и ту же информацию много раз. А также можно оповещать об изменениях в конфигурациях, если сохранённая ранее отличается от полученной в новой проверке.

Рассказываю, как это настроить. Создаём новый шаблон. Я всегда рекомендую использовать сразу шаблоны, не создавать айтемы и триггеры на хостах. Это неудобно и труднопереносимо. Лучше сразу делать в шаблоне. Добавляем новый айтем:

Тип: SSH агент
Ключ: ssh.run[mikrotik,10.20.1.20,22,,]
Формат этого ключа: ssh.run[description,<ip>,<port>,<encoding>,<ssh options>]
Тип информации: Текст
Метод аутентификации: Пароль (можете выбрать ключ)
Выполняемый скрипт: /export

Остальные параметры ставите по желанию. Логин и пароль лучше вынести в макросы шаблона и скрыть их, так будет удобнее и безопаснее. Я указал явно для наглядности. Переходим в этом же айтеме на вкладку Предобработка и добавляем один шаг:

Отбрасывать не изменившееся

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

last(/SSH Get/ssh.run[mikrotik,10.20.1.20,22,,],#1)<>last(/SSH Get/ssh.run[mikrotik,10.20.1.20,22,,],#2)

Сработает, если текст последней проверки будет отличаться от предыдущей.

Теперь можно прикрепить этот шаблон к хосту, который будет делать подключения и проверить. Я обычно на Zabbix Server подобную функциональность вешаю. Но это зависит от вашей конфигурации сети. Сервер должен мочь заходить по SSH на указанный в айтеме адрес.

В разделе Мониторинг -> Последние данные увидите выгрузку конфигурации своего Микротика. Единственный момент, который не понравился - добавляются лишние пустые строки. Не знаю, с чем это связано. Всё остальное проверил, конфиг нормальный. Символы не теряются. На вид рабочий.

Не знаю, насколько актуально делать бэкапы таким способом. В принципе, почему бы и нет. Тут сразу и бэкап, и мониторинг изменений в одном лице. Сам так не делал никогда. Написал эту заметку, чтобы просто продемонстрировать возможность. Вдохновился вот этой статьёй в блоге Zabbix, где они скрестили мониторинг с Oxidized:

⇨ https://blog.zabbix.com/monitoring-configuration-backups-with-zabbix-and-oxidized/28260/

Неплохой материал. Там берут json со статусами бэкапов из Oxidized и с помощью lld и jsonpath парсят его на статусы отдельных устройств.

Возвращаясь к бэкапу Микротиков. Если таки надумаете его делать, то в случае больших выгрузок увеличьте таймауты на сервере. И следите за размером бэкапов. У Zabbix вроде есть ограничение на размер текстовой записи айтема в 64KB. Если у вас конфиг будет больше, то он обрежется без каких-либо уведомлений. Ну а в общем случае всё заработает, и сбор, и триггер. Я лично проверил на своём стенде во время написания заметки.

А вообще интересна тема разных проверок с помощью Zabbix? Я могу много всяких примеров привести ещё. Что-то я уже писал раньше, что-то нет. С Zabbix постоянно работаю.

#zabbix #mikrotik
Я смотрю, заметки с Zabbix бодро заходят, а если ещё Mikrotik или Proxmox добавить, то вообще отлично. Сегодня опять Микротики будут. Типовая задача по настройке переключения канала с основного на резервный и обратно. Плюс, там ещё поднимается VPN канал. Хочется мониторить и переключение каналов, то есть получать уведомления, если канал переключился, и состояние VPN соединения, и состояние каналов, чтобы не получилось так, что резерв уже давно не работает, а мы не знаем об этом. Плюс, если точка висит на резервном канале, то это подсвечивается триггером в дашборде Zabbix.

Я делал это на базе скриптов Mikrotik. Как это может выглядеть, отражено в моей статье про переключение провайдеров. Это один из примеров. Я эти скрипты много раз менял, дорабатывал под конкретные условия. Там может быть много нюансов. Да, переключение провайдеров можно сделать проще через динамическую маршрутизацию, но это только часть задачи. Скрипт решает не только переключение, но и логирование, плюс выполнение некоторых других задач - сброс сетевых соединений, выключение и включение VPN соединения, чтобы оно сразу переподключилось через нового провайдера и т.д.

В итоге, я через скрипты настраивал переключение канала и проверку доступности каналов. Примерно так может выглядеть проверка работы канала:

:local PingCount 3;
:local CheckIp1 77.88.8.1;
:local CheckIp8 77.88.8.8;
:local isp1 [/ping $CheckIp1 count=$PingCount interface="ether1"];
:local isp2 [/ping $CheckIp8 count=$PingCount interface="lte1"];
:if ($isp1=0) do={
:log warning "MAIN Internet NOT work";
} else={
:log warning "MAIN Internet WORK";
}
:if ($isp2=0) do={
:log warning "RESERV Internet NOT work";
} else={
:log warning "RESERV Internet WORK";
}

Результат работы скриптов выводился в стандартный лог Микротика. Дальше этот лог может уезжать куда-то на хранение и анализ. Например, в ELK или Rsyslog. Если мы настраиваем мониторинг через Zabbix, то выбираем rsyslog.

Zabbix Server забирает к себе все логи через стандартный айтем с типом данных лог и анализирует. Потом создаётся триггер с примерно таким выражением, если брать приведённый выше скрипт Микротика:

find(/Mikrotik logs/log[/var/log/mikrotik/mikrotik.log],#1,"like","Router-01: MAIN Internet NOT work")=1'

и восстановление:

find(/Mikrotik logs/log[/var/log/mikrotik/mikrotik.log],#1,"like","Router-01: MAIN Internet WORK")=1

В таком подходе есть одно неудобство. Все триггеры будут привязаны к Zabbix Server, а имя устройства видно только в описании триггера. Если вам это не подходит, придётся использовать что-то другое.

Я придумывал другую схему, чтобы триггеры о состоянии каналов были привязаны к самим устройствам, чтобы на географической карте были видны хосты с проблемами. Уже точно не помню реализацию, но вроде порты куда-то внутрь пробрасывал через разные каналы. И делал стандартные TCP проверки этих портов через Zabbix сервер. Если какой-то порт не отвечает, то канал, через который он работает, считается неработающим.

И ещё один вариант мониторинга каналов. Через каждого провайдера поднимаем разное VPN соединение и мониторим его любым способом. Можно простыми пингами, если Zabbix сервер или его прокси заведён в эти VPN сети, можно по SNMP.

Мне лично больше всего нравятся варианты с логами. Я люблю всё собирать и хранить. Логи удобно анализировать, всегда на месте исторические данные по событиям. Другое дело, что Zabbix не любит большие логи и нагружать его ими не стоит. Он всё хранит в SQL базе, а она для логов плохо подходит. Какие-то простые вещи, типа вывод работы скриптов без проблем можно заводить, а вот полноценный сбор масштабных логов с их анализом устраивать не надо.

Через анализ логов удобно слать уведомления о каких-то событиях в системных логах. Например, информировать об аутентификации в системе через анализ лог файла /var/log/auth.log. Можно о slow логах mysql или php-fpm сообщать. Это актуально, если у вас нет другой, полноценной системы для хранения и анализа логов.

#mikrotik #zabbix
​​Приезжал на днях в квартиру, где совершенно не работает Youtube. Всё лето живу на даче с мобильным интернетом. С замедлением ютуба не сталкивался. На мобильном он работает нормально. А в квартире мобильная связь не очень, пользоваться некомфортно, поэтому всё на проводном интернете. Без ютуба совсем грустно. В качестве роутера работает Mikrotik.

У меня уже давно есть несколько VPS заграницей. К сожалению, теперь законом запрещено делиться информацией по обходу блокировок, поэтому я не смогу вам подробно рассказать, как у меня всё устроено. Могу только дать несколько подсказок. Мне понадобился список IP адресов ютуба. Нашёл в интернете вот такой. Привожу сразу экспорт из Mikrotik, чтобы вы могли быстро его к себе добавить, если у вас устройство этого вендора:

https://disk.yandex.ru/d/RAbdhp0lAFBfOw

Я промаркировал этот список через mangle и сделал отдельный маршрут для этого маркированного списка через зарубежный VPS, к которому подключаюсь по OpenVPN. Теперь Youtube работает нормально сразу для всех домашних. Простое и удобное решение без лишних заморочек. Несмотря на то, что многие говорят, что openvpn и wireguard блокируют, у меня они пока работают нормально. Провайдер - Ростелеком.

#mikrotik