
Регулярное обновление системы CentOS — один из важнейших аспектов общей безопасности. Если вы не обновляете пакеты операционной системы последними исправлениями безопасности, ваш компьютер становится уязвимым для атак.
Если вы управляете несколькими компьютерами CentOS, ручное обновление системных пакетов может занять много времени. Даже если вы управляете одной установкой CentOS, иногда можно пропустить важное обновление. Именно здесь пригодятся автоматические обновления.
В этом руководстве мы рассмотрим процесс настройки автоматических обновлений в CentOS 7. Те же инструкции применимы и для CentOS 6.
Предпосылки
Прежде чем продолжить работу с этим руководством, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Установка пакета yum-cron
Пакет yum-cron позволяет автоматически запускать команду yum в качестве задания cron для проверки наличия, загрузки и применения обновлений. Скорее всего, этот пакет уже установлен в вашей системе CentOS. Если он не установлен, вы можете установить его, выполнив следующую команду:
sudo yum install yum-cron
После завершения установки включите и запустите службу:
sudo systemctl enable yum-cronsudo systemctl start yum-cron
Чтобы проверить, запущена ли служба, введите следующую команду:
systemctl status yum-cron
На экране будет отображена информация о состоянии службы yum-cron:
● yum-cron.service - Run automatic yum updates as a cron job Loaded: loaded (/usr/lib/systemd/system/yum-cron.service; enabled; vendor preset: disabled) Active: active (exited) since Sat 2019-05-04 21:49:45 UTC; 8min ago Process: 2713 ExecStart=/bin/touch /var/lock/subsys/yum-cron (code=exited, status=0/SUCCESS) Main PID: 2713 (code=exited, status=0/SUCCESS) CGroup: /system.slice/yum-cron.service
Настройка yum-cron
yum-cron поставляется с двумя файлами конфигурации, которые хранятся в каталоге /etc/yum : почасовой файл конфигурации yum-cron-hourly.conf и ежедневный файл конфигурации yum-cron.conf .
Служба yum-cron управляет только запуском заданий cron. Утилита yum-cron вызывается файлами cron /etc/cron.hourly/0yum-hourly.cron и /etc/cron.daily/0yum-daily.cron .
По умолчанию ежечасный cron настроен на отсутствие каких-либо действий. При наличии доступных обновлений ежедневный cron загружает их, но не устанавливает, и отправляет сообщения на стандартный вывод. Конфигурация по умолчанию достаточна для критически важных производственных систем, где требуется получать уведомления и выполнять обновления вручную после их тестирования на тестовых серверах.
Файл конфигурации состоит из разделов, каждый из которых содержит комментарии, описывающие назначение каждой строки конфигурации.
Чтобы отредактировать файл конфигурации yum-cron, откройте его в текстовом редакторе:
sudo nano /etc/yum/yum-cron-hourly.conf
В первом разделе [commands] вы можете определить типы пакетов, которые хотите обновлять, включить уведомления и загрузки, а также настроить автоматическое применение обновлений при их наличии. По умолчанию для update_cmd установлено значение default, что означает обновление всех пакетов. Если вы хотите настроить автоматическое обновление без участия пользователя, рекомендуется изменить значение на security , что позволит yum обновлять только те пакеты, которые исправляют проблемы безопасности.
В следующем примере мы изменили update_cmd на security и включили автоматические обновления, установив apply_updates на yes :
/etc/yum/yum-cron-hourly.conf
[commands] update_cmd = security update_messages = yes download_updates = yes apply_updates = no random_sleep = 360
Во втором разделе определяется, как отправлять сообщения. Чтобы отправлять сообщения и на стандартный вывод, и на электронную почту, измените значение emit_via на stdio,email .
/etc/yum/yum-cron-hourly.conf
[emitters] system_name = None emit_via = stdio,email output_width = 80
В разделе [email] вы можете указать адреса электронной почты отправителя и получателя. Убедитесь, что в вашей системе установлен инструмент для отправки писем, например, mailx или postfix.
/etc/yum/yum-cron-hourly.conf
[email] email_from = root@centos.host email_to = me@example.com email_host = localhost
Раздел [base] позволяет переопределить настройки, заданные в файле yum.conf . Если вы хотите исключить определённые пакеты из обновления, используйте параметр exclude . В следующем примере мы исключаем пакет [ mongodb ].
/etc/yum/yum-cron-hourly.conf
[base] debuglevel = -2 mdpolicy = group:main exclude = mongodb*
Для вступления изменений в силу перезапускать службу yum-cron не нужно.
Просмотр журналов
Используйте grep , чтобы проверить, выполняются ли задания cron, связанные с yum:
sudo grep yum /var/log/cron
May 4 22:01:01 localhost run-parts(/etc/cron.hourly)[5588]: starting 0yum-hourly.cron May 4 22:32:01 localhost run-parts(/etc/cron.daily)[5960]: starting 0yum-daily.cron May 4 23:01:01 localhost run-parts(/etc/cron.hourly)[2121]: starting 0yum-hourly.cron May 4 23:01:01 localhost run-parts(/etc/cron.hourly)[2139]: finished 0yum-hourly.cron
История обновлений yum хранится в файле /var/log/yum . Вы можете просмотреть последние обновления с помощью команды tail :
sudo tail -f /var/log/yum.log
May 04 23:47:28 Updated: libgomp-4.8.5-36.el7_6.2.x86_64 May 04 23:47:31 Updated: bpftool-3.10.0-957.12.1.el7.x86_64 May 04 23:47:31 Updated: htop-2.2.0-3.el7.x86_64
Заключение
В этом руководстве вы узнали, как настроить автоматические обновления и поддерживать систему CentOS в актуальном состоянии.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства