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

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


Админ - @maksimshap
Download Telegram
🪟 Windows: Secure Boot — вчера прошёл финальный AMA, June дедлайн через 6 недель

Коллеги, вчера 18 мая Microsoft провела последний AMA по Secure Boot перед июньским истечением сертификатов. Разбираем главное что прозвучало — и что нашли в майском обновлении.

Майское обновление Windows 11 (KB5089549) разместило на системах новую папку SecureBoot — это не вредонос, не ошибка установки. Это Microsoft размещает ресурсы для обновления Secure Boot, включая PowerShell-скрипты для определения статуса сертификатов и автоматизации развёртывания.

Главное с вчерашнего AMA:

Системы без новых сертификатов к июню 2026 войдут в деградированное состояние Secure Boot или не смогут загрузиться с BitLocker recovery prompts. Для отключённых устройств (lab machines, air-gapped) может потребоваться ручное вмешательство.

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


# Итоговая проверка статуса — прямо сейчас:
# Смотрим статус обновления сертификатов
Get-ItemProperty `
-Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing\" `
-Name "UEFICA2023Status" -ErrorAction SilentlyContinue

# Значения:
# (отсутствует или пусто) = NOT_STARTED — нужно действовать
# "InProgress" = в процессе
# "Updated" = готово

# Массовый аудит парка серверов:
$servers = Get-ADComputer -Filter {OperatingSystem -like "*Server*"} |
Select-Object -ExpandProperty Name

$results = foreach ($s in $servers) {
try {
Invoke-Command -ComputerName $s -ScriptBlock {
$sb = Get-ItemProperty `
-Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing\" `
-Name "UEFICA2023Status" -ErrorAction SilentlyContinue
[PSCustomObject]@{
Server = $env:COMPUTERNAME
Status = if ($sb) { $sb.UEFICA2023Status } else { "NOT_STARTED" }
}
} -ErrorAction Stop
} catch {
[PSCustomObject]@{Server=$s; Status="UNREACHABLE"}
}
}
$results | Group-Object Status | Format-Table Name, Count
$results | Where-Object {$_.Status -ne "Updated"} |
Export-Csv "secureboot_todo.csv" -NoTypeInformation

# Для серверов с NOT_STARTED — запускаем обновление:
Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
# После перезагрузки — запустить ещё раз

# Также важно: обновляем dbx (список отозванных bootloader-ов)
# Проверяем текущий dbx через PowerShell модуль SecureBoot:
Confirm-SecureBootUEFI
Get-SecureBootUEFI -Name dbx


Зачем это критично до июня:
Обновление сертификатов — напоминание что обслуживание Windows теперь распространяется ниже уровня операционной системы. Patch Tuesday доставляет полезную нагрузку, но прошивка решает, может ли цепочка доверия принять и сохранить её.

Итог: шесть недель. Экспортируй CSV с NOT_STARTED серверами прямо сейчас — это твой план на эту неделю.

#windows #secureboot #pki #security #sysadmin #admin_future
🧠 Skills: CVE-2026-46333 — новый Linux LPE раскрыт сегодня, и он позволяет читать SSH-ключи

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

Сегодня, 19 мая 2026, исследователи Qualys раскрыли CVE-2026-46333 в ядре Linux. Уязвимость позволяет непривилегированному пользователю читать файлы принадлежащие root — в том числе SSH-ключи (/etc/ssh/ssh_host_*_key) и файл /etc/shadow. PoC доступен публично как ssh-keysign-pwn и chage_pwn. Подтверждена работоспособность на Arch Linux, Debian, Ubuntu, CentOS и Raspberry Pi OS.

Механика: уязвимость в __ptrace_may_access(), которая пропускает dumpable-проверку когда task->mm == NULL. do_exit() запускает exit_mm() перед exit_files() — нет mm, но fd-ы ещё живые — и pidfd_getfd(2) успешно выполняется в этом окне когда uid вызывающего совпадает с целевым.

Это не LPE до root — это чтение приватных ключей. Для серверов с SSH-доступом — это критично.


# НЕМЕДЛЕННАЯ ДИАГНОСТИКА:
# Смотрим были ли у нас непривилегированные пользователи
# с доступом к системе за последние сутки
last | head -20
grep "Accepted" /var/log/auth.log | grep -v root | tail -20

# Если на сервере нет непривилегированных пользователей кроме root —
# риск значительно ниже (нет кому эксплуатировать)
awk -F: '$3 >= 1000 && $7 != "/sbin/nologin" && $7 != "/bin/false" \
{print $1, $7}' /etc/passwd

# МИТИГЕЙШН пока патча нет:
# 1. Ужесточаем права на SSH host keys (уже должны быть 600):
ls -la /etc/ssh/ssh_host_*
chmod 600 /etc/ssh/ssh_host_*_key

# 2. Ограничиваем чтение shadow:
ls -la /etc/shadow # должен быть 640 или 000
chmod 640 /etc/shadow

# 3. Если на сервере есть непривилегированные пользователи —
# временно блокируем ptrace для непривилегированных:
echo 1 | tee /proc/sys/kernel/yama/ptrace_scope
# или более жёстко:
echo 3 | tee /proc/sys/kernel/yama/ptrace_scope
# 3 = только root может ptrace (ломает некоторые отладчики)

# Делаем permanent через sysctl:
echo "kernel.yama.ptrace_scope = 1" >> /etc/sysctl.d/99-ptrace.conf
sysctl -p /etc/sysctl.d/99-ptrace.conf

# СЛЕДИМ за патчем:
# upstream: kernel.org (ветки 7.0.x, 6.18.x, 6.12.x)
# Ubuntu: ubuntu.com/security/notices
# RHEL: access.redhat.com/security


Как работает правильная реакция на fresh disclosure:

Первые 30 минут: читаем advisory, понимаем prerequisites (local? network? authenticated?), проверяем есть ли у нас этот компонент в системе.

30 минут — 2 часа: ищем временный митигейшн (не патч — его ещё нет). Применяем если риск в нашей среде реален.

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

Это не паника — это процесс. Разница в том, что процесс можно делегировать и автоматизировать.

Итог: ptrace_scope = 1 — это одна команда которая снижает риск не только от CVE-2026-46333, но и от всего класса ptrace-атак. Это и есть defence-in-depth в действии.

#skills #linux #cve #security #реакция #sysadmin #admin_future
🐧 Linux: DirtyDecrypt — пятый вариант page-cache атаки за три недели, и сегодня вышел PoC

Коллеги, майский марафон Linux-уязвимостей продолжается. Сегодня утром на Hacker News — DirtyDecrypt (CVE-2026-31635). Это уже пятая уязвимость одного класса за три недели.

DirtyDecrypt обнаружили исследователи Zellic и V12, но при попытке зарепортить узнали — уязвимость уже была исправлена в mainline. Это rxgk page cache write из-за отсутствующего COW-guard в rxgk_decrypt_skb(). Оценивается как вариант Copy Fail, Dirty Frag и Fragnesia — все они дают root на уязвимых системах.

Хорошая новость: патч уже в mainline. Плохая: PoC публичен прямо сейчас.

Итоговая карта всех пяти за май 2026:


Copy Fail (CVE-2026-31431) — 29 апреля — AF_ALG, algif_aead
Dirty Frag (CVE-2026-43284) — 7 мая — ESP xfrm, esp4/esp6
Dirty Frag (CVE-2026-43500) — 7 мая — RxRPC rxrpc
Fragnesia (CVE-2026-46300) — 13 мая — XFRM ESP-in-TCP
DirtyDecrypt(CVE-2026-31635) — 20 мая — rxgk_decrypt_skb
CVE-2026-46333 — 19 мая — ptrace exit-race (чтение ключей)


Все шесть закрываются одним митигейшном на системах без IPsec/RxRPC:


# ПОЛНЫЙ МИТИГЕЙШН — все шесть CVE мая 2026
# (если algif_aead, esp4/esp6, rxrpc не нужны):
printf "install algif_aead /bin/false\n\
install esp4 /bin/false\n\
install esp6 /bin/false\n\
install rxrpc /bin/false\n" | \
tee /etc/modprobe.d/may2026-kernel-lpe.conf

rmmod algif_aead esp4 esp6 rxrpc 2>/dev/null || true

# Для CVE-2026-46333 (ptrace / SSH keys):
echo "kernel.yama.ptrace_scope = 1" >> \
/etc/sysctl.d/99-ptrace.conf
sysctl -p /etc/sysctl.d/99-ptrace.conf

# Проверяем статус патчей на всём флоте:
# Нужны ядра: 7.0.8 / 6.18.31 / 6.12.89 / 6.6.139 / 6.1.173 / 5.15.207
uname -r

# ModuleJail — автоматизирует это для всех неиспользуемых модулей:
# github.com/jnuyens/modulejail
sudo sh modulejail -p conservative


Зачем это важно как тренд: DirtyDecrypt обнаружили независимо, а уязвимость уже исправили — это говорит о том, что AI-assisted code analysis находит одни и те же классы ошибок быстрее чем когда-либо. Темп раскрытий этого месяца — не случайность, это новая норма.

Итог: mitigation-файл + ptrace_scope = закрыты все шесть CVE мая. Патч ядра ставим при ближайшем обслуживании. И да — это ещё не конец месяца.

#linux #kernel #cve #dirtydecrypt #security #sysadmin #admin_future
🪟 Windows: AD CS в майском обновлении получил постквантовую криптографию — и это важнее чем звучит

Коллеги, в шуме вокруг Secure Boot, RC4 и Patch Tuesday почти никто не заметил кое-что важное в майском обновлении Windows Server 2025. Тихо и без фанфар.

Майское обновление добавляет в AD CS поддержку постквантовой криптографии: ML-DSA-44, ML-DSA-65 и ML-DSA-87 на Windows Server 2025. Это позволяет администраторам начать оценивать постквантовые криптографические алгоритмы и проверять PQC-готовность корпоративных PKI-сред.

Что это такое и зачем нам это сейчас:

Атака «harvest now, decrypt later» — не теория. Спецслужбы нескольких стран активно предупреждают, что противники уже сейчас эксфильтруют зашифрованные данные в расчёте на квантовое дешифрование в течение ближайшего десятилетия. Для любых данных с требованиями конфиденциальности более 10 лет — решение должно приниматься сейчас.

Как попробовать уже сегодня:


# ПРЕДВАРИТЕЛЬНЫЕ ТРЕБОВАНИЯ:
# Windows Server 2025 с майским обновлением KB5087539
# AD CS Certification Authority установлен и настроен

# Проверяем версию после обновления:
Get-ItemProperty `
"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" |
Select-Object CurrentBuild, UBR
# Нужен build 26100.32860 или выше

# Открываем Certificate Authority MMC:
# certsrv.msc -> [CA Name] -> Properties -> Cryptography

# Через PowerShell — проверяем доступные PQC-алгоритмы:
# (Нужен Provider Category: Key Storage Provider)
certutil -csplist | Select-String "ML-DSA"

# Создаём тестовый PQC-сертификат (code signing сценарий):
# 1. В CA Properties -> Cryptography -> CSP: Microsoft Software Key Storage Provider
# 2. Signature algorithm: ML-DSA-65 (оптимальный баланс размер/безопасность)
# 3. Выпускаем тестовый cert только для code signing

# ПРЕДУПРЕЖДЕНИЕ о размерах:
# ML-DSA-65 цепочка сертификатов: ~10KB vs ~1.5KB у ECDSA
# Это влияет на TLS handshake latency
# Пока НЕ для TLS, VPN, RDP — только для code signing и оценки

# Проверяем выпущенные PQC-сертификаты:
certutil -CAInfo
certutil -view -out "SerialNumber,NotBefore,NotAfter,Subject,PublicKey"


Что сейчас работает и что нет: ранние тесты показывают многообещающие результаты для сценариев подписи, таких как code signing. Однако более широкие инфраструктурные нагрузки, включая TLS, VPN и Remote Desktop, пока ограничены.

Зачем начинать сейчас если TLS/VPN ещё не готовы: организации, начинающие миграцию в 2026 году, имеют достаточно времени для соответствия срокам устаревания 2030 года. Те кто ждут 2028-го — столкнутся со сжатой высокорисковой миграцией.

Итог: не деплоить в продакшн. Поднять тестовую CA, выпустить ML-DSA-65 сертификат, посмотреть на размеры и latency. Это час работы — и понимание что тебя ждёт через 2-3 года.

#windows #adcs #pki #postquantum #security #sysadmin #admin_future
🔥1
🧠 Skills: Май 2026 — разбор полётов. Чему нас научил этот месяц

Коллеги, среда — хороший момент для рефлексии в середине недели. Май 2026 ещё не закончился, но уже войдёт в учебники по security operations. Разберём что реально можно взять из этого месяца.

Шесть CVE в Linux за три недели. Patch Tuesday со 120 CVE. RC4 enforcement в июле. Secure Boot до июня. Entra hard match 1 июня. DirtyDecrypt сегодня утром.

Три вещи которые работали и три которые нет:


ЧТО РАБОТАЛО:

1. МОНИТОРИНГ ПРАВИЛЬНЫХ ИСТОЧНИКОВ
Команды которые быстро реагировали — подписаны на:
- CISA KEV (daily digest)
- Ubuntu/RHEL security advisories (RSS/email)
- Hacker News /new (для zero-day до патча)
Не на твиттер и не на агрегаторы с задержкой в день.

2. BLACKLIST КАК ВРЕМЕННЫЙ ЩИТ
Кто заблокировал algif_aead/esp4/esp6/rxrpc в первый день —
спокойно ставил патчи по расписанию.
Кто ждал патча сразу — жил три недели под риском.

3. ЧЁТКИЙ ПРОЦЕСС ПРИОРИТИЗАЦИИ
5 вопросов: есть ли в моей среде? активно эксплуатируется?
вектор атаки? митигейшн? когда патч?
Экономит 80% времени на панику.

ЧТО НЕ РАБОТАЛО:

1. "ПРОПАТЧИМ НА СЛЕДУЮЩЕЙ НЕДЕЛЕ"
Copy Fail появился 29 апреля с публичным PoC.
CISA KEV — 1 мая. Дедлайн — 15 мая.
Кто ждал плановый цикл через две недели —
работал без защиты неделю с известным рабочим эксплойтом.

2. РУЧНОЙ BLACKLIST БЕЗ АВТОМАТИЗАЦИИ
Каждая новая CVE требовала нового захода на каждый сервер.
ModuleJail — ответ на это. IaC-подход — правильный ответ.

3. РЕАКЦИЯ НА ЗАГОЛОВКИ БЕЗ ПРОВЕРКИ СРЕДЫ
"Copy Fail затрагивает все дистрибутивы с 2017 года!"
— да, но только при наличии загруженного algif_aead.
На many продакшн-серверах его нет.
Паника тратит ресурсы которые нужны на реальные угрозы.


Один практический вывод в виде действия прямо сейчас:


# Если после этого месяца у тебя нет этих трёх вещей — сделай сегодня:

# 1. ПОДПИСКА НА CISA KEV (RSS для мониторинга)
# https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json
# Добавь в любой RSS-ридер или настрой скрипт

# 2. ПРОВЕРКА KERNEL MITIGATION СТАТУСА
lsmod | grep -E "algif_aead|esp4|esp6|rxrpc" && \
echo "РИСК: модули загружены" || \
echo "OK: модули не загружены"

# 3. ANSIBLE PLAYBOOK ДЛЯ RAPID BLACKLIST DEPLOY
# Один playbook который за 2 минуты закрывает флот
# вместо ручного захода на каждый сервер:
# ---
# - name: Kernel module mitigations May 2026
# hosts: all
# become: true
# tasks:
# - name: Block vulnerable kernel modules
# copy:
# dest: /etc/modprobe.d/may2026-mitigations.conf
# content: |
# install algif_aead /bin/false
# install esp4 /bin/false
# install esp6 /bin/false
# install rxrpc /bin/false


Зачем это важно как навык:
Реакция на инциденты — это мышца. Май 2026 её неплохо потренировал. Команды которые вышли из этого месяца с отлаженным процессом — в следующий раз среагируют за часы, а не за дни.

Итог: три недели CVE-шторма показали кто автоматизирован, кто нет. Кто мониторит правильное, кто реагирует на заголовки. Это не критика — это диагностика. Используй её.

#skills #security #процессы #автоматизация #sysadmin #admin_future
🐧 Linux: Май 2026 закрыт — финальный чеклист по ядру для тех кто ещё не всё сделал

Коллеги, четверг 21 мая — подводим итог самому насыщенному security-месяцу в Linux за несколько лет. Шесть уязвимостей, все патчи вышли, но статистика показывает: большая часть флотов ещё не обновлена.

Это четвёртая уязвимость ядра Linux требующая внимания администраторов за три недели, после Copy Fail (29 апреля), Dirty Frag (7 мая) и Fragnesia (13 мая). Если вы не хотите экстренно патчить и перезагружать несколько раз в месяц — это сигнал выстроить систему.

Финальный чеклист на сегодня:

# ШАГ 1: Проверяем версию ядра — все патчи закрыты начиная с:
# 7.0.8 / 6.18.31 / 6.12.89 / 6.6.139 / 6.1.173 / 5.15.207 / 5.10.256
uname -r

# ШАГ 2: Если ядро не обновлено — ставим немедленно
# Ubuntu/Debian:
apt update && apt full-upgrade -y

# RHEL/Rocky/AlmaLinux:
dnf update kernel -y

# ШАГ 3: Mitigation-файл — закрывает все page-cache CVE даже без патча
cat /etc/modprobe.d/may2026-kernel-lpe.conf 2>/dev/null || \
printf "install algif_aead /bin/false\ninstall esp4 /bin/false\n\
install esp6 /bin/false\ninstall rxrpc /bin/false\n" | \
tee /etc/modprobe.d/may2026-kernel-lpe.conf

# ШАГ 4: ptrace_scope — закрывает CVE-2026-46333 (чтение SSH-ключей)
sysctl kernel.yama.ptrace_scope
# Если 0 — ставим минимум 1:
echo "kernel.yama.ptrace_scope = 1" >> /etc/sysctl.d/99-ptrace.conf
sysctl -p /etc/sysctl.d/99-ptrace.conf

# ШАГ 5: ModuleJail — системное решение для флота
# После патча и перезагрузки — автоматически блокирует ВСЕ
# неиспользуемые модули, не только эти шесть:
# github.com/jnuyens/modulejail
sudo sh modulejail -p conservative

# ШАГ 6: Проверяем что drop_caches сброшен на хостах
# где могла быть эксплуатация (критично для Fragnesia):
echo 1 | tee /proc/sys/vm/drop_caches


Один архитектурный вывод из мая: AI-assisted code analysis нашёл несколько уязвимостей в одной и той же поверхности атаки за три недели. Вопрос для 2026 года — не будут ли продолжаться kernel-эксплойты, а будет ли ваша инфраструктура защищена когда они появятся.

Итог: патч + перезагрузка + mitigation-файл + ptrace_scope. Четыре пункта. Если не сделано — сделай прямо сейчас, это последний четверг мая.

#linux #kernel #security #patch #sysadmin #admin_future
🪟 Windows: Secure Boot — 10 дней до истечения, финальный чеклист для серверов

Коллеги, конец июня — не абстрактный дедлайн. Две из трёх затронутых сертификатов — Microsoft Corporation KEK CA 2011 и Microsoft UEFI CA 2011 — истекают в июне 2026. Microsoft Windows Production PCA 2011, подписывающий сам Windows Boot Manager, истекает в октябре 2026.

Что произойдёт если не успеть: системы без обновления потеряют возможность устанавливать security updates для Secure Boot после июня 2026, не будут доверять стороннему ПО подписанному новыми сертификатами, и не получат исправлений для Windows Boot Manager после октября 2026.

Критически важное для серверов: в отличие от Windows PC, которые получают сертификаты 2023 года автоматически через Controlled Feature Rollout, Windows Server требует ручного действия — автоматически они не прилетают.

# ФИНАЛЬНЫЙ АУДИТ — выполнить сегодня

# 1. Сколько серверов НЕ готово:
$servers = Get-ADComputer -Filter {OperatingSystem -like "*Server*"} |
Select-Object -ExpandProperty Name

$report = foreach ($s in $servers) {
try {
Invoke-Command -ComputerName $s -ScriptBlock {
$sb = Get-ItemProperty `
"HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing\" `
-Name "UEFICA2023Status" -ErrorAction SilentlyContinue
[PSCustomObject]@{
Server = $env:COMPUTERNAME
Status = if ($sb) {$sb.UEFICA2023Status} else {"NOT_STARTED"}
SecureBoot = (Confirm-SecureBootUEFI -ErrorAction SilentlyContinue)
}
} -ErrorAction Stop
} catch {
[PSCustomObject]@{Server=$s; Status="UNREACHABLE"; SecureBoot=$null}
}
}

$report | Group-Object Status | Format-Table Name, Count -AutoSize

# Экспортируем список на обработку:
$report | Where-Object {$_.Status -ne "Updated"} |
Export-Csv "secureboot_critical_$(Get-Date -Format yyyyMMdd).csv" `
-NoTypeInformation

# 2. Запускаем обновление на серверах NOT_STARTED:
# Выполнить на каждом затронутом сервере:
Start-ScheduledTask -TaskName "\Microsoft\Windows\PI\Secure-Boot-Update"
# Перезагрузить, затем запустить ещё раз
# Проверить статус: должен стать "Updated"

# 3. Offline / air-gapped серверы — ручной путь:
# Скачать пакет с aka.ms/GetSecureBoot
# Применить через DISM или wusa.exe

# 4. Проверяем dbx (список отозванных bootloader-ов):
# Актуальный dbx критичен вместе с новыми сертификатами
Get-SecureBootUEFI -Name dbx | Select-Object -ExpandProperty Bytes | Measure-Object
# Пустой или нулевой dbx = риск


Устройства оффлайн, в спящем режиме, на полке — не получат обновления и рискуют оказаться изолированными после июня 2026. Старое железо без OEM firmware-обновлений также в опасности.

Итог: если у тебя есть серверы со статусом NOT_STARTED — это твоя задача на сегодня. Не на следующей неделе. Сегодня. До июня осталось меньше шести недель.

#windows #secureboot #windowsserver #security #sysadmin #admin_future
🧠 Skills: Crypto Agility — навык который нужен сисадмину прямо сейчас, а не в 2030-м

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

Май 2026 дал нам два отличных примера почему crypto agility — это не теоретическая концепция. Secure Boot 2011 → 2023: ротация корневых сертификатов требует ручного вмешательства на тысячах серверов. RC4 в Kerberos: 30 лет использовали, теперь принудительное отключение в июле. Оба случая — болезненная миграция из-за отсутствия гибкости.

Crypto agility — это способность менять криптографические алгоритмы и ключи без переписывания всей инфраструктуры. Это не про квантовые компьютеры. Это про то, что алгоритмы устаревают регулярно.

Три практических элемента которые нужны прямо сейчас:

ЭЛЕМЕНТ 1: КРИПТОГРАФИЧЕСКАЯ ИНВЕНТАРИЗАЦИЯ

Что нужно знать о каждом сервисе:
- Какие алгоритмы используются (RSA? ECDSA? AES?)
- Где хранятся ключи и сертификаты
- Когда истекают сертификаты
- Какие зависимости (приложения, протоколы)

Инструменты:
# Linux: сканируем конфиги
grep -r "SSLProtocol\|SSLCipherSuite\|ssl_protocols\|ssl_ciphers" \
/etc/nginx/ /etc/apache2/ /etc/haproxy/ 2>/dev/null

# Проверяем TLS на работающих сервисах:
nmap --script ssl-enum-ciphers -p 443 <IP>

# Сертификаты в системе:
find /etc -name "*.crt" -o -name "*.pem" 2>/dev/null | \
xargs -I{} openssl x509 -in {} -noout -subject -enddate 2>/dev/null

# Windows: сертификаты в хранилищах
Get-ChildItem Cert:\LocalMachine\My |
Select-Object Subject, NotAfter, Thumbprint |
Sort-Object NotAfter

ЭЛЕМЕНТ 2: МОНИТОРИНГ СРОКА ЖИЗНИ

Автоматический алерт за 90/30 дней до истечения любого сертификата.
Это то чего не было для Secure Boot 2011 — никто не получил алерт
в 2024 году что через два года сертификаты истекут.

# Простой скрипт мониторинга сертификатов:
find /etc -name "*.crt" -o -name "*.pem" 2>/dev/null | \
while read cert; do
exp=$(openssl x509 -in "$cert" -noout -enddate 2>/dev/null | \
cut -d= -f2)
if [ -n "$exp" ]; then
exp_epoch=$(date -d "$exp" +%s 2>/dev/null)
now_epoch=$(date +%s)
days_left=$(( (exp_epoch - now_epoch) / 86400 ))
if [ "$days_left" -lt 90 ]; then
echo "WARN: $cert expires in $days_left days ($exp)"
fi
fi
done

ЭЛЕМЕНТ 3: ЗАМЕНА БЕЗ ДАУНТАЙМА

Для каждого критичного сервиса должен быть ответ на вопрос:
"Если нам нужно сменить сертификат/алгоритм прямо сейчас —
сколько это займёт и что потребует перезапуска?"

Если ответ "несколько дней и полный downtime" — это проблема.
Если "15 минут и горячая перезагрузка конфига" — это crypto agility.

nginx -s reload # Hot reload сертификата без downtime
systemctl reload apache2 # То же для Apache


Зачем это важно именно сейчас а не в 2030-м: криптографическая гибкость — это не просто ответ на квантовую угрозу. Слабое шифрование может быть взломано уже сегодня, а скомпрометированные долгоживущие сертификаты готовы для будущей подделки. Прежде чем справляться с живыми угрозами — нужно понимать текущую криптографическую архитектуру.

Итог: инвентаризация + мониторинг + план замены. Это три часа работы которые меняют "паника в июне 2026" на "плановое обновление в марте 2026". Сделай это сейчас — следующий Secure Boot истечёт в 2033-м, и это уже твоя задача.

#skills #security #crypto #pkи #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
🪟 Windows: Пятничный дайджест — что закрыть до выходных по майским дедлайнам

Коллеги, конец рабочей недели — самое время для быстрой проверки: что из майских задач закрыто, а что уйдёт в понедельник с риском стать проблемой.

Три критических дедлайна ближайших недель — статус на сегодня:

Secure Boot — истечение в июне (осталось ~5 недель):
Системы без обновлённых сертификатов Secure Boot потеряют возможность получать security updates для Secure Boot после июня 2026, не будут доверять стороннему ПО подписанному новыми сертификатами, и не получат исправлений для Windows Boot Manager после октября 2026.

Entra hard match — дедлайн 1 июня (осталось 10 дней):
С 1 июня блокируется возможность синхронизировать cloud-privileged учётки через Entra Connect. Если не проверено — проверь прямо сейчас.

Kerberos RC4 — финал в июле (осталось ~6 недель):
После июля реестровый ключ RC4DefaultDisablementPhase игнорируется. Если не провёл аудит Event 201/202 — время поджимает.

# ПЯТНИЧНЫЙ ЧЕКЛИСТ — 3 команды, 5 минут:

# 1. Secure Boot статус (топ-10 серверов по риску):
Get-ADComputer -Filter {OperatingSystem -like "*Server*"} |
Select-Object -First 10 Name |
ForEach-Object {
Invoke-Command -ComputerName $_.Name -ScriptBlock {
$sb = Get-ItemProperty `
"HKLM:\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing\" `
-Name "UEFICA2023Status" -EA SilentlyContinue
"$env:COMPUTERNAME : $(if($sb){$sb.UEFICA2023Status}else{'NOT_STARTED'})"
} -EA SilentlyContinue
}

# 2. RC4 — сколько событий за эту неделю (если много — срочно):
Get-WinEvent -LogName System -ComputerName (hostname) |
Where-Object {$_.Id -in @(201,202,203) -and
$_.TimeCreated -gt (Get-Date).AddDays(-7)} |
Group-Object Id | Select-Object Name, Count

# 3. Entra hard match — есть ли привилегированные sync'd учётки:
# (быстрая проверка без Graph модуля)
Get-ADUser -Filter {Enabled -eq $true} `
-Properties MemberOf, adminCount |
Where-Object {$_.adminCount -eq 1} |
Select-Object SamAccountName, DistinguishedName |
Export-Csv "friday_privcheck.csv" -NoTypeInformation
Write-Host "Привилегированных учёток: $((Import-Csv friday_privcheck.csv).Count)"
# Если > 20 — стоит пересмотреть список до понедельника


Что реально можно сделать за пятницу:

ЧТО МОЖНО ЗАКРЫТЬ ЗА 30 МИНУТ:
- Запустить Secure Boot update task на 5-10 серверах
- Посмотреть RC4 events за неделю
- Сохранить список NOT_STARTED серверов для понедельника

ЧТО НЕ ТРОГАТЬ В ПЯТНИЦУ ВЕЧЕРОМ:
- Не менять пароли krbtgt без подготовки
- Не обновлять DC в конце недели без снапшота
- Не применять Kerberos-политики без тестовой группы


Итог: пятница — для аудита и планирования, не для опасных изменений. Три команды выше покажут где ты стоишь. Остальное — в понедельник с холодной головой.

#windows #secureboot #kerberos #security #patchmanagement #sysadmin #admin_future
1👍1👏1
🧠 Skills: Май 2026 — итог месяца для тех кто дочитал до пятницы

Шесть уязвимостей ядра Linux. Patch Tuesday со 120 CVE. Kerberos RC4 enforcement. Secure Boot истечение. Entra hard match. Windows Server Summit. PostQuantum в AD CS. ModuleJail. DirtyDecrypt. Killswitch-proposal.

Это не был лёгкий месяц.

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

Три вещи которые отделяли тех кто справился от тех кто нет:

1. МОНИТОРИНГ ПРАВИЛЬНЫХ ИСТОЧНИКОВ
Не твиттер, не агрегаторы.
CISA KEV → RSS → алерт на email или в мессенджер
Ubuntu/RHEL security advisory → email subscription
Microsoft Security Update Guide → RSS
Это 20 минут настройки однажды vs постоянный шум.

2. ПРОЦЕСС А НЕ ПАНИКА
Пять вопросов для любого CVE:
Есть ли в моей среде?
Активно эксплуатируется?
Вектор атаки?
Есть ли митигейшн?
Когда патч?
Структура превращает "срочно всё горит" в управляемые действия.

3. АВТОМАТИЗАЦИЯ РУТИНЫ
Кто запустил ModuleJail один раз — не правил blacklist 5 раз.
Кто выстроил Ansible-пайплайн — не заходил вручную на 30 серверов.
Кто настроил мониторинг Secure Boot — узнал о проблеме в феврале
а не в июне.


Один честный вопрос для выходных:

Возьми любую из майских угроз. Спроси себя: "Сколько времени прошло между раскрытием и моим первым действием?" Один день — отлично. Три дня — приемлемо. Неделя — есть над чем работать. Больше — это не проблема знаний, это проблема процесса.

Июнь 2026 принесёт свои сюрпризы. Они будут другими. Но твоя способность реагировать — это мышца которую прокачал май. Либо прокачал, либо нет.

Вы прошли самый насыщенный месяц в истории канала. Если инфраструктура работает — вы сделали всё правильно. Этого достаточно.

#skills #итоги #май2026 #security #процессы #sysadmin #admin_future
🔥3
🐧 Linux: CVE-2026-46333 — Qualys опубликовала полный advisory. Ротируй SSH-ключи.

Коллеги, свежие подробности по уязвимости, которую разбирали на этой неделе. Qualys Threat Research Unit опубликовала полный технический advisory по CVE-2026-46333, и там есть детали которые меняют оценку риска.

TRU идентифицировала узкое окно в котором привилегированный процесс, сбрасывающий свои учётные данные, остаётся доступным через ptrace-операции даже когда флаг dumpable должен был закрыть этот путь. Комбинируя это окно с системным вызовом pidfd_getfd() (добавленным в ядро в январе 2020), атакующий может перехватить открытые файловые дескрипторы умирающего привилегированного процесса и унаследовать его доступ к файлам — включая приватные SSH-ключи хоста.

На хостах где в период уязвимости были непривилегированные пользователи — SSH host keys и локально кэшированные учётные данные следует считать потенциально раскрытыми. Qualys рекомендует ротировать host keys и проверить весь административный материал находившийся в памяти setuid-процессов.

# ШАГ 1: Патч уже есть — проверяем версию ядра
uname -r
# Патч в: 7.0.8 / 6.18.31 / 6.12.89 / 6.6.139 / 6.1.173 / 5.15.207
# Если старше — обновляем НЕМЕДЛЕННО:
apt update && apt full-upgrade -y && reboot # Ubuntu/Debian
dnf update kernel -y && reboot # RHEL/Rocky/AlmaLinux

# ШАГ 2: Была ли уязвимость активна? Смотрим были ли local users:
last | grep -v "^reboot\|^wtmp" | \
awk '{print $1}' | sort -u
# Если только root — риск ниже. Если были другие — ротируем ключи.

# ШАГ 3: Ротация SSH host keys (если есть подозрение на компрометацию):
# Генерируем новые ключи:
rm /etc/ssh/ssh_host_*
ssh-keygen -A
# Перезапускаем SSH (NOT текущую сессию — откроем новую первой):
systemctl restart sshd

# Обновляем known_hosts на всех клиентах:
ssh-keyscan -H <server_ip> >> ~/.ssh/known_hosts

# ШАГ 4: Митигейшн если патч ещё не применён:
# ptrace_scope = 2 блокирует только root может ptrace непривилегированных
echo "kernel.yama.ptrace_scope = 2" >> /etc/sysctl.d/99-ptrace.conf
sysctl -p /etc/sysctl.d/99-ptrace.conf
# ptrace_scope = 3 — полный запрет (ломает отладчики, gdb, strace)


Также на неделе вышла PinTheft — отдельный LPE для Arch Linux систем. Если у тебя есть Arch в продакшне (надеюсь что нет) — смотри отдельный advisory.

Итог: если на хосте были local users в мае — ротируй SSH-ключи. Это 3 минуты работы и полное закрытие вектора постэксплуатации.

#linux #cve #ssh #security #kernel #sysadmin #admin_future
🪟 Windows: Server vNext build 29585 — что нового и почему ReFS Boot важнее чем звучит

Коллеги, Microsoft выпустила Windows Server vNext Preview Build 29585 — последний перед летним затишьем. Разбираем что важно для тех кто следит за следующим поколением.

ReFS Boot включён по умолчанию для всех vNext preview builds. При этом ReFS Boot системы создают минимальный WinRE раздел в 2GB. Когда WinRE не может быть обновлён из-за нехватки места — система может отключить WinRE. Отключение WinRE не удаляет раздел. Но если WinRE раздел удалить и расширить boot volume поверх него — это действие необратимо без чистой установки.

Это важно понимать заранее: ReFS Boot — это фундамент для Quick Machine Recovery (QMR). Без WinRE раздела QMR не работает. Удалить раздел в попытке освободить место = потерять возможность самовосстановления сервера.

Что ещё в 29585:

Quick Machine Recovery теперь доступен для тестирования в vNext Insider Previews. Функция обеспечивает восстановление серверов при критических ошибках загрузки — QMR может автоматически искать облачные исправления для устранения массовых загрузочных сбоев, значительно снижая нагрузку на IT-администраторов когда одновременно затронуты несколько устройств.

# Для тех кто тестирует vNext в лабе:
# Проверяем текущий build:
winver
# или
Get-ComputerInfo | Select-Object WindowsBuildLabEx

# Проверяем статус ReFS Boot:
Get-Partition | Where-Object {$_.Type -eq "Recovery"} |
Select-Object DiskNumber, PartitionNumber, Size, Type

# Проверяем размер WinRE раздела (должен быть >= 2GB для ReFS Boot):
reagentc.exe /info
# Ищем: Windows RE location и размер

# КРИТИЧНО: НЕ УДАЛЯТЬ WinRE раздел на vNext builds
# Проверяем что он не будет затронут при расширении диска:
Get-Partition -DiskNumber 0 | Format-Table -AutoSize

# Тестируем QMR в lab (не на продакшне):
# reagentc.exe /setrecoverytestmode
# Перезагружаемся — система войдёт в WinRE и попытается найти remediation

# Для перехода с preview < 29531:
# Апгрейд НЕ поддерживается — только чистая установка
# Дедлайн использования preview: 15 сентября 2026


Зачем следить за vNext прямо сейчас: preview builds доступны до 15 сентября 2026. Если планируешь переход на следующую версию Windows Server — сейчас идеальный момент поднять тестовый стенд, изучить ReFS Boot поведение и QMR до того как это появится в GA.

Итог: ReFS Boot + QMR = будущее Windows Server recovery. Но WinRE раздел священен — не трогать, не уменьшать, не удалять. Запомни это до GA.

#windows #windowsserver #vnext #refs #qmr #sysadmin #admin_future
🧠 Skills: Конец мая — как правильно уйти в отпуск не оставив коллег в огне

Коллеги, впереди лето. Июнь — традиционно сезон отпусков в IT-командах. И традиционно — сезон когда оказывается что только один человек знал как перезапустить критичный сервис.

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

Три вещи которые нужно сделать до отпуска:

ЗА ДВЕ НЕДЕЛИ ДО ОТПУСКА:

1. HANDOFF DOCUMENT — не "я на связи если что"
Шаблон:

# Handoff: [Твоё имя], отпуск [дата] — [дата]

## Контакт на период отпуска
Технические вопросы: [коллега] @username
Срочные инциденты: [тимлид] +7-xxx-xxx
Меня беспокоить: только P1 который не может закрыть команда

## Что сейчас в работе
- [Задача 1]: статус, следующий шаг, кто может продолжить
- [Задача 2]: заморожено до моего возвращения, ничего срочного

## Критичные сервисы и где runbook
- Nginx кластер: runbook в Confluence/RB-WEB-001
- PostgreSQL backup: автоматический, крон в /etc/cron.d/pg_backup
- VPN сервер: если упал — runbook RB-NET-003, ключи у [коллега]

## Что НЕ трогать пока меня нет
- Не обновлять ядро на prod до моего возвращения (RC4 июль!)
- Не менять Kerberos политики (тестирование ещё не завершено)
- Secure Boot update — запущен, ждём статус "Updated" сам придёт

## Алерты и мониторинг
Grafana alerts идут в #infra-alerts Slack
PagerDuty ротация: [коллега] primary на период моего отпуска

2. ПРОВЕРЬ CRITICAL TASKS С ДЕДЛАЙНОМ
В июне: Secure Boot (истекает июнь), Entra hard match (1 июня)
Убедись что эти задачи либо закрыты ДО отпуска
либо передал конкретному человеку с конкретным дедлайном

3. АВТОМАТИЗИРУЙ ЧТО МОЖЕТ СЛОМАТЬСЯ БЕЗ ТЕБЯ
Если что-то требует ручного вмешательства каждую неделю —
это не надёжно для отпуска и не надёжно вообще.
Одна задача автоматизации до отпуска > десяти звонков из него.


Один честный разговор с руководителем до отпуска:

Не "я ухожу, вы справитесь". А "вот три вещи которые могут потребовать внимания, вот кто их закроет, вот как их закрыть". Это занимает 15 минут встречи — и даёт тебе настоящий отпуск, а не режим "в отпуске но на связи".

Зачем это важно для профессии:
Администратор который не может уйти в отпуск без звонков — это признак Bus Factor = 1. Это риск для бизнеса, это проблема команды, и это признак что документация и автоматизация не доделаны. Не геройство. Проблема.

Итог: до отпуска — handoff документ, закрытые июньские дедлайны, передача PagerDuty. После — выключить рабочий чат. Хороших выходных, коллеги. Май позади.

#skills #отпуск #команда #документация #sysadmin #admin_future
👏1
🐧 Linux: CVE-2026-46333 — Qualys опубликовала четыре рабочих эксплойта. Меняем shadow.

Коллеги, вчера Qualys опубликовала полный технический разбор CVE-2026-46333 с деталями которые меняют оценку риска. Это не просто "чтение SSH-ключей" — это четыре разных вектора атаки.

Qualys построила четыре рабочих эксплойта: через chage (раскрывает /etc/shadow), ssh-keysign (раскрывает приватные host-ключи в /etc/ssh/), pkexec (выполняет произвольные команды как root), accounts-daemon (выполняет произвольные команды как root). Все подтверждены на дефолтных установках Debian 13, Ubuntu 24.04, Ubuntu 26.04, Fedora 43 и Fedora 44.

Уязвимость важна потому что современные атаки редко останавливаются на первом плацдарме. RCE работающий как www-data, скомпрометированный CI-джоб, украденный аккаунт разработчика — изначально не root. Локальный баг ядра который читает root-секреты превращает этот плацдарм в кражу учётных данных, имперсонацию хоста или lateral movement.


# ПАТЧ ЕСТЬ — проверяем прямо сейчас:
uname -r
# Патч в коммите Линуса "ptrace: slightly saner get_dumpable() logic"
# Закрыт в: 7.0.8 / 6.18.31 / 6.12.89 / 6.6.139 / 5.15.207 / 5.10.256

# Обновляем если старее:
apt update && apt full-upgrade -y && reboot # Ubuntu/Debian
dnf update kernel -y && reboot # RHEL/Rocky/AlmaLinux

# ЕСЛИ НА ХОСТЕ БЫЛИ ЛОКАЛЬНЫЕ ПОЛЬЗОВАТЕЛИ В МАЕ:
# 1. Ротируем SSH host keys:
rm /etc/ssh/ssh_host_*_key /etc/ssh/ssh_host_*_key.pub
ssh-keygen -A
systemctl restart sshd

# 2. Ротируем пароли учёток из /etc/shadow:
# (shadow мог быть прочитан через chage-эксплойт)
# Минимум — все системные аккаунты с shell:
awk -F: '$7 !~ /nologin|false/ && $3 >= 1000 {print $1}' \
/etc/passwd | while read u; do passwd --expire $u; done

# 3. Митигейшн если патч ещё не применён:
echo "kernel.yama.ptrace_scope = 2" >> \
/etc/sysctl.d/99-ptrace.conf
sysctl -p /etc/sysctl.d/99-ptrace.conf
# ptrace_scope=2: только root может ptrace непривилегированных процессов


Зачем ротировать именно shadow и SSH-ключи: в shared-hosting среде разница между раскрытием учётных данных и прямым root-доступом практически отсутствует — любого из этих файлов атакующему достаточно чтобы пройти весь оставшийся путь.

Итог: патч + перезагрузка. Если были локальные пользователи в мае — SSH host keys и пароли из shadow считай скомпрометированными. Ротация — это 10 минут работы.

#linux #cve #ssh #kernel #security #sysadmin #admin_future
🪟 Windows: Entra hard match — 1 июня через 6 дней. Последний шанс проверить.

Коллеги, срочное напоминание. До дедлайна шесть дней — и это не тот дедлайн который переносят.

С 1 июня 2026 Microsoft Entra ID заблокирует любую попытку Entra Connect Sync или Cloud Sync выполнить hard-match нового объекта пользователя из Active Directory к существующему cloud-managed Entra ID пользователю, которому назначены Microsoft Entra роли. Если cloud-managed пользователь уже имеет onPremisesImmutableId (sourceAnchor) и назначенную роль — Connect Sync или Cloud Sync больше не смогут взять Source of Authority этого пользователя через hard-match с входящим AD-объектом.

Это защита от атаки SyncJacking — когда атакующие манипулируют синхронизацией каталогов чтобы захватить привилегированные cloud-идентичности. Hard match для непривилегированных аккаунтов не затронут. Поведение soft match не изменяется.

Дополнительный дедлайн который многие не заметили: все synchronization services в Microsoft Entra Connect Sync перестанут работать 30 сентября 2026 если не обновиться до версии минимум 2.5.79.0.


# ШАГ 1: Проверяем версию Entra Connect (нужна минимум 2.5.79.0):
Get-ADSyncGlobalSettings | Select-Object Version
# или
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Azure AD Connect" |
Select-Object AzureADConnectVersion

# Если версия ниже 2.5.79.0 — СРОЧНО обновить:
# Скачать с: entra.microsoft.com -> Identity -> Hybrid management
# -> Entra Connect -> Download

# ШАГ 2: Находим cloud-привилегированные аккаунты которые могут
# сломаться при попытке hard-match после 1 июня:
Connect-MgGraph -Scopes "RoleManagement.Read.Directory","User.Read.All"

$allRoleAssignments = Get-MgRoleManagementDirectoryRoleAssignment -All

$riskyUsers = foreach ($ra in $allRoleAssignments) {
try {
$user = Get-MgUser -UserId $ra.PrincipalId `
-Property OnPremisesImmutableId,DisplayName,UserPrincipalName `
-ErrorAction Stop
if ($user.OnPremisesImmutableId) {
[PSCustomObject]@{
DisplayName = $user.DisplayName
UPN = $user.UserPrincipalName
ImmutableId = $user.OnPremisesImmutableId
RoleId = $ra.RoleDefinitionId
}
}
} catch {}
}

$riskyUsers | Format-Table -AutoSize
$riskyUsers | Export-Csv "entra_hardmatch_risk.csv" -NoTypeInformation

# ШАГ 3: Если нашли проблемные аккаунты — два варианта:
# Вариант A: Убрать Entra-роль с синхронизированного пользователя
# и назначить cloud-only аккаунту (правильный путь)
# Вариант B: Убедиться что AD-объект с таким sourceAnchor
# уже синхронизирован (тогда блокировка не сработает —
# блокирует только НОВЫЕ hard-match попытки)

# ШАГ 4: Тест синхронизации (запускаем и смотрим ошибки):
Start-ADSyncSyncCycle -PolicyType Delta
Get-ADSyncConnectorRunStatus | Format-Table -AutoSize


Зачем это критично прямо сейчас: если после 1 июня синхронизация попытается hard-match привилегированный аккаунт — она упадёт с ошибкой. Это может заблокировать lifecycle-операции: создание аккаунтов, обновления, отключения. В разгар рабочего дня.

Итог: два действия до пятницы. Проверить версию Entra Connect (должна быть 2.5.79.0+). Запустить скрипт поиска проблемных аккаунтов. Шесть дней — достаточно если начать сейчас.

#windows #entra #activedirectory #hybrididentity #security #sysadmin #admin_future
🧠 Skills: Публичный GitHub — почему это важнее резюме в 2026 году

Коллеги, вторник — хороший момент для темы которую откладывают до лучших времён. Лучших времён не будет. Говорим о публичном профиле инженера.

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

В 2026 году это уже не нейтральная позиция — это упущенное преимущество.

Три конкретных шага которые меняют ситуацию:


ШАГ 1: ПУБЛИЧНЫЙ GITHUB С РЕАЛЬНЫМИ ИНСТРУМЕНТАМИ
(не "hello world", а то что реально используешь)

Что можно публиковать без риска:
- Ansible roles для типовых задач
(hardening, monitoring setup, backup scripts)
- PowerShell-скрипты для AD-аудита
- Docker-compose шаблоны для dev-окружений
- Конфиги nginx/haproxy с комментариями
- Runbook-шаблоны в Markdown

Что НЕ публиковать:
- IP-адреса и имена хостов своей инфраструктуры
- Credentials, tokens, пароли (даже в коментах)
- Конфиги с именами пользователей и доменов компании
- Специфику уязвимостей которые ещё не закрыты

Как проверить перед публикацией:
git grep -E "password|secret|token|key" -- '*.yml' '*.sh'
trufflehog filesystem . --only-verified

ШАГ 2: README КОТОРЫЙ ОБЪЯСНЯЕТ ЗАЧЕМ, А НЕ ТОЛЬКО КАК
Плохой README: "Скрипт для бэкапа"
Хороший README:
"Скрипт автоматизирует ежедневный бэкап PostgreSQL
с шифрованием через age, загрузкой в S3-совместимое
хранилище и алертом в Telegram при ошибке.
Используется на 15 серверах в продакшне."

Разница: второй показывает что ты думал о надёжности,
безопасности и масштабе — а не просто написал bash.

ШАГ 3: ОДИН РЕПОЗИТОРИЙ В МЕСЯЦ
Не нужно всё сразу. Один полезный скрипт или плейбук
с нормальным README в месяц — за год это 12 проектов.
Это уже профиль который можно показать.


Почему это важно именно для сисадмина (не только для разработчика):

В 2026 году граница между sysadmin и infrastructure engineer размытая. Карьерный рост в IT-инфраструктуре предусматривает движение от технической поддержки и системного администрирования к старшему инженеру, архитектору и далее к руководящим ролям. На каждом переходе — публичный портфолио работает лучше чем пересказ резюме.

Зачем начинать сейчас: инженер который решил CVE-2026-46333 через ptrace_scope + ротацию ключей, написал плейбук для ModuleJail, и опубликовал его с README — это не просто хорошая история для собеседования. Это живое доказательство экспертизы.

Итог: один публичный репозиторий с чем-то реальным и полезным — лучшая инвестиция в карьеру которую можно сделать за вечер. Начни с того скрипта который написал на прошлой неделе.

#skills #github #карьера #портфолио #sysadmin #admin_future
🔥3
🐧 Linux: LKRG 1.0 — runtime-защита ядра вышла из experimental, и вот почему это важно сейчас

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

Linux Kernel Runtime Guard (LKRG) официально достиг версии 1.0 — переход от экспериментального проекта к production-ready инструменту. После нескольких лет разработки, тестирования и реального использования релиз 1.0 сигнализирует уверенность в стабильности и долгосрочном направлении.

Что делает LKRG: это loadable kernel module который мониторит целостность ядра в runtime. LKRG выполняет runtime integrity checking ядра Linux и детектирование эксплуатации уязвимостей безопасности против ядра. Это не патч ядра — модуль, который можно собрать для широкого спектра mainline и дистрибутивных ядер без их патчинга.

Если бы LKRG стоял на серверах в мае: он бы детектировал попытки page-cache write от Copy Fail/Dirty Frag/Fragnesia и реагировал — вплоть до kernel panic или kill процесса. Это не замена патчу, но дополнительный слой.

# УСТАНОВКА:

# Rocky/AlmaLinux/RHEL (через SIG Security):
dnf install epel-release
dnf install lkrg-dkms

# Debian/Ubuntu (через Kicksecure repo):
curl -fsSL https://www.kicksecure.com/keys/derivative.asc | \
gpg --dearmor | tee /usr/share/keyrings/derivative.asc
echo "deb [signed-by=/usr/share/keyrings/derivative.asc] \
https://deb.kicksecure.com bookworm main" | \
tee /etc/apt/sources.list.d/lkrg.list
apt update && apt install lkrg

# Загружаем модуль:
modprobe lkrg
dmesg | grep -i lkrg | tail -5

# Проверяем статус:
sysctl lkrg.profile_enforce
# 0=monitoring, 1=detect+log, 2=balanced, 3=heavy, 4=paranoid

# ВАЖНО: начинаем с мониторинга, не с enforce:
sysctl -w lkrg.profile_enforce=1
# Смотрим логи несколько дней — ищем false positives:
journalctl -k | grep -i lkrg | tail -20

# После проверки — включаем защиту:
echo "lkrg.profile_enforce=2" >> /etc/sysctl.d/01-lkrg.conf

# Автозагрузка:
echo "lkrg" >> /etc/modules-load.d/lkrg.conf


Важные предупреждения: performance overhead есть — около 1.7% на Intel i7, 0.1% на Ryzen. Для production-серверов это приемлемо. Опция lkrg.block_modules блокирует загрузку новых модулей — не включать если система загружает модули динамически. Начинать с profile_enforce=0 или 1 и проверять false positives несколько дней.

Итог: после мая 2026 — LKRG в production это уже не паранойя. Это разумная defence-in-depth против целого класса атак. Ставь в лабу сегодня, в прод — после тестирования.

#linux #lkrg #kernel #security #hardening #sysadmin #admin_future
🪟 Windows: Entra hard match — сегодня 1 июня, блокировка включилась. Что происходит.

Коллеги, доброе утро понедельника с новой реальностью. Сегодня 1 июня 2026 — день когда Microsoft включила принудительную блокировку hard match для привилегированных Entra ID аккаунтов.

Что именно случилось сегодня:

Entra Connect Sync и Cloud Sync теперь блокируют любую попытку hard-match нового AD-объекта к существующему cloud-managed пользователю который имеет Entra роли. Существующие синхронизированные аккаунты не затронуты — блокируются только НОВЫЕ попытки hard match. Soft match поведение не изменяется.

Есть и вторая фаза: 1 июля 2026 — Entra Connect больше не сможет изменять атрибут OnPremisesObjectIdentifier после того как он уже установлен на синхронизированном пользователе. Это предотвращает переназначение уже синхронизированного пользователя на другой on-premises identity. Обе фазы возвращают одинаковую ошибку при блокировке: "Hard match operation blocked due to security hardening".

Если сегодня у тебя упала синхронизация с этой ошибкой:

# 1. Смотрим ошибки синхронизации:
# Entra Admin Center -> Identity -> Hybrid management
# -> Microsoft Entra Connect -> Sync errors

# Через PowerShell:
Get-ADSyncCSObject -ConnectorName "yourDomain.com" |
Where-Object {$_.ErrorName -ne $null} |
Select-Object Name, ErrorName, ErrorDetail |
Format-List

# 2. Диагностируем конкретный аккаунт:
# Ищем cloud-user с onPremisesImmutableId и Entra ролью:
Connect-MgGraph -Scopes "User.Read.All","RoleManagement.Read.Directory"

$user = Get-MgUser -Filter "userPrincipalName eq 'user@domain.com'" `
-Property OnPremisesImmutableId, Id
$roles = Get-MgUserTransitiveMemberOf -UserId $user.Id |
Where-Object {$_."@odata.type" -eq "#microsoft.graph.directoryRole"}

Write-Host "ImmutableId: $($user.OnPremisesImmutableId)"
Write-Host "Roles: $($roles.DisplayName -join ', ')"

# 3. ПРАВИЛЬНОЕ РЕШЕНИЕ — убираем роль с синхронизированного аккаунта
# и назначаем cloud-only аккаунту (Best Practice):
# Remove-MgDirectoryRoleMember -DirectoryRoleId <roleId> `
# -DirectoryObjectId $user.Id
# Создаём cloud-only admin account и назначаем роль ему

# 4. ВРЕМЕННЫЙ обходной путь (НЕ для production):
# Убрать onPremisesImmutableId с cloud-объекта чтобы разрешить hard match
# НО — это уберёт защиту от SyncJacking
# Делать ТОЛЬКО если понимаешь последствия


Контекст зачем это нужно: SyncJacking — атака где злоумышленник с определёнными привилегиями может злоупотребить hard matching синхронизацией в Entra Connect и полностью захватить любой синхронизированный Entra ID аккаунт — включая Active Global Administrator.

Итог: если всё работает — отлично, ты подготовился. Если упала синхронизация с ошибкой hard match — это не баг, это новая политика безопасности. Best practice: привилегированные роли только на cloud-only аккаунтах. Никогда на синхронизированных.

#windows #entra #activedirectory #hybrididentity #security #sysadmin #admin_future
🧠 Skills: Июнь — время ревью инфраструктуры. Три вещи которые стоит сделать в первую неделю

Коллеги, понедельник 1 июня — хорошее начало для структурированного квартального ревью. Май был реактивным. Июнь должен быть проактивным.

После Copy Fail, Dirty Frag, Fragnesia, CVE-2026-46333, Entra hard match, RC4 и Secure Boot — у тебя есть уникальная возможность: пока всё свежо в памяти, превратить реакцию на инциденты в системные улучшения.

Три конкретных действия на первую неделю июня:

ДЕЙСТВИЕ 1: INFRASTRUCTURE HEALTH CHECK (вторник-среда)

Linux:
□ Все ядра обновлены до патчей мая
uname -r на каждом хосте (нужна 7.0.8 / 6.18.31 / 6.12.89+)
□ ptrace_scope >= 1 на всех серверах
sysctl kernel.yama.ptrace_scope
□ SSH host keys ротированы на хостах с local users
□ Mitigation файл /etc/modprobe.d/may2026-kernel-lpe.conf стоит

Windows:
□ KB5087539 установлен на все Windows Server 2025
□ Secure Boot статус "Updated" на всех серверах
(дедлайн истёк, но лучше поздно чем никогда)
□ RC4 аудит Event 201/202 — смотрим есть ли трафик
□ Entra Connect версия >= 2.5.79.0

ДЕЙСТВИЕ 2: ПРОЦЕССНЫЙ АУДИТ (четверг)

Что из майских реакций было ручным и должно стать автоматическим?

Создай список из трёх пунктов:
□ Что делал руками на каждом сервере?
→ Кандидат для Ansible playbook
□ О чём узнал от коллег а не из мониторинга?
→ Кандидат для нового алерта
□ Что занимало > 30 минут разбора?
→ Кандидат для runbook

Один playbook написать прямо в четверг.

ДЕЙСТВИЕ 3: ДЕДЛАЙНЫ ИЮНЯ-ИЮЛЯ (пятница-планирование)

Составь список уже сейчас:
□ 1 июня: Entra hard match (СЕГОДНЯ)
□ 8 июня: июньский Patch Tuesday
□ Июнь: Secure Boot сертификаты истекают
□ 30 июня: Entra Connect 2.5.79.0 (версия старее = синк ломается)
□ 1 июля: Entra Phase 2 (OnPremisesObjectIdentifier freeze)
□ Июль: RC4 Kerberos enforcement финал

Занести всё в трекер с датами и владельцами.
Не в голову — в систему.


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

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

#skills #инфраструктура #процессы #планирование #sysadmin #admin_future
🔥2
🐧 Linux: CVE-2026-23111 — один лишний символ в nftables даёт root. Эксплойт публичный.

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

CVE-2026-23111 сидит в коде nf_tables packet-filtering ядра и был пропатчен upstream ещё 5 февраля 2026. Exodus Intelligence выпустили полный технический разбор 8 июня, и это не первый публичный эксплойт — FuzzingLabs опубликовал независимое воспроизведение ещё в апреле. Баг свёлся к единственному лишнему символу — инвертированной проверке в nf_tables — и upstream-фикс убрал его одной строкой.

Достижимая конфигурация типична: nftables плюс unprivileged user namespaces — Linux-фича которая позволяет обычному аккаунту действовать как root внутри приватной песочницы и достигать кода ядра который иначе был бы недоступен. Оба компонента включены по умолчанию на большинстве десктопов и многих серверных сборках. Удалённого вектора нет.

Ubuntu оценивает CVSS 7.8 (high). PoC публичен с апреля.

# ПРОВЕРКА — уязвимы ли вы:
uname -r
# Патч в ядрах 7.0.6 / 6.18.28 / 6.12.87 / 6.6.138 и новее
# Если ваша версия старее — уязвимы

# Митигейшн — отключаем unprivileged user namespaces:
# (ломает некоторые приложения типа Chrome/Chromium sandbox!)
sysctl kernel.unprivileged_userns_clone
# Если 1 — включено. Отключаем:
sysctl -w kernel.unprivileged_userns_clone=0
echo "kernel.unprivileged_userns_clone=0" >> \
/etc/sysctl.d/99-userns.conf

# Альтернатива — AppArmor restriction (Ubuntu):
# Ограничиваем user namespaces без полного отключения:
sysctl -w kernel.apparmor_restrict_unprivileged_userns=1

# Проверяем используется ли user namespaces активными процессами:
find /proc/*/ns/user -type l 2>/dev/null | wc -l
# Если > 5-10 — что-то активно использует, отключение аккуратно

# ОБНОВЛЯЕМ ЯДРО:
apt update && apt full-upgrade -y && reboot # Ubuntu/Debian
dnf update kernel -y && reboot # RHEL/Rocky/AlmaLinux


Зачем это важно именно сейчас: публичный PoC означает что автоматизированные атаки уже возможны. Если на вашем сервере есть непривилегированные пользователи с shell-доступом — это активный риск прямо сейчас.

Итог: один символ в коде — root на твоём сервере. Ядро обновлено — проблемы нет. Не обновлено — mitigation через sysctl за 30 секунд.

#linux #kernel #nftables #cve #security #sysadmin #admin_future