Как предотвратить обновление ядра через yum
Быстрые ссылки
- Сценарий
- Почему не обновлять ядро
- Почему стоит обновлять ядро
- Как безопасно обновлять ядро
- Предотвращение обновления ядра
- Альтернативные подходы
- Когда это не сработает
- Критерии приёмки
- Проверки и откат
- Резюме
Сценарий
Вы настроили rpm‑основанный сервер, он работает стабильно и вы не ожидаете вмешательств в ближайшее время. Затем, выполняя команду от root в терминале, вы запускаете обновление в «автоматическом» режиме:
#yum -y -d0 update
Эта команда отвечает утвердительно на все запросы и работает максимально тихо. В результате может быть обновлено ядро, после чего потребуется перезагрузка — и вы получите незапланированный простой.
Если у вас сейчас проблемы, стоит пересмотреть расписание обновлений, документацию и конфигурацию yum.
Почему не обновлять ядро
- Модули или драйверы могут стать несовместимыми — устройства перестанут работать.
- Нужно поддерживать одинаковые версии ядра на группе серверов для совместимости приложений и отладки.
- Вы вручную скомпилировали ядро и не хотите, чтобы пакетное обновление перезаписало вашу конфигурацию.
- Вы дорожите временем без перезагрузок: если система практически никогда не перезагружается, обновлять ядро бессмысленно.
Почему стоит обновлять ядро
- В первую очередь — безопасность. Ядро может содержать уязвимости, и их исправления критичны.
- Дистрибутивы выпускают патчи и проверяют их перед публикацией; отставание может усложнить будущее обновление до новой мажорной версии.
- Новые функции или исправления существующих багов могут улучшить стабильность и производительность.
Как безопасно обновлять ядро
Лучше иметь контроль над процессом обновления. Запускайте yum без автоматических флагов, анализируйте список пакетов и выполняйте обновление в окне обслуживания:
#yum update
Следуйте подсказкам, проверяйте список обновляемых пакетов и перезагрузки, планируйте окно для перезагрузки.
Предотвращение обновления ядра
Если вы никогда не хотите, чтобы yum обновлял ядро автоматически, добавьте в /etc/yum.conf строку:
exclude=kernel*
Или при однократном запуске используйте CLI‑флаг:
#yum –exclude=kernel* update
Обе опции исключат пакеты, соответствующие шаблону kernel*, из списка обновлений.
Альтернативные подходы
- Плагин versionlock (yum): заблокировать конкретные версии пакетов.
#yum install yum-plugin-versionlock #yum versionlock add kernel*
Преимущество: вы удерживаете конкретную версию, а не полностью исключаете пакет из учёта.
- DNF (на современных системах): используйте dnf‑версию lock или аналогичные плагины.
#dnf install ‘dnf-plugins-core’ #dnf versionlock add kernel*
Управление через конфигурационные системы: Ansible/Salt/Chef — явно исключайте пакеты при заявке на обновления.
Политика installonly_limit: уменьшение числа одновременно установленных образцов ядра в /etc/yum.conf помогает управлять пространством, но не предотвращает обновление.
Централизованные репозитории и управляемые обновления (Satellite, Spacewalk): применяйте обновления сначала к тестовой группе, затем к проду.
Когда это не сработает
- Зависимости: мета‑пакет или обновление другого пакета может потребовать новый пакет ядра как зависимость. В редких случаях исключение может быть обойдено при неправильных масках пакетов.
- Если вы используете автоматические инструменты, которые перезаписывают /etc/yum.conf или применяют свои фильтры, локальное исключение может быть удалено.
- Неправильный шаблон исключения (опечатка) не сработает: убедитесь, что используете kernel*.
Важно: исключение ядра снижает оперативную гибкость в реакции на CVE. Перед удержанием оцените риски безопасности.
Критерии приёмки
- После внесения exclude=kernel* в /etc/yum.conf команда yum update не включает пакеты ядра в список обновлений.
- yum –exclude=kernel* update временно исключает ядро при выполнении одной команды.
- Для versionlock: yum versionlock list показывает kernel* в зафиксированных пакетах.
- В тестовой среде успешное применение политики не привело к регрессиям в производительности и совместимости.
Проверки и откат
Проверки:
- Просмотрите текущие установленные ядра:
#rpm -qa | grep ^kernel
- Выполните имитацию обновления и проверьте, что ядро отсутствует в списке:
#yum check-update
Откат/отмена:
- Удалите строку exclude=kernel* из /etc/yum.conf и сохраните файл.
- Если вы использовали versionlock:
#yum versionlock delete kernel*
- Протестируйте обновление в контролируемом окне и, при необходимости, выполните обычное обновление ядра.
Мини‑методология для удержания ядра (короткий план)
- Инвентаризация: перечислите все серверы и версии ядра.
- Оценка риска: проверьте CVE и критичность патчей для вашего окружения.
- Тестирование: примените исключение на тестовой группе; запустите регрессионные тесты.
- Документирование: зафиксируйте причину удержания и дату проверки.
- Мониторинг: настройте уведомления по критическим CVE, чтобы пересмотреть удержание при необходимости.
Контрольные чек‑листы для ролей
Системный администратор:
- Проверить и добавить exclude в /etc/yum.conf при согласовании с командой безопасности.
- Настроить versionlock при необходимости.
Инженер по безопасности:
- Мониторить CVE и оповещать о критических патчах, которые требуют обновления ядра.
Оператор DevOps:
- Применить изменения через CI/CD или Ansible, удостоверившись, что конфигурация не будет перезаписана.
Диаграмма принятия решения
flowchart TD
A[Нужна высокая доступность без перезагрузок?] -->|Да| B[Исключить ядро или использовать versionlock]
A -->|Нет| C[Обновлять ядро по расписанию]
B --> D[Тестирование в стенде]
D --> E{Безопасно?}
E -->|Да| F[Применить в проде с мониторингом]
E -->|Нет| G[Откат и анализ]Резюме
- Имеются простые способы предотвратить обновление ядра: конфигурация /etc/yum.conf и флаги CLI.
- Используйте versionlock, если нужно зафиксировать конкретные версии, а не полностью исключать пакет.
- Всегда тестируйте изменения, документируйте причины удержания и следите за публикациями о критических уязвимостях.
Важно: удержание ядра уменьшает риск незапланированных перезагрузок, но увеличивает риски безопасности. Решение должно быть взвешенным и задокументированным.
Ключевые команды для быстрого доступа:
#yum –exclude=kernel* update
В /etc/yum.conf добавьте: exclude=kernel*
#yum install yum-plugin-versionlock #yum versionlock add kernel*
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента