ServerAdmin.ru
26.6K subscribers
197 photos
24 videos
8 files
2.47K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Для просмотра информации об устройствах хранения в Linux можно использовать утилиту lsblk (list block devices). Она обычно есть в составе дистрибутива, так что многие её знают и используют.

Я именно её запускаю, когда нужно быстро посмотреть информацию о дисках. Простой запуск без параметров позволяет наглядно увидеть структуру разделов:
# lsblk 

Это не всегда достаточная информация. Очень часто хочется увидеть uuid диска или файловую систему. Особенно когда редактируется fstab. Это можно сделать с помощью других программ - blkid и mount. Через mount файловую систему смотреть неудобно, особенно если речь идёт о корне /. Там длинный вывод получается, который неудобно грепать. Проще воспользоваться lsblk с дополнительным ключом:
# lsblk -f
На выходе всё тот же структурированный вид, а не сплошной поток, как у blkid или mount.

Lsblk может выводить дополнительные столбцы с информацией. К примеру, вы можете посмотреть модель устройства (MODEL), серийный номер (SERIAL), размер сектора (PHY-SEC) и т.д. Ключ --help покажет все эти параметры.
# lsblk -o +FSTYPE,UUID,MODEL,SERIAL

Lsblk умеет выводить информацию в json, что вкупе с информацией выше делает его удобным инструментом для сбора информации о дисках с помощью какого-то мониторинга или инвентаризации:
# lsblk -o +FSTYPE,UUID,MODEL,SERIAL -J
Обращаю внимание, что этот ключ появился не так давно и в старых версиях его нет.

Если у вас много устройств хранения, используется lvm с кучей логических томов, что обычное дело для хостов гипервизоров, вывод lsblk будет очень длинный. Удобно его ограничить только необходимым устройством или списком:
# lsblk /dev/sda /dev/sdb

По умолчанию вывод форматируется с помощью ASCII символов. Если вам это не нужно или мешает для того, чтобы удобно грепнуть или выделить столбец через awk, можно изменить вывод в обычный список:
# lsblk -l

И ещё один полезный ключ, который наверняка пригодится -p. С ним lsblk выводит полный путь устройства. То есть в выводе будет не просто имя lvm тома pve-vm--103--disk--1, а /dev/mapper/pve-vm--103--disk--1.
# lsblk -p

#linux #bash
​​Обратил внимание, что на канале не было ни одной заметки про Nextcloud. Когда продукт известный, кажется, что нет смысла о нём писать. И так все знают. Хотя это далеко не факт. Постараюсь кратко и ёмко описать его своими словами.

Изначально Nextcloud позиционировал себя как бесплатная Open Source замена облачным сервисам по хранению файлов типа Dropbox и Google Drive. Его можно установить на свой сервер, на конечные устройства поставить агенты, которые будут синхронизировать файлы. Не знаю достоверно, насколько надежно в этом плане сейчас работает Nextcloud, но первое время у него были всевозможные баги вплоть до потери всех файлов. Знакомый лично рассказывал, как столкнулся с этим после какого-то обновления. Заторможенная или зависшая синхронизация были обычным делом.

В настоящий момент Nextcloud это не просто сервер для хранения документов. Это полноценная веб платформа для совместной работы. Основной функционал:

Совместная работа с документами, в том числе их редактирование онлайн, работает на базе известных платформ для этого (Collabora Online, Onlyoffice).
Чат сервер с голосовыми и видеозвонками на базе NextCloud Talk.
Управление проектами, задачами, календарями, совместная работа с ними.
Встроенный в веб интерфейс imap клиент для работы с почтой. Встроенного почтового сервера в Nextcloud нет.
Поддержка аутентификации пользователей через LDAP (в том числе Windows AD).
Доступ к файлам пользователя через клиент, веб браузер, WebDAV
Интеграция с Draw.io для рисования схем.
Возможность подключить внешние хранилища: FTP, WebDAV, Nextcloud, SFTP, S3, Dropbox, Google Drive.

Функционал Nextcloud расширяется за счёт дополнений, которые живут во встроенном App Store. Чего там только нет: различные темы, календари, редакторы, чаты, веб сервера, игры, интеграции с другими сервисами и т.д. На глазок их там штук 200-300. Сделано примерно так же, как в Synology.

Если я правильно понимаю, на сегодняшний день Nextcloud - лучшее бесплатное решение для подобного функционала. Если коротко и в современных терминах, то это Groupware с прокачанной функцией хранения файлов. Из аналогов мне известны:

Onlyoffice Workspace. Наиболее развитый с активной разработкой. Но у него существенные ограничения бесплатной версии.
Zimbra. Бесплатная версия доживает свои дни. Новые версии пока не предвидятся. Хотя исходники открыты, но никто не взялся за то, чтобы собирать из них готовый продукт.
Kopano. Разработка бесплатной версии тоже завершилась в 2021 году.
Univention Corporate Server (UCS). Похож на Nextcloud, но выглядит более бледно и не так функционально. На первый взгляд удобство и функционал значительно ниже.

Больше ничего из более ли менее известного не знаю. Если у вас есть опыт эксплуатации подобных систем, поделитесь информацией, чем пользуетесь и удобно ли это на практике.

Мне кажется, что подобного рода продукты лучше покупать за деньги. Когда на них завязана работа всей организации и у вас нет платной техподдержки, можно сильно встрять. Я бы не хотел брать на себя такую ответственность. Внедрял Onlyoffice в небольших компаниях и видел, какие там проблемы могут возникнуть. На небольших масштабах они не так критичны.

Сайт - https://nextcloud.com
Исходники - https://github.com/nextcloud

#docs #fileserver
​​🎓 У меня для вас два хороших бесплатных курса на английском языке по Devops: Docker и Kubernetes.

https://devopswithdocker.com
https://devopswithkubernetes.com

Если я правильно понял, то это онлайн версии обучающих курсов финского университета University of Helsinki.

Я бегло посмотрел курсы. Понравилось то, что они в текстовом виде, хорошо структурированы и не очень объёмные. Создалось впечатление, что это выжимка из документации, где собрано всё самое главное и оптимизировано для последовательного обучения новичками.

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

Не припоминаю, чтобы мне где-то попадалась такая же структурированная текстовая информация по обучению данным темам. Обычно это видеоуроки и небольшие шпаргалки к ним. А тут полный курс в текстовом виде.

#обучение #бесплатно #devops
​​Системным администраторам офисной инфраструктуры приходится работать в том числе с системами видеонаблюдения. Хотя конкретно мне давно не доводилось этим заниматься на работе, но видеонаблюдение настигло меня у себя дома. Когда вешал камеры, очень пригодилось простое и бесплатное Open Source приложение для просмотра RTSP потока с камеры - Cams.

https://github.com/vladpen/cams

Скачать APK можно как из репозитория, так и поставить через магазин F-Droid. В программе ничего лишнего. Добавляем url потока и смотрим картинку через приложение. Удобно в первую очередь для того, чтобы настроить положение камеры. Без этой программы я обычно с ноутбуком подходил к камере или просил кого-то подойти, и крутил её туда-сюда, настраивая вид.

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

Долго выбирал, какие камеры купить в загородный дом и как вообще всё организовать. Я далёк от этой темы. В итоге пошёл по простому пути. Купил камеры Hikvision. На старый системник с Windows установил их бесплатный софт для просмотра и хранения архива. На этом и остановился. Вопрос с удалённой отправкой картинки куда-то во вне пока не решал, но надо будет заняться. Пока всё хранится только локально. Поймал себя на мысли, что мне не хочется городить свои костыли, а хочется купить какой-то готовый сервис. Наверное так выглядит админская старость 😃

#разное
​​Летом известная многим компания Zachtronics выпустила свою последнюю игру Last Call BBS. Прославилась она своими головоломками для технарей, которые имели очень качественную проработку, анимацию, музыку. Они были лучшие в этом жанре. Знаю много их игр, писал про наиболее интересные:

- SHENZHEN I/O
- Opus Magnum
- SpaceChem
- TIS-100
- EXAPUNKS

Студия объявила о том, что закрывается. Причина указана не финансовая, так что дело не в деньгах. Основатель сказал, что они планируют работать над другими проектами, а время Zachtronics прошло.

Кстати, кто-то может не знает, что прародителем MineCraft была бесплатная игра Infinimer от Zachtronics, написанная в 2009 году. Именно она вдохновила разработчика MineCraft.

Возвращаясь к Last Call BBS, это игра эпохи начала 90-х, когда владельцы ПК звонили на BBS и таким образом обменивались контентом. Игра имитирует работу за вымышленным ретро компьютером Z5 Powerlance. Вам предлагается пройти 8 мини игр на нём.

Игра, как и все игры Zachtronics, имеет высокий рейтинг и хорошие отзывы. Так что любителям жанра не стоит проходить мимо.

Steam - https://store.steampowered.com/app/1511780/Last_Call_BBS/
Промо игры - https://www.youtube.com/watch?v=EdU-ABucIjk

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

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

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

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

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

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

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

#mikrotik #zabbix
Делюсь с вами простым и эффективным трюком в Asterisk, который позволит наблюдать за тем или иным направлением звонков. Реализация может быть разная в зависимости от структуры диалплана используемого решения и модуля sip или pjsip.

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

exten => _810XX.,1,System(echo "To" ${EXTEN} "Ext" ${CALLERID(num)} \
| mail -s "8-10 ALARM" admin@firma.ru)

Когда кто-то наберёт номер с маской 810 и т.д. в почту сразу же прилетит уведомление о том, кто звонит и куда конкретно. Дальше в диалплане можно разрешить этот звонок, либо отклонить и что-то сказать пользователю. Не суть. Смысл в том, что Asterisk может сразу же сам отправить email. Это удобно, когда нет какого-то расширенного мониторинга с уведомлениями.

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

#asterisk
​​Представляю вашему вниманию готовую веб панель для управления хостингом - aaPanel. Я не фанат таких продуктов и сам никогда не устанавливаю на серверах под своим управлением. Тем не менее они имеют довольно высокую популярность и активно используются. Сам часто видел у заказчиков платные панели, но с определённого периода вообще перестал с ними работать, так как не могу гарантировать результат.

Возвращаясь к aaPanel скажу, что это наиболее простая и приятная панель, с которой мне приходилось сталкиваться. Попробовал её в деле - установил и развернул типовой сайт на php. Прошло всё без проблем и интуитивно понятно, что вообще ни разу не случалось с подобными продуктами. AaPanel бесплатная, исходный код открыт. Монетизируется за счёт платного дополнительного функционала и модулей.

AaPanel ставится скриптом от разработчиков, либо запускается в Docker. Функционал стандартный для подобных продуктов:

 установка и настройка web сервера с php (поддерживаются разные версии одновременно);
 установка Mysql с phpMyadmin;
 установка Ftp, Mail сервера (на базе postfix и dovecot);
 поддержка бесплатных сертификатов Let's Encrypt;
 cron, логи доступа к сайту, простой мониторинг;
 бэкап сайтов через панель управления (отдельный бесплатный модуль для бэкапа на S3);
 файловый менеджер через браузер;
 расширение функционала за счёт модулей (много бесплатных).

Добавление нового сайта выглядит максимально просто. Прописываете DNS запись, добавляете сайт, указываете версию php, указываете использование https и редирект с http. Если DNS записи уже обновились, то сразу же получите свой сайт с доступом по https. К нему отдельную учётку с базой данных и ftp доступ к файлам.

🔥 Лично мне бесплатная aaPanel понравилась больше, чем платные ISP Manager, Cpanel или Plesk, с которыми приходилось сталкиваться. Я сейчас имею ввиду не функционал, а удобство работы и интуитивно понятный интерфейс.

Если знаете и имеете опыт работы с другими бесплатными панелями управления хостингом, поделитесь информацией. Я работал только с VestaCP и ничего хорошего про неё сказать не могу. Там часто что-то ломалось, работало не так, как надо, приходилось что-то править руками.

Сайт - https://www.aapanel.com
Исходники - https://github.com/aaPanel/aaPanel

#webserver #hosting_panel
Расскажу отдельно, почему сам никогда не использую никакие готовые веб панели для управлением хостингом. Если кратко, то это чёрный ящик, который в любой момент может взорваться. Конечно, если с ним с самого начала будет работать специалист и делать всё аккуратно, то вероятность проблем будет минимальная, но всё равно она будет. На моей практике с веб панелями работали вообще не специалисты и вот чем это кончалось.

📌 Первые две истории будут про Plesk. Один заказчик попросил настроить в ней новый сайт, какие-то версии ПО добавить и т.д. Я всё сделал и перезапустил некоторые службы через веб панель. Это необходимо было сделать, чтобы применились изменения. После этого у них упал основной сайт. Как оказалось, они не разобрались, как добавить некоторые функции в конфигурационные файлы через панель, поэтому добавили их в конфиги вручную. А панель после перезапуска служб всегда актуализирует конфиги в соответствии со своими внутренними настройками. Все внесённые изменения руками были удалены. Потом они всегда повторяли ручное изменение конфигурации после перезапуска служб.

📌 Вторая история. Панель Plesk не хотела штатно обновляться. Просто валилась с какой-то ошибкой и всё. Меня один заказчик тоже попросил что-то настроить. Я делаю, ничего не выходит. Вижу, что панель давно не обновлялась, думаю, наверное с этим проблема. Решил разобраться с обновлением. Не думал, что это будет слишком сложной задачей для меня. В итоге я проколупался всю ночь, но так и не смог решить проблему. Обновить и настроить то, что надо, не получилось. Заказчик через несколько дней всё снёс и поставил свежую версию панели с нуля. Похоже никто не смог ему помочью Я в итоге отказался и сказал, что ни за какие деньги больше не буду работать с Plesk.

📌 Ещё одна показательная история. У знакомого использовались старая версия ОС и ISP Manager, которые уже давно не поддерживались. Надо было переезжать на свежие версии. Но проблема в том, что там были сотни сайтов. Если бы это был обычный сервер, то каких-то фатальных проблем с автоматизацией скорее всего не было. Перекинули бы исходники, базы, конфиги чуть подправили под новые версии, протестировали и перенесли, либо вообще сервер на месте обновили. Но не в этом случае. Возможно и было какое-то решение с автоматизацией, но оно явно сильно сложнее, чем в общем случае. В итоге руками переносили.

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

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

#webserver
​​Один подписчик поделился информацией о программе для учёта компьютерного оборудования в компании - Hardware Inspector. Я с удивлением вспомнил, что эту программу хорошо знаю, потому что покупал её и активно использовал, но давно. Решил написать по ней заметку.

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

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

Hardware Inspector умеет автоматически заполнять информацию о железе и установленном ПО на рабочих местах с помощью интеграции с AIDA32 или ASTRA. Я Аиду использовал. Сама интеграция очень простая. AIDA с нужными ключами запускается на компе с помощью GPO при Logon, генерирует текстовый отчёт, записывает его в файл. Hardware Inspector читает этот файл.

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

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

С внедрением программы придётся потрудиться и потратить какое-то время. С кондачка тут хорошего результата не будет.

📌 Особенности Hardware Inspector:

Локальное приложение под Windows (на Linux работает через Wine), веб версии нет.
База хранится в файле, его можно положить на сетевой диск и открывать из разных мест.
Лицензирование идёт по количеству объектов в базе.
Есть интеграция рабочих мест с AD, так что при желании можно всё автоматически развернуть и потом уже редактировать то, что получилось. Это быстрее, чем заводить с нуля.

❗️ Программа не бесплатная, но стоит не дорого. С покупкой и обоснованием не было каких-то проблем. Можно оплачивать каждый год по подписке или сразу купить бессрочную версию.

Сайт - https://www.hwinspector.com
Реестр ПО - https://reestr.digital.gov.ru/reestr/303504/

#управление #ITSM #отечественное
​​Есть удобный инструмент для отладки работы iptables - iptables-tracer. С его помощью можно отследить путь прохождения пакета по цепочкам iptables. Утилита написана на Go, так что ставится относительно просто. Надо собрать бинарник, причём сделать это можно где угодно, а потом просто передать на целевой сервер.

# apt install golang git
# git clone https://github.com/x-way/iptables-tracer
# cd ./iptables-tracer/
# go build
Почему то команда, которую я считал аналогичной трём выше:
# go get github.com/x-way/iptables-tracer
не собрала бинарник. Не стал разбираться с ошибкой. Мне всегда казалось, что это одно и то же. В итоге у вас соберётся бинарник iptables-tracer, который можно запускать с нужными параметрами.

Посмотрим список правил iptables:
# iptables -L -v -n
# iptables -L -v -n -t nat

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

# ./iptables-tracer -f "-d 10.20.1.56 -p icmp" -t 30s
nat PREROUTING NEW IP 10.20.1.1 > 10.20.1.56: ICMP echo request, [In:ens18 Out:]
filter INPUT NEW IP 10.20.1.1 > 10.20.1.56: ICMP echo request, [In:ens18 Out:]
nat  INPUT NEW IP 10.20.1.1 > 10.20.1.56: ICMP echo request, [In:ens18 Out:]

Запросы шли извне, так что сначала попали в таблицу NAT, цепочку PREROUTING, потом в таблицу FILTER, цепочку INPUT. Всё достаточно наглядно и понятно, как на картинках со схемой прохождения пакетов в iptables. Синтаксис фильтров для iptables-tracer аналогичен правилам iptables, так что проблем с написанием возникнуть не должно.

Когда что-то не получается с iptables, я первым делом включаю лог всех заблокированных запросов. Это самое простое. Там обычно сразу видно, в чём проблема и какое конкретно направление блокируется. Если не помогает, то подключаю iptables-tracer.

#iptables
​​В марте этого года 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
​​Никогда не понимал, почему вывод информации об устанавливаемых пакетах в apt-get, а потом и в apt такой неудобный. Вам просто вываливают лапшу перед глазами, где трудно что-то разобрать, например найти отдельный пакет. И ладно бы трудно было придумать что-то получше, но оно уже есть. Берём yum/dnf, там всё красиво и удобно. Почему нельзя сделать так же? Достаточно добавить форматирование.

Кажется, что это мелочь, но когда я пользовался Centos, меня прям отвращало от Debian и Ubuntu именно это поведение apt. Я не понимал, почему не сделать удобно, как в других дистрибутивах. Не понимаю я этого и сейчас. Когда впервые услышал про apt, как замену apt-get, думал, там это будет решено. Но нет.

Если хотите в Debian или Ubuntu получить нормальный вывод информации о пакетах при работе с пакетным менеджером, можете поставить Nala. Она не делает ничего особенного - просто приводит вывод apt в человекочитаемый вид. Ну и бонусом может параллельно скачивать пакеты в несколько потоков.

Поставить Nala можно либо из собранного пакета, либо из репозитория Testing/Sid самого Debian. Его нужно будет отдельно добавить в систему. Лучше этого не делать, чтобы случайно не обновиться с тестовых реп. Это необратимый процесс. Либо сразу после установки отключить его.

Я так понимаю, раз Nala уже в Testing/Sid, то есть шанс, что её перенесут в основной стабильный репозиторий. Было бы неплохо.

Исходники - https://gitlab.com/volian/nala

#debian #ubuntu
Компания Zabbix выпустила первую альфу версии 6.4. Решил почитать, что они планируют изменить, добавить в этой версии. Какого-то общего списка нововведений ещё не публиковали, так что информация из разных англоязычных источников (страница документации, почтовая рассылка, список изменений для 6.4.0alpha1).

Новое навигационное меню в веб интерфейсе. Появится новый раздел Dashboards. Исчезнет раздел Configuration, появится пересобранный Data collection. Многие разделы переедут в другие места, плюс появятся новые пункты. Наверняка первое время будет путаница. Все старые инструкции разом потеряют актуальность 😔

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

Айтемы vfs.fs.get и vfs.fs.discovery научатся возвращать в том числе и опции монтирования. Например, тип файловой системы, режим доступа (чтение, запись и т.д.). Довольно удобное нововведение. Нужно будет шаблоны по этой теме обновлять вручную, чтобы увидеть изменения.

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

Дефолтное значение параметра RefreshActiveChecks с двух минут уменьшают до 5 секунд. Напомню, что этот параметр отвечает за получение информации Zabbix agent в active mode настроек с сервера.

Появятся новые шаблоны: AWS RDS instance by HTTP, AWS S3 bucket by HTTP, Azure by HTTP, OPNsense by SNMP.

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

Как-то совсем мало нововведений. В основном косметические изменения. Хотя обычно именно на 4-ю версию ветки приходится больше всего изменений, так как их на ней отлаживают перед принятием в новую LTS ветку. Судя по всему в 7.0 тоже каких-то кардинальных изменений не ожидается.

Так и не изменили механизм веб мониторинга 😪 Он откровенно неудобен и устарел по современным меркам. Я ждал изменений в 6.4 по этому поводу.

Заметки о выпуске для Zabbix 6.4.0alpha1

#zabbix
🎓 Признайтесь честно, без гугления, знаете что такое идемпотентность? Никогда не получается нормально выговорить это слово. Если не знаете, то скорее всего не знакомы и с Ansible. Для админа в наши дни это плохой сигнал, даже если не работаете с большими масштабами.

Ansible стал практически стандартом автоматизации и преднастройки инфраструктуры. Если не приходится использовать его лично, то всё равно на базе Ansible написана куча инструментов по установке чего-либо. Например, разворачивание кластера Kubernetes на своих хостах с помощью Kubespray. Или то же самое для Ceph. Если умеешь работать с Ansible, не будет никаких проблем раскатать кластер и продебажить установку в случае проблем.

К примеру, я почти не пользуюсь в своей работе Ансиблом, но тем не менее знаю его. Проходил курсы, писал свои плейбуки. Когда понял, что поддерживать и обновлять их дольше, чем настроить вручную раз в пол года, перестал. Но мне нет проблемы развернуть тот же Kube или Ceph из готовых плейбуков. Я понимаю, как там всё устроено и работает.

Долгая подводочка к теме получилась. Вот вам на выходные хороший цельный урок по Ansible от и до.

Всё что нужно знать по Ansible. Основы и не только:
⇨  https://www.youtube.com/watch?v=YYjCwLs-1hA

К видео есть содержание, так что можете сразу оценить, о чём там будет речь.

Кстати, у небезызвестного Дениса Астахова есть свой курс на Udemy на русском языке. Цена символическая, правда я не знаю, нормально ли с приёмом платежей из РФ там сейчас. Там же есть и бесплатные курсы, но на английско-индусском.

Если кто-то знает хороший бесплатный курс по Ansible в текстовом виде на русском языке, поделитесь информацией. У меня есть вот такая ссылочка в закладках, но это скорее просто подробная статья. На обучение не тянет.

#обучение #ansible #бесплатно
Ко мне поступил интересный вопрос от читателя, который я решил вынести на публичное обсуждение и прокомментировать, так как будет полезно многим администраторам.

"Есть компьютер с CentOS 5.8 (дистрибутив FreePBX) на борту, выполняющий роль шлюза и сервера Asterisk. Есть необходимость сделать полный бэкап диска/системы, чтобы потом, в случае какой-то глобальной проблемы, восстановить всё на другом железе (время бэкапа/восстановления особой роли не играет). Нюанс в том, что так как эта система выполняет роль шлюза, то останавливать её нельзя. Поэтому единственный вариант - делать бэкап по сети.

Подскажите, пожалуйста, какие могут быть варианты решения вопроса."

В этом вопросе наглядно продемонстрирован ответ на вопрос - зачем нужна виртуализация. Удивительно, но до сих пор есть люди, которые сомневаются, ставить им гипервизор или разворачивать всё на железе. Я рекомендую всегда всё разворачивать в виртуальных машинах, кроме каких-то редких, специфичных случаев. Это нужно в первую очередь для того, чтобы не иметь привязки к железу. VM можно быстро и легко забэкапить или перенести.

В данном случае вижу несколько вариантов решения задачи:

1️⃣ Воспользоваться готовым решением в виде бесплатного Veeam Agent for Linux. Он без остановки машины может снять образ системы. Единственный нюанс, система очень старая. Я не уверен, что Veeam заработает на ней. Надо пробовать и подбирать какую-то старую версию.

2️⃣ Наиболее надёжный вариант. Найти всё-таки время в ночи, загрузиться с Live CD и снять образ диска. Например, с помощью CloneZilla.

3️⃣ Подготовить где-то идентичное железо или VM и сделать полную копию дисков с помощью dd и сразу же отправить по ssh. Примерно так:
# dd bs=1M if=/dev/sda | ssh root@restoresrv "dd bs=1M of=/dev/sda"
На практике я такое не делал, но не вижу особых проблем, почему это может не сработать. Метод стоит отработать где-то на тестовом стенде, а потом снять копию с боевого сервера. Вместо целого диска sda можно по разделам копировать: sda1, sda2 и т.д. Можно просто скопировать образ в файл, а потом уже развернуть из него систему:
# dd bs=1M if=/dev/sda of=/mnt/backup/sda.img
DD популярный инструмент, без проблем гуглится подходящее решение.

Как бы вы решали эту задачу?

#вопрос_читателя
​​Существует известная компания Luden.io. Разработчики игр, которые помогают освоить профессию инженера и как частный случай, программиста. Ранее на канале была заметка об их игре while True: learn().

У них есть ещё одна известная игра - Learning Factory, в которой надо выстроить автоматизированную систему процессов на фабрике с применением машинного обучения, чтобы понять, чего хотят котики. Игра сделана на базе Factorio. А теперь самое интересное. У них есть бесплатная обучающая игра для детей - Learning Factory EDU.

Learning Factory EDU представляет из себя непосредственно игру для PC и набор методических материалов для вовлечения детей в игровой процесс. Причём материалы есть на русском языке. Я сначала удивился, когда их увидел, а потом понял, что вся команда Luden.io русскоязычная. Просто они не афишируют это, сайт на английском, как и все продукты. Они ориентированы на мировой рынок.

В googl drive представлены сам дистрибутив игры, рабочая тетрадь для ребёнка, планы уроков и все сопроводительные материалы в виде слайдов, картинок, иконок. Сделано всё очень качественно и продуманно. Это готовый план уроков для какого-нибудь кружка или родителя, который готов заниматься с ребёнком, чтобы вовлечь его в предметную область.

Если вы взрослый, не преподаёте и вообще всё это не для вас, то можете просто поиграть в Learning Factory. Это качественная тематическая игра с хорошим рейтингом и отзывами.

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

Learning Factory - https://store.steampowered.com/app/1150090/Learning_Factory/
Learning Factory EDU - https://luden.io/lfedu/

#игра #обучение #дети
Регулярно вижу сообщения на тему того, что OpenVPN работает медленно. Чаще всего это результат каких-то локальных проблем, а не распространённого мнения о том, что openvpn это медленный туннель. Всё познаётся в сравнении, а максимальная производительность туннеля зачастую больше всего зависит от сложности шифрования, которое используется.

В общем случае, при канале интернет в 100-200 мегабит в секунду вы не заметите проблем со скоростью в туннеле OpenVPN, если он будет поднят на базе PC, а не какого-то роутера с маломощным железом. По крайней мере я не сталкиваюсь с проблемами, когда на виртуальных машинах использую OpenVPN для объединения сетей через интернет.

Если вы видите, что ваше OpenVPN соединение работает значительно ниже исходного канала в интернет, то проверять стоит следующие вещи:
Сжатие. Попробуйте его отключить, если включено, и посмотрите, как это повлияет на скорость.
Если у вас используется TCP транспорт, поменяйте на UDP и проверьте скорость.
Попробуйте более простой шифр, например AES-128-CBC вместо AES-256-CBC. Для верности можно вообще что-то совсем простое поставить и проверить, действительно ли из-за шифра проседает скорость.
Посмотрите загрузку ядер процессора во время тестирования канала. Есть вероятность упереться в производительность одного ядра.

Далее идут более сложные вещи, в которые можно погрузиться, чтобы решить проблему с быстродействием:
Иногда могут возникать проблемы с буферами. Гуглите параметры sndbuf и rcvbuf. Пробуйте их менять или отключать управление со стороны OpenVPN. Тема большая, гуглится хорошо, всё найдёте. Не забудьте, что эти параметры можно не только поменять на сервере, но и передать их клиенту. Это суперспособность OpenVPN - передавать практически любые настройки клиенту.
Попробуйте поменять MTU с помощью параметра tun-mtu. Часто в этом может быть причина неадекватно низкой скорости туннеля.
Попробуйте поменять параметр длины очереди отправки txqueuelen. В общем случае дефолтное значение трогать не обязательно, но если ничего из вышеприведённого не помогло, можно попробовать изменить. Я видел ситуации, когда это помогало.

Само собой получился чек лист по исправлению проблем производительности OpenVPN туннеля. Можно забрать в закладки. Изначально хотел написать, как можно ускорить VPN туннели, в том числе и на базе OpenVPN, с помощью готового решения, но отложу это на завтра.

Почему я чаще всего использую OpenVPN - Подробный ответ.

#openvpn
Расскажу вам про решение проблемы с Openvpn Client на Windows, которая меня донимала последний год примерно, может чуть меньше. Вчера терпение лопнуло и я разобрался с ней раз и навсегда.

Проблема плавающая и выражалась она в том, что время от времени одно из настроенных подключений openvpn не подключалось. Ошибка была примерно такая:
MANAGEMENT: Socket bind failed on local address [AF_INET]127.0.0.1:25349
Ошибка возникала случайным образом на различных соединениях.

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

Дело вот в чём. После какого-то обновления Windows, она стала резервировать некоторые диапазоны портов для работы Hyper-V. Посмотреть эти диапазоны можно командой:
# netsh int ipv4 show excludedportrange tcp

И как оказалось, там есть диапазон локальных портов, который пересекается с диапазоном, который использует OpenVPN. Решение вопроса - изменить его в OpenVPN GUI:
Settings ⇨ Advanced ⇨ Management interface ⇨ Port offset.
После этого проблема исчезла.

Такая вот ерунда сожрала кучу моего времени. В логах самой винды никакой информации нет. По логу openvpn невозможно понять, в чём дело. А оказывается винда каким-то своим механизмом бронирует целые диапазоны портов и не даёт их использовать. При этом никак в системе не помечает их занятыми, иначе бы ошибка была другая. Что-то в духе local address [AF_INET]127.0.0.1:25349 is busy. А тут просто ошибка, которая говорит о том, что сокет не поднимается. Причин этому может быть много. Банальная нехватка прав или что-то ещё.

#openvpn #windows #ошибка
​​Существует необычный и полезный продукт - UDPspeeder, который способен улучшить качество связи VPN туннелей на каналах с большими задержками и потерями пакетов с помощью коррекции ошибок (Forward Error Correction).

Разработчики заявляют встроенную поддержку следующих VPN туннелей - OpenVPN, L2TP, ShadowVPN. Работает UDPspeeder следующим образом. Сначала организуете туннель с его помощью, а потом поверх пускаете тот же OpenVPN или что-то подобное.

В репозитории подробно описан принцип работы UDPspeeder. В основе лежит технология FEC (Forward Error Correction). С её помощью возможно обнаружить ошибки передачи данных и скорректировать их методом упреждения. Эффект реальный и очень заметный. В репозитории есть наглядный пример снижения количества потерянных пакетов без увеличения latency, что существенно увеличивает скорость передачи данных.

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

Настраивается UDPspeeder максимально просто и быстро. Работает только под Linux, есть пакет для openwrt.

# Запускаем на сервере:
./speederv2 -s -l0.0.0.0:4096 -r 127.0.0.1:7777 -f20:10
# Запускаем на клиенте
./speederv2 -c -l0.0.0.0:3333 -r 44.55.66.77:4096 -f20:10

Все запросы к порту 3333 клиента будут переадресовываться на порт 7777 сервера. Есть отдельная инструкция по настройке связки UDPspeeder + OpenVPN.

Если вам нужна готовая реализация VPN туннеля на базе UDPspeeder для быстрого запуска, можете взять tinyfecVPN от этого же автора. Там в пару команд настраивается VPN Site-to-Site.

Исходники - https://github.com/wangyu-/UDPspeeder

#vpn #openvpn
На моём канале время от времени бывает реклама хостинга. Причём рекламируются как крупные облачные провайдеры, так и небольшие лоу-костеры. Крупных всегда обвиняют в том, что цены высокие, а лоу-костеров в том, что они ненадёжны.

Хочу прокомментировать последних, так как с ними наиболее показательные истории бывают. Хостеры заходят с каким-то временным промо тарифом, открытым в рекламных целях. Это убыточные линейки, которые покрываются рекламным бюджетом. Меня не удивляют люди, которые начинают возмущаться и предъявлять претензии, что купленный по промо тарифу сервер не надёжен. Сам таким был.

Несколько лет назад у провайдера ruvds появился промо тариф за 30 р. (❗️ считай, что даром). Давали виртуалку с минимальными ресурсами и внешним IP. Купить этот тариф было трудно, VDS тут же кончались после начала акции. Но мне в итоге удалось его получить. Он тормозил жутко, была масса негатива. Я даже помню в комментариях на хабре в корпоративной статье возмущался, что хостер только негатив собрал с помощью этого глючного и тормозного промо тарифа.

Что по факту? Прошло года 2-3, этот VDS я до сих пор использую, стоит 40 р. в месяц. Это отличное предложение для персонального VPN сервера. С тех пор и хостером активно пользуюсь. И вам много раз его рекомендовал. То есть реклама сработала на 100%.

К чему я всё это написал. Не надо строить завышенных ожиданий от дешёвых промо тарифов, которые явно ниже рынка. Это обычная реклама и замануха. Относитесь к ним правильно и используйте с пользой, особенно если условия будут и дальше неизменными. А если хотите надёжное решение, то это должен быть не лоу-костер с VDS на базе десктопного или очень старого железа, о котором вам ничего не скажут, а крупный хостер со своими ДЦ.

И ещё момент про хостинг. Вы всегда должны быть готовы к тому, что с текущего хостинга придётся съехать. Я постоянно меняю хостеров и для меня переезд хоть и хлопотное, но привычное дело. В одном ценовом сегменте надёжность у всех плюс-минус одинаковая, потому что чудес не бывает. Если у вас отработаны механизмы переезда, то увидев выгодное предложение, вы можете быстро переехать и сэкономить деньги. А в случае проблем вернуться обратно. Понятное дело, что это относится к тем сервисам, что могут пережить небольшой простой и к ним нет повышенных требований к надёжности. Тут уже не до экспериментов.

#хостинг