🧠 Skills: EOL-трекер — самый недооценённый инструмент в арсенале администратора
Коллеги, вопрос на пятницу: вы знаете, какое ПО в вашей инфраструктуре уходит на EOL в следующие 12 месяцев?
Не "примерно знаете". Точно. С датами.
Если нет — вы уже опаздываете. CentOS 7 умер в 2024-м и до сих пор живёт в продакшне у большинства. Ubuntu 20.04 LTS уходит в апреле 2025-го. Python 3.9 EOL был в октябре 2025-го. Каждый из них — потенциальная уязвимость без патчей и потенциальный инцидент.
Практический минимум: один источник правды для всего EOL в вашей инфраструктуре.
Как выстроить процесс:
Зачем это нужно:
EOL-компонент без патчей — это не технический долг. Это открытая CVE без срока закрытия. Апрельский Cockpit RCE затронул установки, которые просто не обновлялись. Большинство громких инцидентов — это не zero-day, это известные уязвимости в давно устаревшем ПО.
Итог: endoflife.date + 15 строк bash + cron — и у тебя есть система которая скажет о проблеме за полгода, а не за день до инцидента.
#skills #eol #инфраструктура #patching #sysadmin #admin_future
Коллеги, вопрос на пятницу: вы знаете, какое ПО в вашей инфраструктуре уходит на EOL в следующие 12 месяцев?
Не "примерно знаете". Точно. С датами.
Если нет — вы уже опаздываете. CentOS 7 умер в 2024-м и до сих пор живёт в продакшне у большинства. Ubuntu 20.04 LTS уходит в апреле 2025-го. Python 3.9 EOL был в октябре 2025-го. Каждый из них — потенциальная уязвимость без патчей и потенциальный инцидент.
Практический минимум: один источник правды для всего EOL в вашей инфраструктуре.
# ---- endoflife.date — лучший бесплатный EOL-трекер ----
# API бесплатный, покрывает 300+ продуктов
# Проверяем конкретную версию прямо из CLI:
curl -s https://endoflife.date/api/ubuntu/22.04.json | \
python3 -m json.tool
# Покажет: eol date, lts, support status
# Скрипт: проверяем весь стек разом
#!/bin/bash
PRODUCTS=("ubuntu/22.04" "rhel/9" "postgresql/14" "python/3.10" "nginx/1.24")
echo "=== EOL CHECK $(date +%Y-%m-%d) ==="
for p in "${PRODUCTS[@]}"; do
result=$(curl -s "https://endoflife.date/api/${p}.json")
eol=$(echo $result | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('eol','unknown'))")
support=$(echo $result | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('support','unknown'))")
echo "$p | EOL: $eol | Support ends: $support"
done
# Пример вывода:
# ubuntu/22.04 | EOL: 2027-04-01 | Support ends: 2024-04-01
# rhel/9 | EOL: 2032-05-31 | Support ends: 2027-05-31
# postgresql/14 | EOL: 2026-11-12 | Support ends: 2026-11-12
# python/3.10 | EOL: 2026-10-04 | Support ends: 2026-10-04 <- скоро!
# nginx/1.24 | EOL: false | Support ends: 2025-04-24 <- уже!
Как выстроить процесс:
1. ИНВЕНТАРИЗАЦИЯ (один раз, потом поддерживается)
Список всех ОС + версий + приложений + версий
Храним в Git, обновляем при каждом деплое
2. АВТОМАТИЧЕСКИЙ МОНИТОРИНГ (ежемесячно)
Запускаем скрипт выше через CI/CD или cron
Алерт если до EOL < 180 дней — планируем обновление
Алерт если до EOL < 90 дней — критично, ставим в спринт
3. РАЗГОВОР С БИЗНЕСОМ (когда алерт сработал)
"PostgreSQL 14 уходит на EOL 12 ноября 2026.
После этой даты — нет патчей безопасности.
Миграция на PG 17: 3 дня работы.
Риск без миграции: [вставить стоимость инцидента]."
Зачем это нужно:
EOL-компонент без патчей — это не технический долг. Это открытая CVE без срока закрытия. Апрельский Cockpit RCE затронул установки, которые просто не обновлялись. Большинство громких инцидентов — это не zero-day, это известные уязвимости в давно устаревшем ПО.
Итог: endoflife.date + 15 строк bash + cron — и у тебя есть система которая скажет о проблеме за полгода, а не за день до инцидента.
#skills #eol #инфраструктура #patching #sysadmin #admin_future
🪟 Windows: Windows Server 2016 — до EOL 8 месяцев, и ты, скорее всего, не готов
Коллеги, 12 января 2027 года Microsoft прекращает расширенную поддержку Windows Server 2016. После этой даты прекратятся бесплатные обновления безопасности, техническая помощь и исправления ошибок. Любая уязвимость найденная после этой даты в WS2016 — останется без патча навсегда.
Почему "8 месяцев это много" — опасная иллюзия: каждый месяц промедления сужает окно для тестирования. Организации которые дождутся конца 2026 года для начала валидации приложений — будут вынуждены делать ускоренную миграцию с меньшими возможностями для отката.
Отдельная ловушка — ESU. ESU обеспечивает только критические патчи безопасности — без новых функций, без общей техподдержки. Цена удваивается каждый год, и покупка ESU в год 2 автоматически обязывает доплатить за год 1 ретроактивно. ESU — это не план, это дорогая отсрочка.
Зачем это срочно: организации которые ждут последнего квартала 2026 года столкнутся с нехваткой ресурсов для миграции, более высокими ценами на консалтинг и техническим давлением.
Итог: 8 месяцев — это не запас, это минимум для нормальной миграции. Сделай инвентаризацию сегодня. Это первые 30 минут — и они самые важные.
#windows #windowsserver2016 #eol #migration #sysadmin #admin_future
Коллеги, 12 января 2027 года Microsoft прекращает расширенную поддержку Windows Server 2016. После этой даты прекратятся бесплатные обновления безопасности, техническая помощь и исправления ошибок. Любая уязвимость найденная после этой даты в WS2016 — останется без патча навсегда.
Почему "8 месяцев это много" — опасная иллюзия: каждый месяц промедления сужает окно для тестирования. Организации которые дождутся конца 2026 года для начала валидации приложений — будут вынуждены делать ускоренную миграцию с меньшими возможностями для отката.
Отдельная ловушка — ESU. ESU обеспечивает только критические патчи безопасности — без новых функций, без общей техподдержки. Цена удваивается каждый год, и покупка ESU в год 2 автоматически обязывает доплатить за год 1 ретроактивно. ESU — это не план, это дорогая отсрочка.
# ШАГ 1: Инвентаризация — находим все WS2016 в домене
Get-ADComputer -Filter {OperatingSystem -like "*2016*"} `
-Properties OperatingSystem, LastLogonDate, IPv4Address |
Select-Object Name, IPv4Address, LastLogonDate |
Export-Csv "ws2016_inventory_$(Get-Date -Format yyyyMMdd).csv" -NoTypeInformation
# ШАГ 2: Классифицируем роли каждого сервера
# Для каждого найденного сервера:
Invoke-Command -ComputerName "SERVER01" -ScriptBlock {
Get-WindowsFeature | Where-Object {$_.Installed -eq $true} |
Select-Object Name, DisplayName
}
# ШАГ 3: Проверяем domain functional level
# Поднять DFL до WS2022 — все DC должны быть WS2022+
Get-ADDomain | Select-Object DomainMode
Get-ADForest | Select-Object ForestMode
# ШАГ 4: Матрица приоритизации миграции
# Подставь свои данные:
<#
Сервер | Роль | Критичность | Дедлайн миграции
----------------|-----------|-------------|------------------
DC01-2016 | DC/DNS | Критическая | Август 2026
FILE01-2016 | File Srv | Высокая | Сентябрь 2026
APP01-2016 | Legacy App| Средняя | Октябрь 2026
PRINT01-2016 | Print Srv | Низкая | Ноябрь 2026
#>
# ШАГ 5: Изолируем то что не успеваем (временная мера до миграции)
# Жёсткая сегментация через firewall, минимальный доступ, усиленный мониторинг
# В Intune/WAC — включаем EDR на все WS2016 хосты
Зачем это срочно: организации которые ждут последнего квартала 2026 года столкнутся с нехваткой ресурсов для миграции, более высокими ценами на консалтинг и техническим давлением.
Итог: 8 месяцев — это не запас, это минимум для нормальной миграции. Сделай инвентаризацию сегодня. Это первые 30 минут — и они самые важные.
#windows #windowsserver2016 #eol #migration #sysadmin #admin_future