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

Автоматические обновления безопасности на 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
Автор
Редакция

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

Синхронизировать Google Календарь с iPad
iPad

Синхронизировать Google Календарь с iPad

Emergency SOS на iPhone — настройка и использование
Инструкции

Emergency SOS на iPhone — настройка и использование

Как найти потерянный или украденный Samsung
Мобильные устройства

Как найти потерянный или украденный Samsung

Как отправлять SMS голосом через Google Assistant
Android.

Как отправлять SMS голосом через Google Assistant

Как оставаться на связи в дороге
Технологии

Как оставаться на связи в дороге

OKR: как ставить цели и измерять результаты
Управление целями

OKR: как ставить цели и измерять результаты