Admin Future
241 subscribers
51 photos
1 video
4 files
120 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
Linux: Забудь про ifconfig. Настраиваем сеть декларативно с Netplan

В современных Ubuntu и других дистрибутивах редактирование файла /etc/network/interfaces — это устаревший подход. На смену ему пришёл Netplan — декларативный инструмент для настройки сети через простой YAML-синтаксис.

Вы больше не пишете команды "как настроить". Вы описываете "какой должна быть сеть".

Задача: Настроить на сервере статический IP-адрес.

1. Находим файл конфигурации:
Все конфиги лежат в /etc/netplan/. Обычно это файл вроде 01-netcfg.yaml или 50-cloud-init.yaml.

Bash

ls /etc/netplan/

2. Редактируем конфигурацию:
Открываем найденный файл и приводим его к следующему виду. Внимание: YAML чувствителен к отступам! Используйте два пробела.

YAML

network:
version: 2
renderer: networkd # Используем systemd-networkd, стандарт для серверов
ethernets:
ens18: # Имя вашего интерфейса (узнать: ip a)
dhcp4: no # Отключаем DHCP
addresses:
- 192.168.1.100/24 # Статический IP и маска
gateway4: 192.168.1.1 # Шлюз
nameservers:
addresses: [8.8.8.8, 1.1.1.1] # DNS-серверы

3. Применяем конфигурацию:
Две команды для проверки и применения.

Bash

# Проверяем синтаксис файла
sudo netplan generate

# Применяем изменения
sudo netplan apply

Почему это взгляд архитектора?
✅ Декларативность: Конфиг описывает конечное состояние. Его легко читать, версионировать в Git и использовать в системах автоматизации (Ansible, Terraform).
✅ Атомарность: Команда netplan apply применяет изменения атомарно. Если в конфиге ошибка, он не сломает вам сеть посреди процесса.
✅ Универсальность: Netplan — это "фронтенд", который может управлять разными "бекендами" (systemd-networkd или NetworkManager), скрывая от вас сложность их настройки.

#linux #networking #netplan #ubuntu #architect #команды
Linux: Настрой и забудь. Автоматические обновления безопасности с Unattended-Upgrades

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

Архитектурно правильное решение — автоматизировать установку только критически важных обновлений безопасности, чтобы минимизировать риски простоя и обеспечить базовую защиту. В Ubuntu/Debian для этого есть unattended-upgrades.

Пошаговая настройка:

Установка (если его ещё нет):

Bash

sudo apt update
sudo apt install unattended-upgrades

Основная конфигурация:
Откройте файл /etc/apt/apt.conf.d/50unattended-upgrades. Найдите и раскомментируйте (уберите //) строку, отвечающую за security-апдейты:

// Раскомментировать эту строку:
"${distro_id}:${distro_codename}-security";

Это разрешает установку обновлений только из репозитория безопасности.
В этом же файле можно настроить отправку отчётов на email или автоматическую перезагрузку, если она требуется.

Включение автоматического запуска:
Откройте файл /etc/apt/apt.conf.d/20auto-upgrades и убедитесь, что его содержимое выглядит так:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Первая строка включает ежедневное выполнение apt update. Вторая — ежедневный запуск unattended-upgrade.

Проверка и отладка:
Вы можете запустить процесс в "сухом" режиме, чтобы посмотреть, что именно будет обновлено:

Bash

sudo unattended-upgrades --dry-run --debug

Все логи работы хранятся в /var/log/unattended-upgrades/.

Взгляд архитектора:
Это не просто скрипт в кроне. Это компонент зрелой стратегии управления уязвимостями. Он обеспечивает постоянный базовый уровень безопасности для всего парка машин, освобождая время инженера для более сложных задач. Риск "сломать всё" минимален, так как обновления приложений и ядра (которые могут повлиять на совместимость) остаются для установки вручную.

#linux #security #automation #ubuntu #debian #гайд
🐧 Linux: systemd 260 убил SysV — и если у тебя ещё живёт /etc/init.d, читай срочно

Коллеги, 17 марта 2026 года вышел systemd 260 — и он сделал то, о чём предупреждали несколько лет. Наиболее разрушительное изменение: полное удаление поддержки System V init-скриптов. Компоненты systemd-sysv-generator, systemd-sysv-install и rc-local.service удалены окончательно. Никакого мягкого устаревания — мост сожжён.

Если у вас в продакшне живут legacy-сервисы со скриптами в /etc/init.d/ — они тихо перестанут запускаться после обновления. Без ошибок в журнале. Просто не стартуют.

Но в этом же релизе есть кое-что интересное: добавлен новый параметр MemoryTHP= для управления Transparent Huge Pages на уровне отдельного сервиса, а CPUSchedulingPolicy= теперь поддерживает значение ext для включения планировщика SCHED_EXT. Для высоконагруженных сервисов — это прямой рычаг тонкой настройки без правки параметров ядра глобально.

Сначала — аварийный аудит. Находим всё, что ещё на SysV:


# Ищем живые SysV-скрипты в системе
find /etc/init.d/ -type f -not -name "README" 2>/dev/null

# Проверяем, нет ли сервисов без native unit-файла
# (до обновления на systemd 260 — sysv-generator ещё конвертировал их)
systemctl list-units --type=service --state=loaded | grep -v ".service"

# Смотрим, какие сервисы СЕЙЧАС запущены через SysV-совместимость
systemctl list-units --type=service | \
while read unit _; do
unit_file=$(systemctl show "$unit" -p FragmentPath --value 2>/dev/null)
[[ "$unit_file" == /etc/init.d/* ]] && echo "LEGACY SysV: $unit -> $unit_file"
done

# Для найденного legacy-сервиса пишем нормальный unit.
# Пример: конвертируем старый /etc/init.d/myapp
cat > /etc/systemd/system/myapp.service << 'EOF'
[Unit]
Description=My Legacy Application
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/myapp --daemon
ExecStop=/usr/local/bin/myapp --stop
PIDFile=/var/run/myapp.pid
Restart=on-failure
RestartSec=5s

# Новое в systemd 260: тонкая настройка памяти для сервиса
# Отключаем THP для Java-приложений (они его не любят)
MemoryTHP=never

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now myapp.service
systemctl status myapp.service


Зачем это нужно:
Сервисы, у которых нет native unit-файлов, после обновления на systemd 260 не запустятся тихо и без предупреждений. Самый критичный action item для всех администраторов — провести аудит и мигрировать оставшиеся SysV init-скрипты до обновления. Ubuntu 26.04 LTS выходит 23 апреля и несёт systemd 260 по умолчанию. Срок — неделя.

Итог: SysV жил с 1983 года. Хватит. Если у тебя до сих пор есть /etc/init.d/что-то — это не legacy, это пожарная опасность. Миграция на unit-файл занимает 15 минут. Объяснение инциденту на встрече с Романом — значительно дольше.

#linux #systemd #sysv #sysadmin #ubuntu #admin_future
🐧 Linux: Ubuntu 26.04 LTS вышла сегодня — что важно для сервера

Коллеги, 23 апреля 2026 — день релиза Ubuntu 26.04 LTS «Resolute Raccoon». Поддержка 5 лет бесплатно (до 2031), с Ubuntu Pro — 10 лет. Это первый LTS после 24.04.

Три вещи, важных конкретно для серверной эксплуатации:

Первое — sudo-rs теперь дефолтный sudo-провайдер. Оригинальный sudo переименован в sudo.ws. Пакет sudo-ldap удалён: LDAP-аутентификация теперь только через PAM. Если у вас sudo через LDAP — проверьте конфигурацию до апгрейда.

Второе — systemd в этом релизе убирает поддержку cgroup v1 полностью. Только унифицированная иерархия cgroup v2. Если какие-то контейнеры или легаси-сервисы у вас были привязаны к v1 — они не запустятся.

Третье — ядро Linux 7.0 из коробки. Это XFS self-healing, стабильный Rust, улучшенная производительность памяти (время аллокации больших блоков упало с 3.6 до 0.43 секунды), создание контейнеров стало на 40% быстрее.


# Проверяем готовность к апгрейду с 24.04
# Смотрим есть ли sudo через LDAP
grep -r "ldap" /etc/sudo* /etc/nsswitch.conf 2>/dev/null

# Проверяем cgroup версию
stat -fc %T /sys/fs/cgroup/
# tmpfs = v1 (проблема), cgroup2fs = v2 (порядок)

# Официальный апгрейд (когда будет открыт путь 24.04→26.04):
sudo do-release-upgrade


Зачем это нужно:
Для продакшн-серверов рекомендуется подождать релиза 26.04.1 в августе 2026 — первый point release включает несколько месяцев исправлений и открывает официальный путь апгрейда с 24.04.

Итог: новые серверы — ставьте 26.04 сегодня. Продакшн 24.04 — дождитесь августа.

#linux #ubuntu #lts #sysadmin #admin_future
🐧 Linux: Rust теперь в APT — и это важнее чем кажется

Коллеги, на этой неделе случилось кое-что, о чём мало кто написал — но что касается каждого администратора Debian/Ubuntu-флота напрямую.

Два события мая 2026 окончательно переместили Rust из категории «языка будущего» в load-bearing инфраструктуру. Первое: Linux 7.0 убрал пометку experimental с Rust — теперь это официальный язык ядра наравне с C. Второе: APT maintainer Julian Klode объявил что Debian's package manager начинает требовать жёсткую зависимость от Rust начиная с мая 2026.

Что это значит практически для администратора:

APT — это package manager для Debian и каждого производного дистрибутива: Ubuntu, Linux Mint, Pop!_OS, Kali Linux, Raspberry Pi OS. Rust-компилятор, стандартная библиотека и части Sequoia PGP теперь встроены в core APT — для парсинга .deb, .ar и .tar файлов, а также HTTP signature verification.

Зачем Rust именно здесь? APT обрабатывает недоверенные данные (пакеты из интернета) на уровне root. Memory corruption в парсере пакетов — это immediate root compromise. Rust устраняет целые классы уязвимостей вроде use-after-free, которые типичны для C-кода. Это интеграция снижает реальную поверхность атаки в местах где это наиболее критично.

# Проверяем Rust в APT на Ubuntu 26.04:
apt-cache show apt | grep -i rust
dpkg -l | grep -i "rust\|rustc"

# Для администраторов air-gapped сред:
# APT теперь требует rustc при сборке из исходников
# Проверяем что offline-репозиторий включает rust-пакеты:
apt-get install --dry-run apt 2>&1 | grep -i rust

# Для Debian 13 Forky (выход 2027):
# Rust будет требоваться для сборки ядра модулей через DKMS
# Уже сейчас можно подготовить offline-кэш:
apt-get download rustc cargo libstd-rust-dev

# Смотрим версию Rust в системе:
rustc --version 2>/dev/null || echo "Rust not installed"
# На Ubuntu 26.04 должно быть 1.80+ из репозитория


Для администраторов air-gapped и закрытых сред — это практическое действие сейчас: убедись что твои offline-репозитории содержат rust-пакеты. После обновления APT на системах без сети это может сломать apt upgrade если Rust недоступен.

Итог: Rust перешёл из «интересно, но не моя проблема» в «часть базовой инфраструктуры моего дистрибутива». Пятница — хороший момент проверить offline-репы.

#linux #rust #debian #ubuntu #apt #security #sysadmin #admin_future
🔐 APT учится SHA3: Ubuntu готовится к дню, когда SHA-2 падёт. Зачем это нужно уже сейчас

Коллеги, понедельник. Сегодня пост не про очередную горящую CVE на периметре, а про эталонную инженерную предусмотрительность и архитектурную дальновидность.

📌 ФАКТЫ
Инициатива: инженеры Canonical (в частности, Gianpiero Carpinelli) внесли в апстрим пакетного менеджера APT поддержку семейства хешей SHA3-256 и SHA3-384 для проверки целостности индексных файлов (Release, Packages, Sources).

Дефолт не меняется: SHA-256/SHA-512 остаются базовым стандартом. Поддержка SHA3 внедряется как спящий резервный механизм.

Математика жизненного цикла: современные Enterprise-релизы (такие как Ubuntu 24.04 LTS в рамках расширенной поддержки Ubuntu Pro) живут 10–12 лет — то есть вплоть до 2036 года. Если на этом горизонте математический аппарат SHA-2 даст критическую трещину, миллионы установленных хостов должны уметь валидировать пакеты по альтернативному алгоритму без аврального обновления самого APT.

Текущий статус криптографии: семейство SHA-2 (SHA-256/512) не скомпрометировано, практических атак нет. При аппруве патча в апстриме Debian/APT функционал планируют бэкпортировать в LTS-ветку 24.04.

🛠 АУДИТ РЕПОЗИТОРИЕВ И КЛЮЧЕЙ В СИСТЕМЕ
Пока Canonical закладывает фундамент на 10 лет вперед, полезно проверить, нет ли в вашей системе хвостов из прошлого века:

Bash
# 1. Какие типы хешей фактически задействованы в ваших текущих InRelease
grep -hoE '^(MD5Sum|SHA1|SHA256|SHA512|SHA3-[0-9]+):' \
/var/lib/apt/lists/*InRelease 2>/dev/null | sort | uniq -c

# 2. Поиск устаревших GPG-ключей репозиториев (RSA 1024, DSA и legacy-форматы)
for k in /etc/apt/trusted.gpg.d/* /usr/share/keyrings/*; do
[ -f "$k" ] || continue
echo "== Файл: $k"
gpg --show-keys "$k" 2>/dev/null | grep -E '^pub'
done

💡 В ЧЁМ СУТЬ
В криптографии это называется crypto-agility (криптографическая гибкость) — способность инфраструктуры переключиться на новые криптопримитивы без необходимости менять сам софт и переустанавливать ОС на клиентах.

Обновить центральное зеркало репозитория можно за полчаса. А вот обновить пакетный менеджер на тысячах серверов, изолированных промышленных контроллерах или банкоматах, если проверка подписей внезапно сломается из-за компрометации алгоритма, — задача на месяцы аварийных работ.

🛡 НА ЧТО ОБРАТИТЬ ВНИМАНИЕ В СВОЕЙ СЕТИ
Пока ядро APT готовится к будущему, аналогичный вопрос стоит задать собственной инфраструктуре:

Собственные Nexus / Artifactory / Aptly: поддерживают ли ваши локальные пайплайны сборки пакетов современные алгоритмы хеширования и подписи?

SSH-инфраструктура: давно ли вы вычищали из authorized_keys и конфигов sshd старые ключи ssh-rsa (SHA-1) в пользу ed25519 и ecdsa?

Внутренний PKI / CA: какой алгоритм подписи выставлен на корневых и промежуточных сертификатах корпоративного центра сертификации?

#linux #debian #ubuntu #apt #crypto #security #sysadmin #admin_future
⏱️ Ubuntu 27.04 переходит на ntpd-rs. Повод проверить, кто вообще задаёт время в вашей сети

Коллеги, среда. Время — сервис, о котором вспоминают, только когда внезапно разваливается аутентификация в Kerberos.

📌 ФАКТЫ
Планы Canonical: в релизе Ubuntu 26.10 пакет ntpd-rs включён в архив для открытого тестирования, а начиная с Ubuntu 27.04 он станет системной службой времени по умолчанию.

Архитектурная причина: переход на memory-safe реализацию протокола NTP на языке Rust со встроенной поддержкой NTS (Network Time Security).

Критичность точного времени: от стабильности часов напрямую зависят валидация цепочек TLS-сертификатов, работа тикетов Kerberos, корреляция меток в журналах SIEM и сквозной аудит событий.

🛠 ПРОВЕРКА ЗА МИНУТУ
1. Хосты под управлением Linux
Bash
# Общий статус службы времени и синхронизации
timedatectl

# Текущее смещение, стратум и активный источник (chrony)
chronyc tracking

# Детальный список апстрим-серверов и их состояние
chronyc sources -v

2. Инфраструктура Windows / Active Directory
PowerShell
# Общий статус службы Windows Time и текущее смещение
w32tm /query /status

# Фактический источник синхронизации для хоста
w32tm /query /source

# Замер расхождения времени с контроллером домена в реальном времени
w32tm /stripchart /computer:dc01 /samples:5 /dataonly

⚠️ ТИПОВЫЕ ОШИБКИ В СЕТЯХ
Неверный источник на контроллере: источник у DC определяется как Local CMOS Clock или VM IC Time Synchronization Provider — в итоге время всего домена задаётся батарейкой BIOS материнской платы либо дрейфующими часами гипервизора.

Нарушение иерархии FSMO: внешний стратум NTP настроен не на держателе роли PDC Emulator, а на произвольном контроллере домена.

Конфликт синхронизации на виртуальных DC: на виртуальных машинах контроллеров домена оставлена включённой интеграция времени с хостом виртуализации (Integration Services / VMware Tools Time Sync).

💡 В ЧЁМ СУТЬ
Протокол Kerberos по умолчанию допускает расхождение часов не более 5 минут.

Иерархия времени в инфраструктуре должна быть строго монолитной:

Внешний доверенный NTP-пул → PDC Emulator → остальные DC домена → рядовые серверы и клиенты.

Любая самодеятельность в этой цепочке превращается в причину «плавающих» и трудноуловимых сбоев входа в домен.

#skills #ntp #time #activedirectory #kerberos #ubuntu #linux #sysadmin #admin_future
🌐 Сайты Canonical под затяжной DDoS-атакой. Ваши обновления не должны зависеть от чужого аптайма

Коллеги, поучительная инфраструктурная история, которая регулярно повторяется с любым крупным апстримом.

📌 ФАКТЫ
Атака на апстрим: 8 октября Canonical официально сообщила о «sustained DDoS» на свои публичные веб-ресурсы и предупредила о нестабильности и периодической недоступности инфраструктуры.

Что затронуто: по данным профильных изданий (Phoronix), лежали основной портал Ubuntu и прямая загрузка установочных ISO-образов. Полный перечень задетых сервисов компания не раскрывает.

Мониторинг доступности: оперативный статус отслеживается на status.canonical.com.

🛠 ЛОКАЛЬНЫЙ КЭШ ПАКЕТОВ ЗА 10 МИНУТ
Разворачиваем прозрачный кэширующий прокси, чтобы не зависеть от внешних зеркал при каждой установке пакета:

Bash
# 1. Сервер кэша (Debian / Ubuntu) — поднимается одной командой
apt update && apt install apt-cacher-ng # служба слушает порт TCP/3142

# 2. Настройка клиентских машин через конфиг APT:
echo 'Acquire::http::Proxy "http://apt-cache.lan:3142";' > /etc/apt/apt.conf.d/01proxy
apt update

Плюсы решения:

Любой пакет скачивается из интернета ровно один раз на весь офис или дата-центр.

Вся последующая раскатка по серверному парку идёт на скорости локальной сети (1–10 Гбит/с).

При падении апстрима или внешнего канала уже выкачанные версии пакетов остаются мгновенно доступны для переустановки и деплоя.

⚠️ ЧТО ЕЩЁ ОБЯЗАТЕЛЬНО ДЕРЖАТЬ НА СВОЕЙ ПОЛКЕ
Базовые ISO: проверенные дистрибутивы Linux (Debian, Ubuntu LTS, Alma/Rocky) и образы Windows Server со сверенными контрольными суммами (SHA256).

Платформы виртуализации: инсталляторы Proxmox VE, образы ESXi, вендорские драйверы RAID-контроллеров, HBA и сетевых карт, а также прошивки для IPMI/iLO/iDRAC.

Шаблоны: золотые образы ВМ (cloud-init / sysprep) и закэшированные базовые слои Docker-контейнеров во внутреннем реестре.

💡 В ЧЁМ СУТЬ
Аварийное восстановление упавшего сервера слишком часто начинается с оптимистичной фразы: «Сейчас по-быстрому скачаю свежий образ».

В день атаки на вендора, аварии на магистральном провайдере или внезапных сетевых ограничений этот сценарий мгновенно оборачивается часами простоя боевого сервиса. Локальный кэш пакетов и собственная локальная библиотека образов — простейшая и копеечная страховка вашего времени.

#linux #ubuntu #apt #mirror #ddos #disasterrecovery #network #infrastructure #sysadmin #admin_future
🐧 Ubuntu 26.10 вышла: systemd 261 больше не поддерживает SysV-скрипты. Проверьте свои /etc/init.d

Коллеги, 15 октября состоялся релиз Ubuntu 26.10 «Stonking Stingray». Главное для серверов — не десктопный GNOME, а низкоуровневые изменения в подсистеме инициализации systemd.

📌 ФАКТЫ
Ядро Linux 7.3 (стартовый пакет собран на 7.3-rc6), поддержка 9 месяцев — до июля 2027

systemd 261 убрал поддержку SysV-скриптов (/etc/init.d/*)

Rust coreutils (uutils): в 26.10 на них переведены и cp, mv, rm

OpenSSL 4: Encrypted Client Hello, расширенный QUIC, улучшения постквантовой криптографии

dbus-broker вместо dbus-daemon, Sequoia PGP в main, вход через authd с паролем Microsoft и MFA

🛠 НАЙТИ СЛУЖБЫ НА SYSV-СКРИПТАХ
Bash
# Службы, которые systemd сейчас генерирует из /etc/init.d
for u in $(systemctl list-unit-files --type=service --no-legend | awk '{print $1}'); do
systemctl show -p SourcePath --value "$u" | grep -q '^/etc/init.d/' && echo "$u"
done

Обычно туда попадают старые агенты мониторинга и бэкапа, ПО железа (RAID, ИБП), самописные демоны. На 26.10 они просто не запустятся.

💡 В ЧЁМ СУТЬ
26.10 — промежуточный релиз, на продакшен ставить не обязательно. Но это предупреждение: изменения из него придут в следующую LTS. Переписать init-скрипт на unit-файл — 15 минут. Делать это сейчас дешевле, чем после обновления.

#linux #ubuntu #systemd #migration #sysadmin #admin_future
🧠 Skills: Rust coreutils добрались до cp, mv и rm. Как проверить, что ваши скрипты не сломаются

Коллеги, навык выходного дня — короткий и полезный.

📌 ФАКТЫ
В Ubuntu 26.04 LTS большинство утилит coreutils уже работает на uutils (переписаны на Rust)

В 26.10 к ним добавились самые «опасные» в скриптах: cp, mv, rm

Цель Canonical — безопасность памяти. Но любая переписанная утилита может по-другому обрабатывать редкие флаги, сообщения об ошибках и граничные случаи

🛠 ЧЬИ У ВАС УТИЛИТЫ
Bash
cp --version | head -1        # «uutils coreutils» или «GNU coreutils»
ls -l "$(command -v cp)" # куда ведёт бинарь

🛠 ПРОГОН СКРИПТОВ В КОНТЕЙНЕРЕ
Bash
# Чистая 26.10 рядом, ничего не ломая на сервере
docker run --rm -it -v "$PWD/scripts:/scripts:ro" ubuntu:26.10 bash
# внутри: прогоняем скрипты на тестовых данных
bash -x /scripts/backup.sh

⚠️ НА ЧТО СМОТРЕТЬ
Парсинг вывода ls, df, du, stat через awk/cut — формат может отличаться

Проверки по тексту ошибок (grep 'No such file')

Редкие флаги cp (--reflink, --preserve=..., --sparse)

💡 В ЧЁМ СУТЬ
Хороший скрипт проверяет код возврата, а не текст в выводе. Если скрипт ломается от смены реализации

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

find -printf
или

stat -c
с явным форматом.

#skills #linux #bash #ubuntu #rust #coreutils #sysadmin #admin_future