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

В этой инструкции показано, как установить и настроить 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 может выводить сообщения на 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: для тестирования обновлений перед развёртыванием.
Когда не использовать автоматические обновления:
- Если требуется тщательное тестирование каждого обновления перед установкой.
- В средах с жёсткой совместимостью, где автоматическое обновление может нарушить работу приложений.
Мини-методология: как безопасно внедрить автоматические обновления
- Тестовая среда: внедрите yum-cron сначала в тестовой среде, идентичной продакшену.
- Мониторинг: включите уведомления по почте и мониторинг сервисов после обновлений.
- Исключения: отфильтруйте пакеты, которые требуют ручной валидации.
- План отката: подготовьте процедуру отката или восстановления из бэкапа.
Чек-листы по ролям
Администратор
- Проверить наличие 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
Если автопроцесс нарушил систему, выполните шаги восстановления:
- Откатите обновлённые пакеты, если это возможно.
- Восстановите конфигурации из резервной копии.
- Запустите тесты и мониторинг сервисов.
Дерево решений: выбор стратегии обновлений
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 и имейте план отката.
Ссылки и ресурсы
Похожие материалы

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

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

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

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

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