Автоматические обновления безопасности в Ubuntu
Пошаговая настройка автоматической установки обновлений безопасности в Ubuntu с помощью unattended-upgrades.
title: "Автоматические обновления безопасности в Ubuntu"
slug: "ubuntu-unattended-upgrades-setup"
excerpt: "Пошаговая настройка автоматической установки обновлений безопасности в Ubuntu с помощью unattended-upgrades."
tags:
- Linux
- Ubuntu
- Безопасность
- Обновления
status: draft
Автоматические обновления безопасности в Ubuntu
Пакет unattended-upgrades позволяет автоматически устанавливать обновления безопасности без ручного запуска apt upgrade.
В этой инструкции рассматривается только настройка автоматической установки обновлений безопасности в Ubuntu.
Проверено на: Ubuntu Server 24.04 LTS
Уровень сложности: начальный
Время выполнения: около 10 минут
Требуемый доступ: пользователь с правамиsudo
Что будет настроено
После выполнения инструкции:
- будет установлен пакет
unattended-upgrades; - будет включена автоматическая проверка обновлений;
- будут автоматически устанавливаться обновления безопасности;
- будет проверена конфигурация;
- будет выполнен тестовый запуск.
Проверка текущего состояния
Проверьте, установлен ли пакет:
dpkg -l unattended-upgrades
Проверьте состояние сервиса:
systemctl status unattended-upgrades --no-pager
Если пакет не установлен, выполните следующие шаги.
Установка unattended-upgrades
Обновите индекс пакетов:
sudo apt update
Установите необходимые компоненты:
sudo apt install -y unattended-upgrades apt-listchanges
Проверьте версию:
unattended-upgrade --version
Включение автоматических обновлений
Запустите интерактивную настройку:
sudo dpkg-reconfigure --priority=low unattended-upgrades
Подтвердите включение автоматической установки обновлений безопасности.
Проверка периодического запуска
Основной файл периодической настройки:
/etc/apt/apt.conf.d/20auto-upgrades
Проверьте его содержимое:
cat /etc/apt/apt.conf.d/20auto-upgrades
Пример минимальной конфигурации:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Значение 1 означает ежедневный запуск.
Создание конфигурации вручную
Если файл отсутствует или его нужно настроить вручную:
sudo tee /etc/apt/apt.conf.d/20auto-upgrades >/dev/null <<'EOF'
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
EOF
Проверка источников обновлений
Основной конфигурационный файл:
/etc/apt/apt.conf.d/50unattended-upgrades
Откройте его:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
В блоке Allowed-Origins или Origins-Pattern должны быть разрешены обновления безопасности Ubuntu.
Обычно используется строка, соответствующая security-репозиторию:
"${distro_id}:${distro_codename}-security";
Не включайте автоматическую установку всех обновлений без необходимости.
Проверка синтаксиса конфигурации
Проверьте конфигурацию:
sudo unattended-upgrade --dry-run --debug
Команда покажет:
- какие источники обновлений используются;
- какие пакеты доступны;
- какие пакеты были бы установлены;
- есть ли ошибки конфигурации.
Тестовый запуск ничего не устанавливает.
Ручной запуск
Для обычного ручного запуска:
sudo unattended-upgrade
Для подробного вывода:
sudo unattended-upgrade --debug
Проверка systemd-таймеров APT
Посмотрите таймеры:
systemctl list-timers --all | grep apt
Обычно используются:
apt-daily.timer
apt-daily-upgrade.timer
Проверьте их состояние:
systemctl status apt-daily.timer --no-pager
systemctl status apt-daily-upgrade.timer --no-pager
Просмотр журналов
Основной журнал:
sudo tail -100 /var/log/unattended-upgrades/unattended-upgrades.log
Журнал действий:
sudo tail -100 /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
Журнал загрузки:
sudo tail -100 /var/log/unattended-upgrades/unattended-upgrades-shutdown.log
Журнал systemd:
sudo journalctl -u unattended-upgrades -n 100 --no-pager
Проверка даты последнего запуска
Посмотрите время изменения журнала:
stat /var/log/unattended-upgrades/unattended-upgrades.log
Проверьте последние записи:
sudo grep -E 'Starting unattended upgrades|Packages that will be upgraded|All upgrades installed' /var/log/unattended-upgrades/unattended-upgrades.log |
tail -20
Настройка автоматической перезагрузки
По умолчанию автоматическая перезагрузка обычно отключена.
Чтобы включить её, найдите параметр:
Unattended-Upgrade::Automatic-Reboot
Пример:
Unattended-Upgrade::Automatic-Reboot "true";
Время перезагрузки:
Unattended-Upgrade::Automatic-Reboot-Time "03:30";
Важно: автоматическая перезагрузка подходит не для всех серверов. На production-системах её лучше включать только при наличии контроля доступности и заранее согласованного окна обслуживания.
Проверка необходимости перезагрузки
После установки обновлений проверьте:
test -f /var/run/reboot-required && cat /var/run/reboot-required || echo "Перезагрузка не требуется"
Список пакетов, вызвавших необходимость перезагрузки:
cat /var/run/reboot-required.pkgs 2>/dev/null
Исключение пакетов
Чтобы исключить пакет из автоматических обновлений, используйте блок:
Unattended-Upgrade::Package-Blacklist
Пример:
Unattended-Upgrade::Package-Blacklist {
"example-package";
};
После изменения выполните тест:
sudo unattended-upgrade --dry-run --debug
Предупреждение: исключение системных пакетов снижает уровень безопасности и должно иметь обоснованную причину.
Отключение автоматических обновлений
Откройте:
/etc/apt/apt.conf.d/20auto-upgrades
Установите:
APT::Periodic::Unattended-Upgrade "0";
Либо удалите файл:
sudo rm -f /etc/apt/apt.conf.d/20auto-upgrades
Пакет при этом останется установленным.
Удаление unattended-upgrades
Если автоматические обновления не нужны:
sudo apt remove -y unattended-upgrades
Проверьте состояние:
systemctl status unattended-upgrades --no-pager
Типичные проблемы
Обновления не запускаются
Проверьте таймеры:
systemctl list-timers --all | grep apt
Проверьте конфигурацию:
cat /etc/apt/apt.conf.d/20auto-upgrades
Проверьте тестовый запуск:
sudo unattended-upgrade --dry-run --debug
Пакеты не устанавливаются
Проверьте разрешённые источники:
grep -nE 'Allowed-Origins|Origins-Pattern|security' /etc/apt/apt.conf.d/50unattended-upgrades
Блокировка apt
Проверьте активные процессы:
ps aux | grep -E 'apt|dpkg|unattended'
Не запускайте несколько процессов управления пакетами одновременно.
Ошибка конфигурации
Запустите:
sudo unattended-upgrade --dry-run --debug
Исправьте указанный файл и повторите проверку.
Рекомендуемый порядок проверки
- Установить пакет.
- Включить автоматический запуск.
- Проверить
20auto-upgrades. - Проверить разрешённые источники.
- Выполнить
--dry-run --debug. - Проверить таймеры systemd.
- Проверить журналы.
- Определить политику перезагрузки.
Итог
После выполнения инструкции:
- включена автоматическая установка обновлений безопасности;
- настроен ежедневный запуск;
- проверены systemd-таймеры;
- выполнен тестовый запуск;
- рассмотрена автоматическая перезагрузка;
- показаны журналы и способы диагностики.
Автоматические обновления безопасности снижают риск эксплуатации известных уязвимостей, но не заменяют контроль состояния сервера и плановое обслуживание.