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
SSH Jump Host: один вход - доступ ко всей сети

Когда в инфраструктуре десятки серверов, но наружу хочется показать только один, на помощь приходит Jump Host (он же bastion).

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


Такой подход решает сразу несколько задач:

1️⃣Сокращает поверхность атаки — из интернета доступен только один хост.
2️⃣Упрощает доступ — не нужно помнить десятки IP-адресов и логинов.
3️⃣Позволяет централизовать контроль — на бастионе можно вести логи всех подключений.

Подключение настраивается через ~/.ssh/config с помощью ProxyJump:

Host bastion
HostName 203.0.113.10
User admin

Host internal-*
ProxyJump bastion
User root


Теперь ssh internal-01 автоматически пойдёт через bastion без лишних команд.

Для повышения безопасности часто добавляют двухфакторную аутентификацию на самом bastion, настраивают fail2ban для защиты от переборов паролей, а также используют auditd или session-logging, чтобы видеть действия пользователей и вести аудит.

В итоге имеем одну точку входа, строгий контроль и удобство администрирования без лишних дыр в сети.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🤨2
Разработчик запустил код на сервере, меняя только комментарии в 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