ServerAdmin.ru
31.6K subscribers
843 photos
57 videos
23 files
2.99K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
Вспомнил про одну необычную утилиту из мира консоли Linux. Сначала даже не был уверен, что не писал о ней ранее. Оказалось, что реально не писал, только пару упоминаний мельком сделал. Речь пойдёт о faketime. Вспомнил, когда скрипты пересматривал к утренней публикации. Искал что-то для примера в прикреплённой картинке.

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

# apt install faketime

Приложение скомпилировано на базе библиотеки libfaketime. Оно перехватывает системные вызовы для приложения и заменяет в них время на указанное. Работает примерно так:

# faketime '2025-12-31 23:59:59' date
Wed Dec 31 23:59:59 MSK 2025

Передали утилите date указанное время, и она его вывела.

Я чаще всего утилиту использую, когда с помощью find удаляю что-то по меткам времени. Удобно запустить через faketime без удаления, просто чтобы проверить, как отработает поиск. Вообще всё, что связано с удалением, предварительно проверяю и только потом ставлю на исполнение. Иногда в скриптах комментирую строки с удалением, чтобы дождаться полного наполнения данными, чтобы потом прийти, вручную всё отладить и только потом включить ключ с удалением. Иначе рано или поздно из-за ошибки или невнимательности можно наделать дел.

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

# find . -type f -mtime +1

◽️mtime – время последнего изменения файла
◽️+1 - n*24 часа, в данном случае n=1, то есть 24 часа

Это информация из man find. Ты ожидаешь, что будут найдены все файлы с датой модификации более суток назад. Проверяем:

# touch filename.tar
# ls -l
-rw-r--r-- 1 root root 0 Aug 28 14:39 filename.tar

# faketime '2025-08-29 14:40:00' find . -type f -mtime +1

Создали файл 28 августа в 14:39, а в 29 августа в 14:40 ничего не находит, хотя мы взяли время более 24 часов вперёд.

# faketime '2025-08-30 14:40:00' find . -type f -mtime +1
./filename.tar

Уехали на 48 часов и 1 минуту вперёд и нашли файл. У find есть особенность, и в данном случае +1 это не 24 часа, а 48. А чтобы было именно 24 часа, надо использовать +0:

# faketime '2025-08-29 14:40:00' find . -type f -mtime +0
./filename.tar

Faketime позволяет проверить работу своих скриптов, заглянув в будущее.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#linux #terminal
2👍167👎3
Я неоднократно рассказывал про бесплатную реализацию своего сервера для S3 хранилища на базе MinIO. Это наиболее популярный и чуть ли не единственный массовый сервер для этих задач. Я других таких же простых даже и не знаю. Если для каких-то больших многосерверных систем есть реализации кластера типа Ceph и его Object Gateway, или аналогов, то для одиночного сервера или небольшого кластера я ничего другого ни разу не видел и не слышал. Все ставили по умолчанию MinIO.

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

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

# wget -O minio https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.2025-04-22T22-12-26Z
# chmod +x minio
# mkdir /mnt/data
# ./minio server /mnt/data

Дальше идём на порт сервера 9000 и всё настраиваем через веб интерфейс, используя учётку minioadmin / minioadmin. Всё максимально быстро и просто. MinIO используется во множестве сборок программных продуктов, где нужна функциональность S3.

В целом, ничего критичного не произошло. Если вы нечасто меняете настройки, то можно и через CLI это делать. Для этого нужно воспользоваться MinIO Console, которая запускается командой mc. Неудобно, так как пересекается с Midnight Commander. Консоль придётся поставить отдельно. По ссылкам есть инструкция для установки.

Какие есть альтернативы новой урезанной версии:

1️⃣ OpenMaxIO - форк урезанного официального веб интерфейса, который теперь называется object-browser. В него вернули все удалённые возможности официального UI. Этот форк сделан энтузиастами и к команде MinIO никакого отношения не имеет.

2️⃣ RustFS - новый альтернативный сервер, аналог MinIO, реализующий ту же функциональность. Проект стартовал в июле, вскоре после новостей MinIO. В настоящий момент доступна только альфа версия, но проект активно развивается. Уже было 48 промежуточных релизов. Пилят, судя по китайскому языку на сайте, китайцы. Я пока не пробовал его, не знаю, что у них получилось. Обещают такую же простоту настройки, но более производительный сервер. Посмотрим. Если кто-то уже пробовал, дайте, пожалуйста, боратную связь.

Дополнительно рекомендую посмотреть интересное выступление на тему кластера MinIO:
Свой распределённый S3 на базе MinIO — практический опыт наступания на грабли / Алексей Плетнёв

#S3
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍94👎2
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Это видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне понравились.

Бункер для админки: как спрятать точки управления от злоумышленников
Длинный вебинар, который я весь прослушал. Полезная структурированная информация. Первая половина - теория на тему деления локальной сети на различные сегменты, вторая на тему защиты AD, ну и в конце разные прикладные штуки. Полезно даже просто для общего образования.

Григорий Кошелев — Комбо-факапы, или Эффект бабочки-факапницы
Это видео на тему падений инфраструктур в крупных компаниях с теорией и конкретными примерами. Можно просто послушать на прогулке или в машине. Ничего полезного для себя не вынес, но мне было интересно послушать.

Как установить и настроить Keycloak | Полный гайд для начинающих
Подробная инструкция по настройке популярного и непростого продукта для управления централизованной аутентификацией на базе Keycloak.

Zabbix Handy Tips: Nested Low-Level Discovery
Коротенькое видео с примером вложенного автообнаружения, которое появилось в недавнем релизе Zabbix Server 7.4. Как говорится, вместо тысячи слов лучше один раз увидеть в видео на 3,5 мин.
Zabbix Handy Tips: Bulk Template Import
Ещё одно короткое видео с демонстрацией нововведения в версии 7.4 - массовое добавление или обновление шаблонов. Теперь всё разом можно обновить, а не вручную десятки шаблонов, как раньше.

ITTools - The tools you need for homelab and IT Needs!
Обзор набора утилит из проекта it-tools.tech. Впервые о нём услышал. Полезная штука, о которой стоит сделать отдельную заметку. Чего там только нет. Навскидку, есть всё, что может понадобиться админу или девопсу из такого рода генераторов и конвертеров.

Как устроены proxmox ve helper-scripts? Безопасно ли использовать скрипты помощники?
Если вам интересен этот проект, то можете посмотреть видео. Знаю, что некоторые пользуются. Я лично их не использую. Не вижу для себя в них пользы.

Stop Struggling with Docker Compose – Use These 10 Tricks Instead!
Автор рассказал, как он работает с проектами на Docker Compose и дал несколько советов. В целом, советы базовые, типа структуры каталогов, хранения параметров в .env файлах, метки, проверки и т.д. Если постоянно работает с этим, то скорее всего всё это и так знаете. Если нет - то будет полезно. Всегда интересно посмотреть на опыт другого человека и взять что-то к себе.

Тестирую 19 ЛУЧШИХ нейросетей для программирования в августе 2025.
Я смотрел предыдущие видео автора на эту же тему, так что лично мне уже не интересно и не очень актуально. Но если вы ещё не смотрели, то для общего образования будет полезно посмотреть на что способны современные ИИ и чем они отличаются.

Proxmox Backup Server 4 Upgrade. Обзор. Что нового? Как обновить
Обзор продукта и некоторая информация по обновлению и новой версии. Ничего особенного в видео нет, дана базовая информация. Подойдёт тем, кто не знаком с продуктом и хочет посмотреть на него.

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍77👎2
🔝 ТОП постов за прошедший месяц. Все самые популярные публикации по месяцам можно почитать со соответствующему хэштэгу #топ. Отдельно можно посмотреть ТОП за прошлые года: 2023 и 2024.

Пользуясь случаем, хочу попросить проголосовать за мой канал, так как это открывает некоторые дополнительные возможности по настройке: https://xn--r1a.website/boost/srv_admin.

📌 Больше всего пересылок:
◽️Синхронизация бэкапов VM между двумя серверами PBS (412)
◽️Мониторинг аутентификаций по SSH с помощью Zabbix (374)
◽️Рекомендации по изучению Zabbix с нуля (349)

📌 Больше всего комментариев:
◽️Результаты опроса на тему гипервизоров (155)
◽️Использование Proxmox Mail Gateway (126)
◽️Рекомендации по изучению Zabbix с нуля (116)

📌 Больше всего реакций:
◽️Синхронизация бэкапов VM между двумя серверами PBS (240)
◽️Современная установка Python приложений в Debian (169)
◽️Восстановление случайно удалённых файлов на примере диска VM (156)

📌 Больше всего просмотров:
◽️ Консольная игра GameShell (11423)
◽️ MX записи у разделегированного домена (10553)
◽️Восстановление случайно удалённых файлов на примере диска VM (10486)

#топ
👍33👎1
🎓 Ну что, отцы, студенты и школьники, если таковые имеются. Поздравляю вас с днём знаний. У меня два школьника сегодня в школу пошли, два ещё на подходе, не доросли. Решил в честь такого знаменательного (дети с этим не согласны) дня сделать подборку с бесплатными обучающими материалами, которые были у меня на канале. Хороший повод всё это систематизировать.

Материала получилось очень много, так что в одну публикацию подборка не уместилась, будет две. Ссылки даю на свои заметки по упомянутой теме, так как там более подробное описание. Если отдельной тематической публикации не было, то даю сразу ссылку на материал.

📌Базовое администрирование Linux:
▪️Основы GNU/Linux и подготовка к RHCSA — автор в качестве хобби создаёт хорошие курсы для новичков. Причём как в текстовом виде, так и в виде записанных уроков. Качество материала высокое.
▪️Базовое администрирование Linux-серверов — бесплатный курс по основам от Слёрм.
▪️Введение в Linux — большой и масштабный бесплатный курс по Linux на платформе Stepik.
▪️Администрирование Linux — совместный курс в виде лекций на youtube от команды VK Team на базе МФТИ.
▪️Администрирование базового уровня (LPIC-1) — курс на youtube от известного Семаева Кирилла, который к сожалению больше не в состоянии записывать курсы.
▪️Полный курс из 15-ти лекций по администрированию GNU/Linux от преподавателя ИТМО: Администрирование в ОС GNU/Linux.
▪️Learn the ways of Linux-fu, for free — серия хорошо оформленных и структурированных курсов по основам Linux в виде уроков с заданиями, ответы на которые проверяются автоматически.

📌Сети:
▪️Сети для самых маленьких — очень качественный, структурированный материал по сетям от самых основ до более сложных вещей.
▪️Компьютерные сети, Климанов М.М., Компьютерные сети, учебный курс, Созыкин Андрей — база по сетям от преподавателей МФТИ.
▪️Записи курса компьютерных сетей, который читается для студентов третьего года обучения программы «Прикладная математика и информатика» факультета ИТиП университета ИТМО в шестом семестре. Лектор: Сергей Мельников [s6 | 2023] Компьютерные сети, ✍️ Конспект лекций.
▪️Лекции Артема Береснева по курсу Компьютерные сети в университете ИТМО.
▪️Основы документирования сетей — серия уроков на youtube по документированию сетей.

📌Базы данных:
▪️Бесплатные курсы по СУБД PostgreSQL от компании Postgres Professional. Очень качественный материал.
▪️Введение в базы данных — бесплатный курс на Stepik.
▪️Интерактивный тренажер по SQL — тоже курс на Stepik.
▪️Основы SQL – курс от Созыкина Андрея.
▪️Бесплатные курсы от Selectel: PostgreSQL для новичков и MySQL для новичков.

📌Zabbix:
▪️Демо курс Zabbix 6. Мониторинг IT инфраструктуры предприятия — бесплатный урок от большого платного курса про Zabbix. В демо курсе разбирается установка и настройка сервера, плюс подключение к нему различных агентов.
▪️Zabbix - система мониторинга статусов — немного сумбурный курс с упором на сбор метрик по SNMP, но для бесплатного ознакомления сойдёт. Особенно, если у вас много сетевых устройств, которые как раз по SNMP и мониторятся.
▪️Monitoring IT (базовый) — Небольшой обзорный курс по различным системам мониторинга. Разобраны самые популярные и функциональные продукты: Zabbix, Prometheus, Nagios/Icinga, VictoriaMetrics.
▪️Текстовый курс по Zabbix от практикующего специалиста и преподавателя.

Продолжение 👇👇👇

#подборка #обучение
👍139👎2
Начало 👆👆👆

📌DevOps:
▪️90DaysOfDevOps — сборник из 90 шагов, разбитых на 90 дней для развития в области DevOps. Язык материала - английский.
▪️Как стать DevOps Инженером с Нуля, что учить и в каком порядке —интересное видео от человека, который вкатился в DevOps в 30+ лет. Рассказывает свой опыт.
▪️Онлайн тренажёры от RedHat — интерактивные уроки, где воспроизводят полностью рабочую среду разработчика или devops инженера.
▪️Опытный сисадмин захотел в DevOps? / Техсобес на позицию Junior DevOps Engineer / Mock interview — максимально приближённое к реальности подробное собеседование сисадмина на позицию DevOps Junior.

📌Git:
▪️ Базовый курс по Git — обучающий курс по базам с уроками по 5-7 минут.
▪️Обзорное видео по GIT от авторского ютуб канала Артема Матяшова - Git. Большой практический выпуск. Автор очень хорошо объясняет. Если прям ничего про GIT не знаете, рекомендую начать с него. Хороший монтаж, подача, оформление. Я почти все его видео с удовольствием смотрел. У него их немного. 
▪️Очень прикольная визуальная обучалка по основам GIT - LearnGitBranching. Она поддерживается, регулярно обновляется. Качественно сделана. Есть русский язык.
▪️Бесплатный курс по основам от Слёрм — Git для начинающих.
▪️Бесплатные курсы по основам GIT на Stepik: Основы работы с Git и Самоучитель по GIT.
▪️ Более продвинутый курс с погружением в нюансы, ориентированный на разработчиков — Git курс от сообщества javascript.ru.
▪️ Бесплатная книга на русском языке — Pro Git book.

📌Docker:
▪️Основы Docker — хорошее обучающее видео по Docker для новичков.
▪️Play-with-docker — онлайн тренажер для изучения Docker.

📌Kubernetes:
▪️ Полный видеокурс по Kubernetes из 22 обучающих уроков — там вообще всё от нуля до мониторинга и деплоя приложений.
▪️ Play-with-k8s — онлайн платформа для изучения Kubernetes.

📌Ansible:
▪️Ansible На Русском Языке от небезызвестного Дениса Астахова, автора канала ADV-IT. Зная другие материалы этого автора, предполагаю, что это качественный материал.
▪️ИТМО: Инфраструктура как код — курс от известного сообщества DeusOps.
▪️Ansible для начинающих + практический опыт — курс знакомит любого абсолютного новичка в DevOps с основными моментами Ansible с помощью простых практических упражнений.
▪️Небольшой курс из двух уроков от автора канала Unix way. Я уже не раз упоминал его на канале. Уровень материала у него хороший. Да и отзывы к урокам говорят о том, что уроки сделаны качественно.

📌Машинное обучение:
▪️ Введение в машинное обучение
▪️ Прикладное машинное обучение
Это очень качественные в плане подаваемой информации материалы на основе лекций ФПМИ (Физтех-школа прикладной математики и информатики на базе МФТИ).

📌Регулярные выражения:
▪️regexlearn.com — качественный интерактивный тренажёр для изучения регулярных выражений. Он переведён на многие языки, в том числе русский.

#подборка #обучение
👍142👎2
На днях настраивал у себя в доме с нуля Mikrotik. Как это обычно бывает, времени свободного не было, надо было быстро сделать доступ в интернет. Для этого достаточно добавить правило для NAT и в принципе всё. Я ещё DNS сервер сразу включил и разрешил запросы к нему.

Это было новое подключение к провайдеру по PPPOE. Сразу оставил заявку на подключение мне статического внешнего IP адреса. Заявку на удивление быстро обработали, и я увидел у себя на pppoe интерфейсе внешний IP адрес.

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

add action=drop chain=input in-interface=pppoe-out1

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

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

Сразу увидел заблокированные входящие запросы от настроенного на Микротике DNS сервера. Последнее время использую DNS от msk-ix.ru: 62.76.76.62 и 62.76.62.76. На всякий случай проверил доступность внешних ресурсов по IP адресам, а не DNS именам. По IP доступ был.

В общем, сразу понял, что надо добавить правило для уже установленных соединений, чтобы DNS запросы обратно возвращались на роутер:

add action=accept chain=input connection-state=established in-interface=pppoe-out1

В таком виде интернет в локальной сети нормально заработал, а все запросы извне были заблокированы. На том и завершил пока настройку. То есть в минимальной настройке достаточно всего трёх правил для работы интернета в локальной сети с использованием DNS сервера на самом Микротике:

add action=accept chain=input connection-state=established in-interface=pppoe-out1
add action=drop chain=input in-interface=pppoe-out1
add action=src-nat chain=srcnat out-interface=pppoe-out1 to-addresses=1.2.3.4

В данном случае 1.2.3.4 - статический IP адрес на WAN интерфейсе. Если он не статический, то правило должно быть с masquerade.

add action=masquerade chain=srcnat out-interface=pppoe-out1

В чём разница между masquerade и src-nat, можно посмотреть в переведённой мной презентации с одного из выступлений на микротиковской конференции. Для дома или небольшого офиса принципиальной разницы нет, то для общего образования знать полезно.

Кстати, случился любопытный разговор с монтажником провайдера. Он, когда увидел Mikrotik, сказал, что они его не настраивают. Я успокоил, сказал, что настрою сам. Потом он уточнил, что в принципе, он знает, как настроить PPPOE соединение, роутер подключается к сети и получает IP адрес, но у пользователей в локальной сети интернет всё равно не работает. Я сразу понял, что он не знает о том, что нужно самому настроить NAT. В других домашних роутерах этого делать не надо. Там NAT по умолчанию настроен.

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

#mikrotik
51👍186👎11
На канале в разное время было много упоминаний про консольную утилиту для бэкапа restic. Она популярна в последнее время, много статей и роликов видел с её участием. Не буду много про неё рассказывать, перечислю только основные плюсы. А далее покажу один практический пример.

▪️Есть под все популярные системы, состоит из одного бинарника на go, есть в базовых репозиториях.
▪️Все данные по умолчанию шифруются.
▪️Формат хранения данных в виде снепшотов с дедупликацией.
▪️Поддерживает хранилища: локальная директория, SFTP, S3, свой сервер rest с доступом по HTTP и некоторые другие.
▪️Встроенная проверка целостности данных.
▪️Все параметры можно передавать ключами и переменными.

Я покажу далее, как забэкапить данные с помощью restic в S3 бакет на примере хостера Selectel. Настройка будет плюс-минус идентичной для любого облачного провайдера. У меня S3 бэкапы лежат там, поэтому показываю на данном примере. У хостеров может быть немного запутанной схема предоставления доступа к бакетам, так что иногда приходится повозиться немного, если делаешь впервые.

1️⃣ Создаю бакет у провайдера. В данном случае иду в раздел Инфраструктура S3 Бакеты. Создаю новый:
◽️Тип бакета: Приватный
◽️Класс хранения: Холодное хранение
◽️Версионирование: отключено (restic сам будет заниматься версионированием)
◽️Тип адресации: vHosted

Далее в разделе Аккаунт Сервисные пользователи добавляю нового пользователя, роль - Пользователь S3, Проект - выбранный проект, где создан бакет. Тут же перехожу во вкладку Доступ и создаю S3-ключи. Нужно записать Access key и Secret key. Они нам понадобятся при настройке Restic.

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

Бакет сделали, доступ настроили. Я получил следующие данные:
S3_HOST=https://s3.ru-1.storage.selcloud.ru
S3_BUCKET=restic55
ACCESS_KEY_ID=XXXXXXXXXX
SECRET_ACCESS_KEY=YYYYYYYYYY

2️⃣ Идём на сервер и устанавливаем Restic:

# apt install restic

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

# unset HISTFILE
# export AWS_ACCESS_KEY_ID=XXXXXXXXXX
# export AWS_SECRET_ACCESS_KEY=YYYYYYYYYY
# export RESTIC_PASSWORD="ZZZZZZZZZZ"

Пароль RESTIC_PASSWORD нужно обязательно сохранить. Без него бэкапы не расшифровать, доступа к ним не будет. Инициализируем репозиторий:

# restic init -r s3:https://s3.ru-1.storage.selcloud.ru/restic55

Теперь туда можно бэкапить:

# restic backup -r s3:https://s3.ru-1.storage.selcloud.ru/restic55 /var/www

Проверяем список бэкапов. В терминологии restic это snapshots:

# restic snapshots -r s3:https://s3.ru-1.storage.selcloud.ru/restic55
....
18eba378 2025-09-01 18:59:24 debian12-vm       /var/www
....

У нас только один snapshot. Восстановим его:

# mkdir /tmp/restore
# restic restore 18eba378 -r s3:https://s3.ru-1.storage.selcloud.ru/restic55 --target /tmp/restore

В директории /tmp/restore будут файлы этого снепшота.

Restic может автоматически ротировать снепшоты. Для этого у него есть набор ключей с гибкими настройками. Например:

🔹--keep-last N – последние N бэкапов
🔹--keep-daily N – для последних N дней, в которых есть один или несколько снимков, сохранять только самый последний снимок за каждый день
🔹--keep-within-daily duration – сохранять по одному последнему снимку, сделанному в течение указанного duration.

И так далее для разных временных отрезков. Наглядный типовой пример политики хранения:

--keep-within-daily 7d --keep-within-weekly 1m --keep-within-monthly 1y

Храним 7 дневных бэкапов, 4 недельных, 12 месячных.

Вы можете написать свои bash костыли для Restic, а можете взять что-то готовое. Например, вот репозиторий, где есть скрипт для бэкапа в S3 с логированием, с некоторыми проверками, с хранением параметров и пароля доступа в отдельных файлах.

🌐 Сайт / Исходники / Документация

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#backup #restic #s3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍127👎4
Не смог пропустить знаменательное событие сегодняшнего дня. Не забыли о нём? Сделаем так, чтобы на нашем сервере костры рябин горели вечно. Кстати, купил на днях в питомнике 3 рябины. Так что у меня скоро будут гореть реальные костры рябин.

Я уже раньше подобное делал с помощью cron. Пришло время применить systemd timers.

Итак, настроим на сервере вечное 3-е сентября. Для этого первым делом надо отключить синхронизацию времени, в зависимости от того, как она настроена. В современных серверах скорее всего это сделает команда:

# timedatectl set-ntp false

Далее нам нужно установить дату на 3-е сентября и добавить в планировщик. Можно сделать это в лоб вот так:

# date -s "2025-09-03 00:00:00"

Но тогда устанавливается время на 00:00. Можно сделать аккуратнее и менять только день, не трогая часы. Для этого создадим очень простой скрипт:

#!/bin/bash
now_date=$(date +%H:%M:%S)
now_year=$(date +%Y)
date -s "$now_year-09-03 $now_date"


Берём текущее время, текущий год и выставляем третье сентября текущего года с неизменным временем. Сохраняем скрипт в /usr/local/bin/3sep.sh и делаем исполняемым:

# chmod +x /usr/local/bin/3sep.sh

Создаём systemd сервис - /etc/systemd/system/3sep.service:
[Unit]
Description=Set system date to September 3rd, po zavetam Shafutinskogo

[Service]
Type=oneshot
ExecStart=/usr/local/bin/3sep.sh

[Install]
WantedBy=multi-user.target


Делаем таймер для службы /etc/systemd/system/3sep.timer:
[Unit]
Description=Turn over the calendar every minute

[Timer]
OnCalendar=*:0/1
Unit=3sep.service
Persistent=false

[Install]
WantedBy=timers.target


Перечитываем конфигурацию и запускаем таймер со службой:

# systemctl daemon-reload
# systemctl enable --now 3sep.service

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

#юмор #systemd
3👍107👎14
Недавно увидел в видео обзор сервиса с огромным набором всевозможных конвертеров, линтеров, обработчиков и т.д. Показалось, что там есть вообще всё, что может пригодится в разработке и эксплуатации в плане ручных преобразований. Раньше этот сервис не видел. Речь идёт о:

https://it-tools.tech

Всё это изобилие написано на JavaScript и может быть развёрнуто локально:

# docker run -d --name it-tools --restart unless-stopped -p 8080:80 corentinth/it-tools:latest

Из того, что может пригодиться по нашей теме, отмечу:

▪️IPv4 subnet calculator – калькулятор IP адресов для различных масок подсетей.
▪️MAC address lookup – узнать по MAC адресу производителя. Кстати, часто подобными проверками пользуюсь.
▪️Hash text – проверка хэшей SHA1, SHA256 и т.д.
▪️RSA key pair generator – создание public и private ключей. Сюда бы ещё добавить протокол Ed25519, он более актуален в наши дни.
▪️Password strength analyser – оценка стойкости пароля. Любопытно посмотреть, как добавление двух спецсимволов из очень простого пароля делает практически не перебираемый.
▪️Date-time converter – просмотр времени в различных форматах.
▪️YAML to JSON converter – и все подобные конвертеры и линтеры для YAML, JSON, TOML, XML.
▪️Crontab generator – будет актуально, если не знаете синтаксис cron.
▪️Chmod calculator – то же самое для chmod, если не помните синтаксис.
▪️Docker run to Docker compose converter – полезно выполнять запуск контейнеров в формате docker compose, чтобы потом не вспоминать, как ты запускал контейнер, а просто посмотреть в файле.
▪️Regex cheatsheet – подсказки по regex, чтобы быстро посмотреть, если забыл, что значат \t, \n, ^, $ и т.д.

Вам может быть актуально что-то ещё. Тут явно не хватает JSONPath. Постоянно им пользуюсь – jsonpath.com.

Добавил себе этот сервис на панель закладок браузера.

🌐 Сайт / Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#сервис
6👍143👎3
☝️ Всё новое – хорошо забытое старое.

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

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

Система в целом:
🔥Профилирование нагрузки в Linux
▪️Краткий список действий, чтобы понять, из-за чего тормозит сервер
▪️Временная нагрузка на сервер с помощью системных утилит для проверки мониторинга
▪️Анализ производительности системы под нагрузкой с помощью sysbench
▪️Прикладные примеры использования lsof для различных задач

Диск:
🔥 Анализ дисковой активности в Linux с помощью btrace, iostat, iotop, pidstat, fatrace, strace
▪️Анализируем нагрузку на диск с помощью perf-tools
▪️Расследование фантомных чтений с диска
▪️Отличный скрипт, который позволит быстро разобраться, кто и чем занял свободное место на сервере
▪️Снижение задержек в SSD дисках
▪️Файл удалили, а место не освободилось
▪️Шпаргалка с командами, если у вас закончилось место на диске

Сеть:
🔥Подборка утилит для просмотра статистики сетевых интерфейсов
▪️Анализ направлений трафика с реальными скоростями с iftop
▪️Анализ сетевой активности с помощью утилит из пакета netsniff-ng
▪️Запись дампа трафика конкретного приложения

Память:
🔥Просмотр использования памяти процессами с помощью pmap
▪️Кто и как использует swap
▪️Уменьшение или увеличение ram на ходу
▪️Удобный скрипт для просмотра использования оперативной памяти программами (не процессами!)

Разное:
▪️Расследование тормозов MySQL сервера
▪️Трассировка медленных запросов в php-fpm

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#подборка #linux #perfomance
1👍185👎2
Изучил и протестировал необычную систему по контролю за временем, проведённым за компьютером. Задумался на днях над тем, как ограничить время, проведённое детьми за компьютером. С малых лет покупаю им компьютеры, чтобы привыкали и учились за ними работать. Но оставлять их с ним бесконтрольно нельзя.

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

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

Libki – это open source платформа, состоящая из серверной части и клиентов. Клиенты устанавливаются на конечные системы (Linux и Windows), соединяются с сервером и от него получают разрешение на время, проведённое за компьютером определённым пользователем. То есть клиент управляет доступом к компьютеру.

С помощью Libki можно:

◽️Создавать пользователей и указывать, сколько каждый из них может провести времени за компьютером.
◽️Указывать интервалы времени, в которое доступ разрешён или заблокирован. Это как раз то, что мне нужно. Я могу запретить использование компьютера после 22:00.
◽️Ограничивать не только максимальное время за компьютером, но и интервал непрерывного пользования. То есть можно установить, что компьютером можно пользоваться 2 часа в день, но при этом не дольше, чем одним интервалом в час с обязательным перерывом в 2 часа.
◽️Указывать системных пользователей, для которых действуют ограничения, но при этом оставлять тех, на кого они не распространяются. Например, для детей есть ограничения, для родителей – нет.
◽️Отправлять уведомления при аутентификации пользователя за компьютером.
◽️Управлять ограничениями с печатью на принтере. Не тестировал и не разбирался с этой функциональностью.
◽️Настраивать гостевой доступ для пользователей компьютера без своей учётной записи.

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

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

1️⃣ Debian 11 – самая свежая версия, которая поддерживается автоматическим скриптом установки. На 12-й у меня не заработал скрипт. Написал, что версия не поддерживается. Может его можно отредактировать, поставить вручную или в Docker. Не проверял. Развернул быстро в LXC контейнере с Debian 11:

# wget -O- install.libki.org | bash

Как я уже сказал, можно установить и вручную, если не доверяете скрипту. Если инструкция в документации.

2️⃣ Продукт старый. Раньше развивался активнее. Сейчас гораздо меньше. Последний релиз сервера был в 2022 году, клиент посвежее. На Windows 11 нормально встал.

3️⃣ У меня глючно работал веб интерфейс управления. Некоторое время не мог добавить нового пользователя. Кнопка просто не работала. Пробовал разные браузеры. Не понял, что в итоге помогло. В какой-то момент перезагрузил контейнер и всё нормально заработало. Так что смог проверить работу системы.

В целом, всё работает. Установил сервер однострочником, зашёл в веб интерфейс, добавил пользователя. Потом установил на Windows 11 клиент, связал его с сервером, указал пользователя (себя), для которого нет ограничения. Остальные пользователи, когда входят в систему, видят интерфейс клиента, куда надо ввести учётные данные пользователя, созданного на сервере. Пока не введешь, доступа к системе нет.

Как я сказал, программа работает, но выглядит так себе. Если кто-то знает бесплатные аналоги, буду рад рекомендациям.

🌐 Сайт / Исходники / Документация

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#управление
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍97👎5
Думаю, многие из вас знают или слышали о бесплатном продукте Suricata – это система обнаружения вторжений (IDS) и система предотвращения вторжений (IPS) с открытым исходным кодом. Её обычно используют в программных шлюзах и анализаторах трафика. Например, в IPFire, OPNsense, PfSense, Arkime и т.д.

На базе Suricata построен известный продукт SELKS, который является отличным дополнением к бесплатному же Wazuh - это SIEM система (Security Information and Event Management). Получается хорошая связка:

◽️SELKS мониторит сетевой трафик в режиме реального времени, выявляет угрозы на уровне сети и пытается их предотвратить.
◽️Wazuh ставит агенты на конечные системы, собирает данные об ОС, софте, уязвимостях, о событиях из логов, об изменениях с уровня файловой системы и т.д.

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

В январе этого года SELKS прекратил своё развитие в том виде, как он был. Его переименовали в Clear NDR – Community и немного пересобрали. Заменили Elastic Stack (Elasticsearch, Logstash, Kibana) на OpenSearch и Fluentd. Также изменили веб интерфейс с Kibana на тот, что есть в Enterprise-версии. Но при этом версия осталась бесплатной с той же функциональностью. Разработчики обещают более активное развитие, так как теперь у
Community и Enterprise версии общая кодовая база и одинаковый веб интерфейс.

Для Clear NDR - Community пока нет собранного ISO файла, как это было у SELKS. Его можно было развернуть с помощью установщика, как отдельную, новую систему. Clear NDR ставится поверх уже установленной с помощью утилиты stamusctl и работает на базе Docker.

Установка Clear NDR - Community:

# wget https://dl.clearndr.io/stamusctl-linux-amd64
# chmod +x ./stamusctl-linux-amd64
# mv ./stamusctl-linux-amd64 /usr/local/bin/stamusctl

У меня напрямую не скачался бинарник на сервере. Не знаю почему, не стал разбираться. Скачал через браузер даже без VPN и закинул на сервер вручную.

# mkdir /opt/ClearNDR && cd /opt/ClearNDR
# stamusctl compose init

Выбираем сетевой интерфейс, на котором будем слушать трафик. Запускаем сервис:

# stamusctl compose up -d

Можно идти в веб интерфейс по HTTPS и настраивать систему. Учётка по умолчанию - selks-user / selks-user.

К сожалению, на Clear NDR нельзя напрямую подать NetFlow трафик для простого и удобного анализа, поэтому если сервер с ней не является шлюзом, то нужно будет каким-то образом реализовывать подачу нужного трафика на сетевой интерфейс сервера с Clear NDR. В зависимости от топологии сети, задача может решаться по-разному.

Для ручных проверок готовых дампов трафика в формате pcap, можно сделать вот так:

# stamusctl compose readpcap fulltraf.pcap

Система при запуске заберёт себе и проанализирует весь трафик из файла.

Проверить работу можно с помощью набора проверок отсюда: https://github.com/3CORESec/testmynids.org

Отдельно отмечу, что в составе Clear NDR есть полнофункциональный Arkime.

🌐 Сайт / Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#security #gateway
👍109👎3
Помню, как я после изучения Ansible, начал пытаться всё автоматизировать. Была идея под каждой статьёй на сайте оставлять настроенный playbook для воспроизведения. Кое-что автоматизировал, но порыв быстро прошёл.

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

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

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

# curl https://get.docker.com | bash -

Мне видится это самым простым и быстрым вариантом. Так что автоматизация это такое дело, что сначала подумать надо, а потом внедрять. Сейчас ИИ все эти процедуры и подходы трансформирует. Иногда достаточно ему словами написать, что надо, и он тут же тебе всё автоматизирует. А ты идёшь пить крафтовый кофе, или сифон под раковиной менять (наболевшее).

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

#разное
👍137👎1
🎮🎓 1-го сентября была подборка бесплатных обучающих материалов на различные темы. Не стал туда включать игры, так как объём и так большой получился. Отложил это дело на выходные.

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

◽️Oh My Git! — одна из самых известных и популярных игр на тему изучения Git. Для этой технологии, на мой взгляд, сделано больше всего игр.
◽️Vim Adventures — научит выходить из Vim. Играть можно в браузере. Игра платная, бесплатно доступны первые несколько уровней.
◽️Elevator Saga — залипательная игра для изучения JavaScript. Нужно программировать эффективную работу лифта по перевозке людей. Играл в неё сам, мне понравилось.
◽️Bandit — хакерская тематика со взломом через использование консоли в Linux. Проходится на реальном сервере в интернете, к которому надо подключаться. Советую обратить внимание, игра интересная и сложная.
◽️Natas — игра от разработчиков Bandit, но тема другая. Никаких ssh и консоли, только браузер. Нужно проходить уровни, изучая сайт и веб сервер, находя в них уязвимости. 
◽️while True: learn() — головоломка-симулятор на тему машинного обучения, нейронных сетей, ИИ и BigData. В игре вы выступаете в роли тыжпрограммиста, у которого есть кот, который лучше разбирается в it, чем вы.
◽️You're the OS! — условно обучающая игра, которая очень примитивно показывает механику работы операционной системы с процессами. Игра из разряда позалипать и убить время.
◽️GameShell — консольная игра, которая учит основам консольных команд Linux.
◽️ SLASH\ESCAPE — интерактивная атмосферная обучающая игра на тему регулярных выражений.
◽️Linux Master — игра-викторина под Android, где надо отвечать на тесты по различным темам, связанными с ОС на базе Linux.
◽️Симулятор системного администратора — хардкорная игра, где максимально приближённо реализованы будни офисного системного администратора. Даже игрой не поворачивается язык это назвать. Выглядит, как вторая работа 😁
◽️ServiceIT: You can do IT — игра по смыслу и геймплею очень похожа на предыдущую. В ней вы будете работать в IT поддержке и в том числе чинить железяки.
◽️KodeKloud Engineer — вы регистрируетесь и начинаете путь обычного сисадмина. Вас знакомят с проектом, рассказывают, что там к чему. Для него есть подробная схема, wiki, таблица с ip адресами и доступами. Примерно раз в день вам будут давать какое-то задание по этой инфраструктуре. Всё выполняется в виртуальной консоли в браузере, которая эмулирует консоль Linux. Задания максимально приближены к реальным задачам админа или devops.

❗️Отдельно обращаю внимание на последнюю игру. Она максимально приближена к реальности. Вот пример одной из задач, которую я разобрал.

#игра #обучение #подборка
👍76👎2