Admin Guides | Сисадмин
11.4K subscribers
1.23K photos
19 videos
34 files
558 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
Разработчик запустил код на сервере, меняя только комментарии в Python-скрипте

На CTF UIUCTF 2025 участник сумел выполнить свой код на сервере, имея возможность изменять лишь содержимое комментариев в Python-скрипте.

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


Старые версии CPython допускали уязвимость с нулевым байтом (\0) в комментариях, но на соревновании использовали уже исправленную версию.

Решение — воспользоваться тем, что Python может запускать ZIP-архивы с файлом main.py, даже если файл имеет расширение .py.

Участник встроил такой архив внутрь комментария, обойдя ограничения.
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥3
isc-dhcp-server с динамическим обновлением DNS

Обычно DHCP раздаёт IP, а DNS приходится прописывать вручную.

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


Для этого нужен isc-dhcp-server с поддержкой DDNS (Dynamic DNS) и настроенный Bind. В связке они обновляют записи A и PTR без участия админа.

Пример из dhcpd.conf:

ddns-update-style interim;
ddns-domainname "lab.local";
ddns-rev-domainname "in-addr.arpa.";

zone lab.local. {
primary 127.0.0.1;
key dhcpupdate;
}

zone 0.168.192.in-addr.arpa. {
primary 127.0.0.1;
key dhcpupdate;
}

include "/etc/bind/keys.conf";


А в keys.conf хранится TSIG-ключ, которым DHCP будет подписывать запросы к Bind.

После этого любой клиент, получая IP, тут же появляется в DNS.

Удобно для тестовых сетей, лабораторий и даже в проде, если нужно быстро находить машины по имени.
7👍7
Какой параметр команды tcpdump нужен, чтобы показать полный пакет без усечения?
Anonymous Quiz
26%
-s 0
40%
-v
20%
-X
14%
-w
🤨94
Проверка скорости дисков без fio и dd

Многие тестируют диски через fio или dd, но в продакшне эти утилиты не всегда доступны (или их просто нельзя ставить).

Хорошая новость — скорость и поведение диска можно оценить встроенными инструментами Linux.

iostat (часть пакета sysstat) показывает нагрузку на диски в реальном времени:

iostat -dx 1


Здесь видно количество операций чтения/записи, среднюю задержку (await) и процент занятости диска (%util).

dstat даёт обзор: CPU, память, диски, сеть — всё в одной таблице:

dstat -cdmn --disk-util


perf позволяет копнуть глубже и оценить, как работают системные вызовы I/O:

perf stat -e block:block_rq_issue,block:block_rq_complete dd if=/dev/zero of=testfile bs=1M count=100


Так можно понять, сколько реально времени уходит на обработку операций, не нагружая систему тестами “в лоб”.
8🔥2
🔥177🎄3🤔1
Ловим утечки памяти в системных демонах без остановки сервиса

Иногда перезапуск сервиса — роскошь, особенно на продакшене.

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

1️⃣Быстрый снимок памяти процесса

pmap -x <PID> | grep total


Покажет, сколько всего памяти занято, и как распределены сегменты. Запусти несколько раз с интервалом — смотри на рост.

2️⃣Детализация по типам памяти

smem -p -P <PID>


Удобно видеть RSS/PSS/USS и их изменения, чтобы понять, реальная ли это утечка, а не кеш ОС.

3️⃣Глубокий анализ на лету

sudo stap -e 'probe process("имя_процесса").function("*alloc*") { println(probefunc()) }'


С помощью SystemTap можно отследить, какие функции выделяют память, и сопоставить с ростом потребления.

Так что фиксируй метрики в лог и смотри тренд. Если рост стабилен, а GC/освобождение не происходит — это утечка.
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥3
Вышел Debian 13 «Trixie»

9 августа 2025 вышла новая версия Debian 13 на базе ядра Linux 6.12 LTS с обновлёнными рабочими столами GNOME 48, KDE Plasma 6.3 и Python 3.13.

Дистрибутив поддерживает множество архитектур, включая AMD64, ARM64 и RISC-V. Обновления будут выходить до 2030 года.

Основные изменения:
Добавлен официальный порт для 64-битного RISC-V.
Удалены устаревшие архитектуры mipsel и mips64el.
Решена проблема 2038 года с временем.
/tmp теперь по умолчанию на tmpfs для снижения износа накопителей.
Обновлён инсталлятор с поддержкой удалённой загрузки HTTP Boot.
Включены современные методы защиты ядра (Intel CET, ARM PAC).
Обновлён пакетный менеджер APT с улучшенным интерфейсом и поддержкой снапшотов.
Обновлены ключевые приложения: LibreOffice, GIMP, PostgreSQL, nginx, Docker.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥173
Минимальный набор метрик, которые надо снимать с любого сервера

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

Вот минимальный список метрик, которые должны быть всегда под контролем:

1️⃣CPU Load — нагрузка на процессор показывает, насколько сервер загружен и не «тормозит» ли из-за перегрузки.
2️⃣I/O Wait — время ожидания ввода-вывода сигнализирует о проблемах с дисками или сетью.
3️⃣Swap Usage — использование swap говорит о нехватке оперативной памяти, что сильно снижает производительность.
4️⃣Network Errors — ошибки на сетевых интерфейсах (потеря пакетов, сбои) влияют на доступность и скорость.

Как быстро настроить сбор этих метрик через node_exporter

node_exporter — это простой агент от Prometheus, который собирает данные о системе и отдаёт их по HTTP.

Устанавливаем node_exporter:

sudo apt update  
sudo apt install prometheus-node-exporter


Запускаем и включаем сервис:

sudo systemctl enable --now prometheus-node-exporter  


По умолчанию метрики доступны на порту 9100 (https://<server_ip>:9100/metrics).
В Prometheus добавьте этот хост в targets для сбора метрик.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое Dirty Pages в Linux и как система с ними работает?

Ответ: Dirty Pages — это страницы памяти, которые были изменены в оперативной памяти, но ещё не записаны на диск. Они хранят промежуточные данные до записи в файловую систему.

Linux управляет Dirty Pages через параметры vm.dirty_ratio и vm.dirty_background_ratio, регулирующие, сколько памяти можно использовать под такие страницы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123
Трюки с SSH для продуктивности

SSH — это не только удалённый терминал, но и мощный инструмент для повышения эффективности работы.

Рассмотрим три полезных фишки: мультиплексирование, проброс портов и ProxyJump.


1️⃣Мультиплексирование соединений (ControlMaster): Обычно при каждом новом SSH-подключении создаётся отдельное соединение — это тормозит и требует ресурсов.

ControlMaster позволяет использовать одно главное соединение для нескольких сессий, ускоряя подключение.

Как настроить:
Добавьте в ~/.ssh/config:

Host *
ControlMaster auto
ControlPath ~/.ssh/cm-%r@%h:%p
ControlPersist 10m


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

2️⃣ Проброс портов (Port Forwarding): SSH умеет «прокидывать» порты, что полезно для безопасного доступа к внутренним сервисам:

Локальный проброс: доступ к удалённому порту через локальный

ssh -L 8080:localhost:80 user@server  


Теперь на вашей машине localhost:8080 будет перенаправлен на server:80.

Удалённый проброс: наоборот, проброс с сервера на клиент

ssh -R 9090:localhost:3000 user@server  


Динамический проброс (SOCKS Proxy):

ssh -D 1080 user@server  


Создаёт SOCKS5-прокси на локальном порту 1080, который можно использовать в браузере.

3️⃣ ProxyJump (перескакивание через bastion): Если сервер доступен только через промежуточный bastion, удобно использовать ProxyJump вместо ручных туннелей:

В ~/.ssh/config:

Host internal-server
HostName internal.example.com
User user
ProxyJump [email protected]


Теперь достаточно одной команды ssh internal-server, и соединение пройдёт через bastion автоматически.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍63🤩1
Какой гипервизор является «bare-metal» (тип 1)?
Anonymous Quiz
8%
VirtualBox
52%
VMware ESXi
6%
Docker
35%
KVM
🤔13👍32🔥2
🐳12💯5👨‍💻42
Минимизация простоя при обновлении ядра: kexec и live-patching

Обновление ядра Linux обычно требует перезагрузки, что приводит к простою сервисов.

Чтобы сократить это время, применяют два основных инструмента — kexec и live-patching.


Kexec — позволяет загрузить новое ядро поверх текущей системы, минуя BIOS и загрузчик. Это значительно ускоряет процесс перезагрузки.

Для использования:
Установите kexec-tools.
Подготовьте загрузку нового ядра командой kexec -l /boot/vmlinuz-....
Запустите перезагрузку через systemctl kexec или kexec -e.

Таким образом, перезагрузка проходит быстрее, минимизируя простой.

Live-patching — обновление ядра без перезагрузки. Патчи применяются к работающему ядру, что позволяет не останавливать сервисы.

Популярные решения:
• kpatch (Red Hat)
• kgraft (SUSE)
• Canonical Livepatch (Ubuntu)

Live-patching обычно используется для критических обновлений безопасности и требует поддержки со стороны ядра и дистрибутива.

Преимущества live-patching — полное отсутствие простоев, однако настройка сложнее и может требовать лицензий.
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое BPF Type Format (BTF) и какую роль он играет в Linux?

Ответ: BPF Type Format (BTF) — это формат отладки и описания типов данных, который используется в eBPF для более эффективной работы с программами в ядре Linux. BTF позволяет инструментам eBPF лучше понимать структуры данных ядра без необходимости повторного компилирования или сложного анализа.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63
Мониторинг состояния RAID-массивов: smartctl и mdadm

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

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


Почему мониторинг важен?

Диски могут выходить из строя постепенно — появляются сбои, сбои в SMART, ошибки чтения или записи.

RAID-контроллер или программный RAID (mdadm) часто могут продолжать работать, даже если один из дисков уже на грани. Без мониторинга это легко пропустить.

Инструменты для мониторинга
smartctl — часть пакета smartmontools, позволяет считывать SMART-статистику и тестировать жесткие диски.
mdadm — утилита для управления и мониторинга программных RAID-массивов Linux.

Как использовать smartctl

Проверка статуса диска:

sudo smartctl -a /dev/sdX


Основные параметры для мониторинга:
Reallocated_Sector_Ct — количество переназначенных секторов (должно быть 0)
Current_Pending_Sector — количество секторов, ожидающих переназначения
Offline_Uncorrectable — ошибки, которые не удалось исправить

Для запуска краткого теста:

sudo smartctl -t short /dev/sdX


Мониторинг RAID с mdadm

Проверка статуса массива:

sudo mdadm --detail /dev/md0


Здесь важно следить за статусом — “clean”, “degraded” или “resync”.

Автоматизация и уведомления

Настройка smartd — демон, который периодически опрашивает диски и отправляет письма при проблемах. Конфиг находится в /etc/smartd.conf.

Пример строки для диска:

/dev/sdX -a -o on -S on -s (S/../.././02|L/../../6/03) -m [email protected]


mdadm мониторинг — можно настроить отправку писем при изменении статуса массива.

Добавьте в /etc/mdadm/mdadm.conf:

MAILADDR [email protected]


Запустите демон:

sudo systemctl enable mdmonitor
sudo systemctl start mdmonitor
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍6🔥2
Минимизация простоя при обновлении ядра

Обычное обновление ядра требует перезагрузки. Для продакшена это боль: сервисы простаивают, клиенты недовольны.

Но есть два подхода, которые позволяют сократить или даже убрать downtime.

Kexec

kexec загружает новое ядро напрямую, без BIOS и долгой инициализации.

sudo kexec -l /boot/vmlinuz-<new> \
--initrd=/boot/initrd.img-<new> \
--reuse-cmdline

sudo systemctl kexec


Плюсы:
• простои сокращаются до секунд;
• быстро и довольно надёжно.

Минусы:
• всё равно перезагрузка (хоть и быстрая);
• иногда бывают проблемы с экзотическим железом.

Live patching

Фиксы накатываются прямо на работающем ядре. Сервисы не останавливаются вообще.

Популярные решения:
kpatch (RHEL/Fedora)
kgraft (SUSE)
livepatch (Ubuntu)

Пример для Ubuntu:

sudo snap install canonical-livepatch
sudo canonical-livepatch enable <токен>


Как выбирать?

Нужно быстрое обновление с минимальным downtime → kexec.
Нужно работать без остановки сервисов → live-patching.
Оптимально: комбинировать (livepatch для критики, kexec/перезагрузка — для плановых апдейтов).
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4
Kaisen Linux закрыт: что теряют сисадмины и альтернативы

Проект Kaisen Linux, созданный в 2019 году для системных администраторов и ИТ-специалистов, завершил своё существование с релизом версии 3.0.

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


Особенности Kaisen Linux:
Основан на Debian, готов к работе «из коробки» для администрирования и восстановления систем.
Включал инструменты для диагностики, управления RAID, сетевого анализа и аварийного восстановления.
Предлагал разные сборки: с графикой и портативную флешку с загрузкой в RAM.

Закрытие Kaisen — ещё один удар по нишевым дистрибутивам для профессионалов.

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

Альтернативы для сисадминов:
SystemRescue — для восстановления систем и данных, без графики.
Kali Linux — включает сетевые утилиты, требует ручной настройки для администрирования.
Debian с кастомизацией — собрать систему под себя, используя пакеты Debian.
Clonezilla Live — для аварийного восстановления и клонирования дисков.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥2
Работа с core dump’ами: coredumpctl и gdb

Core dump — это снимок памяти процесса в момент его краша. 


Он позволяет понять, почему именно упал сервис: segmentation fault, ошибка в библиотеке или проблема с самим кодом.

Для сисадмина это инструмент, который экономит часы: вместо «сервис падает раз в неделю, непонятно почему» можно за 10 минут локализовать баг или хотя бы передать разработчикам понятный отчет.

Как включить core dump’ы в Linux

По умолчанию многие дистрибутивы их отключают (ради безопасности и экономии места).

Проверяем лимиты:

ulimit -c


Если вывод 0 — значит, core dump’ы не пишутся. Включить можно так:

ulimit -c unlimited


Чтобы это сохранилось для сервисов, лучше настраивать через systemd-coredump, который перехватывает и сохраняет дампы в /var/lib/systemd/coredump/.

Сбор core dump через systemd

Падение процесса → systemd сохраняет дамп. Дальше смотрим список:

coredumpctl list


Анализ конкретного дампа:

coredumpctl info PID


Если нужен сам файл:

coredumpctl dump PID > core.dump
🔥7👍42
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое Slab Allocator в Linux и зачем он нужен?

Ответ: Slab Allocator — это механизм управления памятью ядра Linux для эффективного выделения и повторного использования объектов фиксированного размера. Он уменьшает фрагментацию памяти и ускоряет работу ядра, особенно при частом создании и удалении структур данных, таких как дескрипторы файлов или сетевые буферы.
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🤣2
Media is too big
VIEW IN TELEGRAM
🔥 Время перемен в корпоративных коммуникациях

Если вы всё ещё общаетесь в Skype for Business, стоит подумать о будущем: с октября Microsoft полностью прекращает его поддержку.

А что делать бизнесу, когда нужны стабильные видеозвонки и чаты? У нас есть ответ 👉 TrueConf Server.

🔘 Это альтернатива, которая легко подстраивается под компанию любого размера.
🔘 Внутри мессенджер со всеми привычными опциями, конференции в 4K, вебинары, планировщик, совместная работа и ИИ.
🔘 Время установки — 15 минут.

Если для рабочего общения вы использовали Skype for Business, Telegram и другие сервисы, приходите на вебинар, где покажут, как перенести чаты и звонки на современную и безопасную систему.

📆 Уже 21 августа, 11:00 мск
🤑 Регистрация
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1