Гид по технологиям

Автоматические обновления безопасности на CentOS 7 с помощью yum-cron

4 min read Linux Обновлено 17 Oct 2025
yum-cron: автоматические обновления безопасности CentOS 7
yum-cron: автоматические обновления безопасности CentOS 7

В этой инструкции показано, как установить и настроить yum-cron на CentOS 7 для автоматической загрузки и установки только обновлений безопасности. Опишем установку, конфигурацию отправки уведомлений по почте, исключение пакетов и проверку логов. В конце — чек-листы, сниппеты и дерево решений для выбора стратегии обновлений.

Важно: применяйте обновления безопасности в течение 30 дней после выхода, если это не противоречит корпоративной политике.

Введение

Обновления безопасности критичны для серверов. На Linux рекомендуется оперативно устанавливать патчи безопасности, чтобы закрывать уязвимости и снижать риск компрометации. На CentOS 7 популярный инструмент для автоматизации этой задачи — пакет yum-cron. Он может автоматически загружать и применять обновления, отправлять уведомления и позволять исключать конкретные пакеты из автоматики.

Кратко о терминах

  • yum-cron — служба, которая запускает задачу обновления по расписанию. Она использует конфигурацию в /etc/yum/yum-cron.conf.

Что будет описано

  • Установка yum-cron на CentOS 7
  • Настройка для автоматических только security-обновлений
  • Исключение пакетов из автоматических обновлений
  • Проверка логов и верификация

Требования

  • Сервер с CentOS 7
  • Права root или sudo

Шаг 1 — Установка yum-cron на CentOS 7

Yum-cron доступен в стандартных репозиториях CentOS 7. Установите пакет командой:

yum -y install yum-cron

После установки запустите службу и включите автозапуск при старте системы:

systemctl start yum-cron
systemctl enable yum-cron

Теперь yum-cron установлен и включён.

Шаг 2 — Настройка yum-cron для автоматических обновлений безопасности

Yum-cron поддерживает несколько режимов: полные обновления, минимальные обновления и только security. В этой инструкции мы настроим только security-обновления.

Перейдите в каталог конфигурации yum и отредактируйте файл yum-cron.conf любым удобным редактором:

cd /etc/yum/
vim yum-cron.conf

Найдите строку, начинающуюся с update_cmd, и задайте значение security:

update_cmd = security

Убедитесь, что включены сообщения и загрузка/применение обновлений:

update_messages = yes
download_updates = yes
apply_updates = yes

Это заставит систему автоматически скачивать и устанавливать доступные обновления безопасности.

Настройка yum-cron для автоматических обновлений

Настройка уведомлений. yum-cron может выводить сообщения на STDOUT или отправлять их по почте. Для отправки на почту задайте:

emit_via = email

Укажите отправителя, получателя и SMTP-хост:

email_from = root@hakase-labs
email_to = [email protected]
email_host = hakase-labs

Конфигурация почты

Сохраните файл и перезапустите службу:

systemctl restart yum-cron

После этого система будет ежедневно проверять доступные security-обновления и применять их автоматически.

Шаг 3 — Исключение пакетов из автоматических обновлений

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

Откройте тот же файл конфигурации:

cd /etc/yum/
vim yum-cron.conf

В секции base добавьте строку exclude с масками пакетов. Пример:

exclude = mysql* kernel*

Сохраните изменения и снова перезапустите yum-cron:

systemctl restart yum-cron

Теперь пакеты с именами, начинающимися на mysql и kernel, не будут устанавливаться автоматически.

Исключение пакетов из обновлений

Шаг 4 — Проверка логов yum-cron

Запланированные задания и вывод работы yum-cron попадают в системные логи. Просмотреть последние записи по задаче можно так:

cd /var/log/
cat cron | grep yum-daily

Чтобы увидеть, какие пакеты были обновлены, проверьте yum.log:

cat yum.log | grep Updated

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

Альтернативные подходы и когда yum-cron не подходит

  • Ручные обновления через Ansible/SSH: удобны в средах с централизованным управлением конфигурацией.
  • DNF-automatic на системах с DNF: если вы используете CentOS Stream или более новые дистрибутивы.
  • Обновления по расписанию в CI/CD: для тестирования обновлений перед развёртыванием.

Когда не использовать автоматические обновления:

  • Если требуется тщательное тестирование каждого обновления перед установкой.
  • В средах с жёсткой совместимостью, где автоматическое обновление может нарушить работу приложений.

Мини-методология: как безопасно внедрить автоматические обновления

  1. Тестовая среда: внедрите yum-cron сначала в тестовой среде, идентичной продакшену.
  2. Мониторинг: включите уведомления по почте и мониторинг сервисов после обновлений.
  3. Исключения: отфильтруйте пакеты, которые требуют ручной валидации.
  4. План отката: подготовьте процедуру отката или восстановления из бэкапа.

Чек-листы по ролям

Администратор

  • Проверить наличие yum-cron и его статус.
  • Настроить email-уведомления и тестовую почту.
  • Добавить исключения для критичных пакетов.
  • Настроить бэкапы перед крупными обновлениями.

Аудитор / Команда безопасности

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

Разработчик приложения

  • Проверить совместимость приложения с новыми версиями библиотек.
  • Подготовить тесты регрессии и запускать их после обновлений.

Быстрые сниппеты и чек для восстановления

Быстрые команды статуса и управления:

systemctl status yum-cron
journalctl -u yum-cron --since "1 day ago"
cat /var/log/yum.log | tail -n 50

Откат пакета (если доступен в кэше):

yum downgrade 

Если автопроцесс нарушил систему, выполните шаги восстановления:

  1. Откатите обновлённые пакеты, если это возможно.
  2. Восстановите конфигурации из резервной копии.
  3. Запустите тесты и мониторинг сервисов.

Дерево решений: выбор стратегии обновлений

flowchart TD
  A[Начало: нужна автоматизация?] --> B{Среда}
  B -->|Продакшен с критичными сервисами| C[Тестировать обновления в staging и применять вручную]
  B -->|Нестабильная разработка| D[Автоматические security-обновления включить]
  B -->|Централизованное управление| E[Использовать Ansible/CI для обновлений]
  D --> F[Включить yum-cron: update_cmd=security]
  F --> G[Настроить уведомления и исключения]

Критерии приёмки

  • yum-cron установлен и активен.
  • В конфигурации указано update_cmd = security.
  • Письма-уведомления доходят на указанный адрес.
  • Исключённые пакеты не обновлялись автоматически.
  • Логи показывают регулярные проверки и выполненные обновления.

Когда автоматизация может не сработать

  • Отсутствует доступ к внешним репозиториям.
  • Конфликты зависимостей, приводящие к отмене обновлений.
  • Неправильная конфигурация email или SMTP.
  • Политики SELinux или firewall блокируют работу служб.

Важно: всегда проверяйте логи и следите за алертами после внедрения автоматизации.

Краткое резюме

  • yum-cron позволяет автоматически применять security-обновления на CentOS 7.
  • Настройте update_cmd = security, включите загрузку и применение пакетов, и настройте уведомления.
  • Исключайте критичные пакеты через параметр exclude.
  • Тестируйте настройки в staging и имейте план отката.

Ссылки и ресурсы

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как продлить жизнь аккумулятора iPhone
Гаджеты

Как продлить жизнь аккумулятора iPhone

Ошибка 0x800F0909: языковые пакеты Windows 11
Windows

Ошибка 0x800F0909: языковые пакеты Windows 11

launcher-list-indicator: профили иконок Unity
Linux

launcher-list-indicator: профили иконок Unity

Как исправить ошибку 0x8007025D в Windows 10
Windows

Как исправить ошибку 0x8007025D в Windows 10

Исправить No audio output device is installed в Windows
Windows

Исправить No audio output device is installed в Windows

Обновление Ubuntu 7.10 до 8.04 LTS
Linux

Обновление Ubuntu 7.10 до 8.04 LTS