🧠 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
📅 Суббота — инвентаризация: SQL Server 2016 уже без поддержки, Windows Server 2016 — через 108 дней.
Коллеги, выходные — лучшее время посчитать то, что в будни всегда откладывается.
ФАКТЫ:
SQL Server 2016 — расширенная поддержка закончилась 14 июля 2026
Windows Server 2016 — закончится 12 января 2027
ESU для WS2016 Microsoft предлагает через Azure Arc
ИНТЕРПРЕТАЦИЯ ДЛЯ НАС:
Microsoft прекратил продажи в РФ в 2022 году, поэтому для большинства российских организаций ESU недоступен. На практике после 12 января у 2016-х серверов остаются два пути: миграция или изоляция и компенсирующие меры. Вспомните два сентябрьских zero-day EoP в Windows: после EOL такие уязвимости останутся открытыми навсегда.
ШАГ 1 — СЧИТАЕМ WINDOWS:
Get-ADComputer -Filter 'OperatingSystem -like "*Server 2016*" -and Enabled -eq $true' `
-Properties OperatingSystem, LastLogonDate, IPv4Address |
Sort LastLogonDate -Descending |
Select Name, IPv4Address, LastLogonDate |
Export-Csv .\ws2016.csv -NoTypeInformation -Encoding UTF8
ШАГ 2 — СЧИТАЕМ SQL (major 13 = 2016):
sql
SELECT @@SERVERNAME AS server,
SERVERPROPERTY('ProductVersion') AS version,
SERVERPROPERTY('ProductLevel') AS level,
SERVERPROPERTY('Edition') AS edition,
CASE WHEN CAST(PARSENAME(CAST(SERVERPROPERTY('ProductVersion') AS nvarchar(32)),4) AS int) <= 13
THEN 'EOL' ELSE 'OK' END AS status;
ШАГ 3 — ДЛЯ КАЖДОЙ МАШИНЫ ОДНО РЕШЕНИЕ:
□ Мигрировать — на что, кто отвечает, в какой срок
□ Вывести из эксплуатации — роль уже никому не нужна
□ Изолировать — если зависимость не снять (легаси-1С, железо, лицензии): отдельный VLAN, доступ по белому списку, никакого RDP из общей сети, усиленный мониторинг
Строка без ответственного и даты — это не план, а список.
Итог: 108 дней — это примерно три цикла Patch Tuesday. Выгрузку и таблицу «сервер → решение → ответственный → срок» лучше сделать в эти выходные.
#skills #eol #windowsserver #sqlserver #inventory #sysadmin #admin_future
Коллеги, выходные — лучшее время посчитать то, что в будни всегда откладывается.
ФАКТЫ:
SQL Server 2016 — расширенная поддержка закончилась 14 июля 2026
Windows Server 2016 — закончится 12 января 2027
ESU для WS2016 Microsoft предлагает через Azure Arc
ИНТЕРПРЕТАЦИЯ ДЛЯ НАС:
Microsoft прекратил продажи в РФ в 2022 году, поэтому для большинства российских организаций ESU недоступен. На практике после 12 января у 2016-х серверов остаются два пути: миграция или изоляция и компенсирующие меры. Вспомните два сентябрьских zero-day EoP в Windows: после EOL такие уязвимости останутся открытыми навсегда.
ШАГ 1 — СЧИТАЕМ WINDOWS:
Get-ADComputer -Filter 'OperatingSystem -like "*Server 2016*" -and Enabled -eq $true' `
-Properties OperatingSystem, LastLogonDate, IPv4Address |
Sort LastLogonDate -Descending |
Select Name, IPv4Address, LastLogonDate |
Export-Csv .\ws2016.csv -NoTypeInformation -Encoding UTF8
ШАГ 2 — СЧИТАЕМ SQL (major 13 = 2016):
sql
SELECT @@SERVERNAME AS server,
SERVERPROPERTY('ProductVersion') AS version,
SERVERPROPERTY('ProductLevel') AS level,
SERVERPROPERTY('Edition') AS edition,
CASE WHEN CAST(PARSENAME(CAST(SERVERPROPERTY('ProductVersion') AS nvarchar(32)),4) AS int) <= 13
THEN 'EOL' ELSE 'OK' END AS status;
ШАГ 3 — ДЛЯ КАЖДОЙ МАШИНЫ ОДНО РЕШЕНИЕ:
□ Мигрировать — на что, кто отвечает, в какой срок
□ Вывести из эксплуатации — роль уже никому не нужна
□ Изолировать — если зависимость не снять (легаси-1С, железо, лицензии): отдельный VLAN, доступ по белому списку, никакого RDP из общей сети, усиленный мониторинг
Строка без ответственного и даты — это не план, а список.
Итог: 108 дней — это примерно три цикла Patch Tuesday. Выгрузку и таблицу «сервер → решение → ответственный → срок» лучше сделать в эти выходные.
#skills #eol #windowsserver #sqlserver #inventory #sysadmin #admin_future