Автоматическое обновление безопасности пакетов на сервере Linux

Как настроить автоматическое обновление безопасности пакетов на сервере Linux

Автоматическое обновление пакетов безопасности на сервере Linux настраивается через инструмент unattended-upgrades на Debian/Ubuntu или yum-cron/dnf-automatic на RHEL/CentOS/Fedora, который загружает и устанавливает критические обновления без вмешательства администратора. Это предотвращает уязвимости и экономит время на ручное администрирование сервера.

Зачем нужно автоматическое обновление безопасности

  • Защита от известных уязвимостей и киберугроз, которые появляются ежедневно
  • Снижение рисков несанкционированного доступа и компрометации данных
  • Экономия времени администратора на постоянный мониторинг и ручные обновления
  • Соответствие требованиям безопасности и стандартам (PCI DSS, SOC 2, ISO 27001)
  • Автоматическое перезагружение сервера при необходимости без простоя основных сервисов
  • Ведение логов всех обновлений для аудита и отчётности

Пошаговая инструкция для Debian/Ubuntu

  1. Подключитесь к серверу по SSH с правами root или используйте sudo.
  2. Обновите список пакетов командой apt update.
  3. Установите пакет unattended-upgrades командой apt install unattended-upgrades apt-listchanges -y.
  4. Откройте конфигурационный файл в редакторе: nano /etc/apt/apt.conf.d/50unattended-upgrades.
  5. Раскомментируйте (удалите // в начале) строку Unattended-Upgrade::Allowed-Origins и убедитесь, что там указаны источники обновлений вашей ОС.
  6. Найдите строку Unattended-Upgrade::Package-Blacklist и добавьте критичные пакеты, которые НЕ должны обновляться автоматически (например, ядро системы).
  7. Включите автоматическую перезагрузку, раскомментировав Unattended-Upgrade::Automatic-Reboot "true";.
  8. Установите время перезагрузки строкой Unattended-Upgrade::Automatic-Reboot-Time "02:00"; (или другое удобное время).
  9. Сохраните файл (в nano: Ctrl+O, Enter, Ctrl+X).
  10. Откройте файл /etc/apt/apt.conf.d/20auto-upgrades командой nano /etc/apt/apt.conf.d/20auto-upgrades.
  11. Убедитесь, что там присутствуют строки: APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutoclassifySecurityUpdates "true"; APT::Periodic::Unattended-Upgrade "1";
  12. Сохраните файл и закройте редактор.
  13. Включите и запустите сервис командой systemctl enable unattended-upgrades && systemctl start unattended-upgrades.
  14. Проверьте статус сервиса командой systemctl status unattended-upgrades.
  15. Проверьте логи обновлений командой tail -f /var/log/unattended-upgrades/unattended-upgrades.log.

Пошаговая инструкция для RHEL/CentOS/Fedora

  1. Подключитесь к серверу по SSH с правами root.
  2. Установите пакет dnf-automatic (для Fedora/RHEL 8+) командой dnf install dnf-automatic -y или yum-cron (для CentOS 7) командой yum install yum-cron -y.
  3. Откройте конфигурационный файл: nano /etc/dnf/automatic.conf (для dnf) или nano /etc/yum/yum-cron.conf (для yum).
  4. Найдите параметр apply_updates и установите значение yes для автоматической установки обновлений.
  5. Установите время проверки обновлений, отредактировав параметр random_sleep (максимальная задержка в минутах).
  6. Включите уведомления по электронной почте, отредактировав параметры email_from и email_to.
  7. Сохраните файл и закройте редактор.
  8. Для dnf: включите и запустите таймер командой systemctl enable dnf-automatic.timer && systemctl start dnf-automatic.timer.
  9. Для yum: включите и запустите сервис командой systemctl enable yum-cron && systemctl start yum-cron.
  10. Проверьте статус командой systemctl status dnf-automatic.timer (dnf) или systemctl status yum-cron (yum).
  11. Просмотрите логи обновлений командой cat /var/log/dnf.log (dnf) или cat /var/log/yum.log (yum).

Часто задаваемые вопросы

Как отключить автоматические перезагрузки сервера? Установите значение Unattended-Upgrade::Automatic-Reboot "false"; в конфигурационном файле и перезагрузитесь командой systemctl restart unattended-upgrades.

Почему обновления не устанавливаются, хотя сервис включен? Проверьте логи командой tail -100 /var/log/unattended-upgrades/unattended-upgrades.log, убедитесь, что в Allowed-Origins указаны корректные источники репозиториев вашей ОС и что пакеты не добавлены в чёрный список.

Можно ли исключить определённые пакеты от автоматического обновления? Да, добавьте названия пакетов в параметр Unattended-Upgrade::Package-Blacklist в кавычках через точку с запятой, например: "linux-image*"; "docker*";

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

Ошибка сбоя авторизации при подключении по RDP к Windows Server
DHCP сервер на базе Windows Server 2022
Роль контроллера домена Active Directory в Windows Server