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

Автоматические обновления безопасности на Ubuntu 16.04

6 min read DevOps Обновлено 08 Oct 2025
Автоматические обновления безопасности Ubuntu 16.04
Автоматические обновления безопасности Ubuntu 16.04

Это пошаговое руководство показывает, как настроить автоматические обновления безопасности на Ubuntu 16.04 с помощью пакета unattended-upgrades. Вы узнаете, как установить пакет, настроить только обновления безопасности, задать черный список пакетов, включить уведомления по e-mail и автоматическую перезагрузку, а также как проверять логи и отлаживать процесс.

Что мы сделаем

  1. Установим unattended-upgrades на Ubuntu 16.04
  2. Настроим unattended-upgrades
  3. Включим автоматические обновления
  4. Проверим, какие пакеты обновлялись

Требования

  • Сервер с Ubuntu 16.04
  • Права root или sudo

Шаг 1 — Установка unattended-upgrades на Ubuntu 16.04

Первое действие — установить пакет unattended-upgrades. Он доступен в репозиториях Ubuntu и устанавливается через apt.

Подключитесь к серверу через SSH:

ssh root@hakase-labs

Обновите списки пакетов и установите unattended-upgrades:

sudo apt update  
sudo apt install unattended-upgrades

После установки нужно отредактировать конфигурацию в каталоге /etc/apt/apt.conf.d.

Шаг 2 — Настройка unattended-upgrades

Конфигурация unattended-upgrades расположена в /etc/apt/apt.conf.d. В ней мы укажем тип обновлений, зададим «черный список» пакетов и включим дополнительные параметры: уведомления по e-mail, удаление неиспользуемых зависимостей и автоматическую перезагрузку.

Перейдите в каталог и откройте файл 50unattended-upgrades:

cd /etc/apt/apt.conf.d/  
vim 50unattended-upgrades

Указать тип обновлений

Нас интересуют только обновления безопасности. В блоке Allowed-Origins оставьте только строку с суффиксом -security. Откомментируйте или закомментируйте строки, как показано ниже.

Unattended-Upgrade::Allowed-Origins {  
 //      "${distro_id}:${distro_codename}";  
         "${distro_id}:${distro_codename}-security";  
         // Extended Security Maintenance; doesn't necessarily exist for  
         // every release and this system may not have it installed, but if  
         // available, the policy for updates is such that unattended-upgrades  
         // should also install from here by default.  
 //      "${distro_id}ESM:${distro_codename}";  
 //      "${distro_id}:${distro_codename}-updates";  
 //      "${distro_id}:${distro_codename}-proposed";  
 //      "${distro_id}:${distro_codename}-backports";  
 };

Изображение: окно редактора с настройками разрешённых источников обновлений

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

Черный список пакетов

Если нужно запретить автоматическое обновление отдельных пакетов, перечислите их в Package-Blacklist. Пример:

Unattended-Upgrade::Package-Blacklist {  
         "vim";  
         "mysql-server";  
         "mysql-client";  
 //      "libc6";  
 //      "libc6-dev";  
 //      "libc6-i686";  
 };

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

Дополнительные параметры

Рекомендуемые опции: уведомление по e-mail, автоматическое удаление неиспользуемых зависимостей, автоматическая перезагрузка при необходимости.

Для уведомлений по e-mail укажите адрес получателя (в примере — root):

Unattended-Upgrade::Mail "root";

Примечание: убедитесь, что установлен клиент для отправки почты, например sendmail или postfix.

sudo apt install -y sendmail

Для автоматического удаления неиспользуемых зависимостей включите:

Unattended-Upgrade::Remove-Unused-Dependencies "true";

Для автоматической перезагрузки (если обновления требуют её) включите:

Unattended-Upgrade::Automatic-Reboot "true";

Можно задать точное время перезагрузки:

Unattended-Upgrade::Automatic-Reboot-Time "00:00";

Сохраните файл и закройте редактор.

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

Файл /etc/apt/apt.conf.d/20auto-upgrades контролирует периодические задачи apt. Откройте его для редактирования:

cd /etc/apt/apt.conf.d/  
vim 20auto-upgrades

Пример конфигурации:

APT::Periodic::Update-Package-Lists "1";  
 APT::Periodic::Download-Upgradeable-Packages "1";  
 APT::Periodic::AutocleanInterval "3";  
 APT::Periodic::Unattended-Upgrade "1";

Пояснения:

  • Update-Package-Lists: 1 — обновлять списки пакетов ежедневно.
  • Download-Upgradeable-Packages: 1 — скачивать обновления, когда они доступны.
  • AutocleanInterval: интервал в днях для очистки кэша.
  • Unattended-Upgrade: 1 — включить автоматическую установку.

После этого система будет автоматически скачивать и применять обновления безопасности.

Шаг 4 — Проверка обновлённых пакетов

Логи unattended-upgrades

Логи находятся в /var/log/unattended-upgrades. Чтобы посмотреть их:

cd /var/log/unattended-upgrades  
ls -lah

Просмотр логов unattended-upgrades

Файлы, которые вы увидите:

  1. unattended-upgrades-dpkg.log — действие dpkg при обновлении, установке и удалении пакетов.
  2. unattended-upgrades.log — общий лог работы unattended-upgrades, список пакетов и ошибки.
  3. unattended-upgrades-shutdown.log — сообщения, связанные с перезагрузкой при завершении.

Просмотр содержимого логов поможет понять, какие пакеты были обновлены и если возникли ошибки.

Уведомления при входе по SSH

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

Уведомление о доступных обновлениях

Уведомление о завершённых обновлениях

Email-уведомления

Если вы включили отправку писем, они будут приходить на локальный почтовый ящик пользователя root. Посмотреть можно так:

cd /var/mail/  
cat root

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

Проверка перезагрузки

Чтобы узнать последние перезагрузки системы, выполните:

last reboot

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

Результат перезагрузки после обновлений

Как это работает — краткая методология

unattended-upgrades использует Cron/APT Periodic для запуска заданий. Процесс:

  1. apt обновляет списки пакетов.
  2. Проверяются доступные обновления согласно Allowed-Origins.
  3. Пакеты скачиваются и устанавливаются автоматически.
  4. Если требуется — запускается перезагрузка в заданное время.
  5. Операции логируются и при необходимости отправляются на e-mail.

Альтернативные подходы

  • Landscape (Canonical) — централизованное управление пакетами и обновлениями для множества хостов. Подходит для больших парковых сред.
  • Apticron — уведомляет по e-mail о доступных обновлениях, но не устанавливает их автоматически.
  • Cron-сценарии с apt-get upgrade — простая кастомная автоматизация, но требует тщательной обработки ошибок и логирования.

Выбор зависит от масштаба инфраструктуры и требований к контролю обновлений.

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

  • Если у вас кастомные приложения, чувствительные к версии библиотек.
  • Для продакшн-кластеров без тестовой среды: автомат может привести к регрессиям.
  • Если требуется строгая сертификация ПО перед обновлением.

В таких случаях лучше применять staged-обновления: тестовая среда → стейдж → продакшн.

Чек-лист перед включением автоматических обновлений (SOP)

  • Создать резервную копию конфигураций и критичных данных.
  • Проверить, что у вас есть доступ к консолям удалённого управления (IPMI, iLO).
  • Убедиться, что почтовый агент установлен и почта доставляется корректно.
  • Настроить черный список для пакетов, которые нельзя обновлять автоматически.
  • Настроить мониторинг и алерты на сервисы после перезагрузки.

Роли и обязанности

  • Системный администратор: настраивает unattended-upgrades, тестирует обновления в тестовой среде.
  • Оператор: контролирует уведомления и реагирует на непредвиденные перезагрузки.
  • Разработчик: фиксирует несовместимости пакетов и просит внести пакеты в черный список при необходимости.

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

  • unattended-upgrades установлен и запущен.
  • В конфигурации оставлены только -security источники.
  • E-mail уведомления приходят на root.
  • Автоматическая перезагрузка выполняется в заданное время при необходимости.
  • Логи в /var/log/unattended-upgrades отражают выполненные операции.

Тесты и сценарии приёмки

  1. Смоделируйте обновление безопасности на тестовом хосте. Убедитесь, что пакет устанавливается и логируется.
  2. Заблокируйте конкретный пакет в черном списке и проверьте, что он не обновляется.
  3. Проверьте отправку e-mail уведомления после выполнения unattended-upgrades.
  4. Принудительно запустите unattended-upgrades вручную и просмотрите вывод:
sudo unattended-upgrade -d

Опция -d включает подробный режим отладки.

Отладка и распространённые проблемы

  • Нет писем: проверьте локальный почтовый агент и /var/log/mail.log.
  • Пакеты не обновляются: проверьте Allowed-Origins и выполните sudo apt update.
  • Скрипт падает с ошибкой: посмотреть подробный лог через /var/log/unattended-upgrades/unattended-upgrades.log.
  • После обновления сервисы не запускаются: настроить мониторинг и автоматический откат (см. раздел «План отката»).

План отката и восстановление после неудачного обновления

  1. Если обновление нарушило сервис, переключите трафик на резервный узел (если есть).
  2. Вручную удалите проблемный пакет через dpkg/apt и установите нужную версию: sudo apt install package=version.
  3. Восстановите конфигурации из резервной копии.
  4. Проанализируйте логи, добавьте пакет в черный список при необходимости.

Безопасность и конфиденциальность

  • unattended-upgrades устанавливает официальные пакеты из доверенных репозиториев.
  • Не блокируйте критичные пакеты без оценки рисков — это может оставить уязвимости без исправлений.
  • Настройте ограниченный доступ к логам и файлам конфигурации (root-only), чтобы избежать утечек информации.

Мини-глоссарий

  • unattended-upgrades — пакет для автоматической установки обновлений.
  • Allowed-Origins — список репозиториев, откуда разрешены обновления.
  • Package-Blacklist — список пакетов, которые нельзя обновлять автоматически.

Заключение

unattended-upgrades — простой и надёжный способ автоматически устанавливать обновления безопасности на Ubuntu 16.04. Он уменьшает окно уязвимости и позволяет получать уведомления и логи для аудита. Перед включением автоматизации оцените влияние обновлений на ваши сервисы и настройте черный список для критичных пакетов.

Важно: в продакшн-средах рекомендуется сначала тестировать обновления в контролируемой среде.

Ресурсы

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

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

Гостевая учётная запись на Mac — быстро и безопасно
macOS

Гостевая учётная запись на Mac — быстро и безопасно

Как скачать изображения из Google Docs
Руководство

Как скачать изображения из Google Docs

Google Chrome не запускается в Windows — как исправить
Браузеры

Google Chrome не запускается в Windows — как исправить

Вернуть значок «Параметры» в меню «Пуск» Windows
Windows

Вернуть значок «Параметры» в меню «Пуск» Windows

Настроить полосы прокрутки в Windows 10 и 11
Windows

Настроить полосы прокрутки в Windows 10 и 11

Автоматические обновления безопасности Ubuntu 16.04
DevOps

Автоматические обновления безопасности Ubuntu 16.04