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

Это пошаговое руководство показывает, как настроить автоматические обновления безопасности на Ubuntu 16.04 с помощью пакета unattended-upgrades. Вы узнаете, как установить пакет, настроить только обновления безопасности, задать черный список пакетов, включить уведомления по e-mail и автоматическую перезагрузку, а также как проверять логи и отлаживать процесс.
Что мы сделаем
- Установим unattended-upgrades на Ubuntu 16.04
- Настроим unattended-upgrades
- Включим автоматические обновления
- Проверим, какие пакеты обновлялись
Требования
- Сервер с 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-dpkg.log — действие dpkg при обновлении, установке и удалении пакетов.
- unattended-upgrades.log — общий лог работы unattended-upgrades, список пакетов и ошибки.
- unattended-upgrades-shutdown.log — сообщения, связанные с перезагрузкой при завершении.
Просмотр содержимого логов поможет понять, какие пакеты были обновлены и если возникли ошибки.
Уведомления при входе по SSH
Система может показывать уведомления о доступных обновлениях при логине по SSH. Пример уведомления до установки обновлений и после их применения показаны на скриншотах.
Email-уведомления
Если вы включили отправку писем, они будут приходить на локальный почтовый ящик пользователя root. Посмотреть можно так:
cd /var/mail/
cat root
Письмо содержит информацию о заблокированных пакетах, установленных обновлениях и удалённых пакетах.
Проверка перезагрузки
Чтобы узнать последние перезагрузки системы, выполните:
last reboot
Это позволит сравнить время перезагрузок до и после применения обновлений.
Как это работает — краткая методология
unattended-upgrades использует Cron/APT Periodic для запуска заданий. Процесс:
- apt обновляет списки пакетов.
- Проверяются доступные обновления согласно Allowed-Origins.
- Пакеты скачиваются и устанавливаются автоматически.
- Если требуется — запускается перезагрузка в заданное время.
- Операции логируются и при необходимости отправляются на 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 отражают выполненные операции.
Тесты и сценарии приёмки
- Смоделируйте обновление безопасности на тестовом хосте. Убедитесь, что пакет устанавливается и логируется.
- Заблокируйте конкретный пакет в черном списке и проверьте, что он не обновляется.
- Проверьте отправку e-mail уведомления после выполнения unattended-upgrades.
- Принудительно запустите unattended-upgrades вручную и просмотрите вывод:
sudo unattended-upgrade -d
Опция -d включает подробный режим отладки.
Отладка и распространённые проблемы
- Нет писем: проверьте локальный почтовый агент и /var/log/mail.log.
- Пакеты не обновляются: проверьте Allowed-Origins и выполните sudo apt update.
- Скрипт падает с ошибкой: посмотреть подробный лог через /var/log/unattended-upgrades/unattended-upgrades.log.
- После обновления сервисы не запускаются: настроить мониторинг и автоматический откат (см. раздел «План отката»).
План отката и восстановление после неудачного обновления
- Если обновление нарушило сервис, переключите трафик на резервный узел (если есть).
- Вручную удалите проблемный пакет через dpkg/apt и установите нужную версию: sudo apt install package=version.
- Восстановите конфигурации из резервной копии.
- Проанализируйте логи, добавьте пакет в черный список при необходимости.
Безопасность и конфиденциальность
- unattended-upgrades устанавливает официальные пакеты из доверенных репозиториев.
- Не блокируйте критичные пакеты без оценки рисков — это может оставить уязвимости без исправлений.
- Настройте ограниченный доступ к логам и файлам конфигурации (root-only), чтобы избежать утечек информации.
Мини-глоссарий
- unattended-upgrades — пакет для автоматической установки обновлений.
- Allowed-Origins — список репозиториев, откуда разрешены обновления.
- Package-Blacklist — список пакетов, которые нельзя обновлять автоматически.
Заключение
unattended-upgrades — простой и надёжный способ автоматически устанавливать обновления безопасности на Ubuntu 16.04. Он уменьшает окно уязвимости и позволяет получать уведомления и логи для аудита. Перед включением автоматизации оцените влияние обновлений на ваши сервисы и настройте черный список для критичных пакетов.
Важно: в продакшн-средах рекомендуется сначала тестировать обновления в контролируемой среде.
Ресурсы
Похожие материалы

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

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

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

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

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