К основному содержимому

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

Безопасность · 31.10.2026 · 5 мин чтения
Иллюстрация к статье «Автоматические обновления безопасности Linux»

Новые уязвимости в системных пакетах публикуются постоянно, а владелец сервера не всегда заходит на него каждую неделю. Автоматическая установка обновлений безопасности закрывает этот разрыв: система сама ставит исправления, которые выпускает дистрибутив. Ниже — как это включить в Debian и Ubuntu (unattended-upgrades) и в RHEL-семействе (dnf-automatic), что делать со службами после обновления и почему ручной контроль всё равно нужен.

Debian и Ubuntu: unattended-upgrades

Пакет unattended-upgrades входит в официальные репозитории. Часто он уже стоит в образе, но проверить стоит. Установка и включение выполняются тремя командами:

sudo apt update
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Мастер создаёт файл /etc/apt/apt.conf.d/20auto-upgrades. Его две строки включают ежедневное обновление списков пакетов и запуск unattended-upgrade:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Запуск идёт по таймерам systemd, а не через cron: посмотреть их можно командой systemctl list-timers. Единица «1» означает «раз в день».

Какие репозитории берутся и как настроить перезагрузку

Что именно ставить, решает файл /etc/apt/apt.conf.d/50unattended-upgrades. Параметр Allowed-Origins перечисляет источники, из которых разрешено брать пакеты. Как правило, в нём активна строка с суффиксом -security, а остальные источники закомментированы. Так и стоит оставить: обычные обновления версий могут менять поведение программ, а исправления безопасности — это точечные правки.

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Автоматическая перезагрузка нужна после обновления ядра и некоторых библиотек. Её чаще отключают на серверах с сайтами и базами: перезагрузка в произвольный момент рвёт соединения, а если после неё не поднимется какая-то служба, вы узнаете об этом от посетителей. Если включаете, задайте Automatic-Reboot-Time на малозагруженный час и проверьте, что все нужные службы стартуют сами. Подробнее про ядро — в статье обновление ядра Linux.

Журнал и проверка работы

Пробный запуск без установки покажет, что система собирается обновить. Результаты настоящих запусков лежат в каталоге /var/log/unattended-upgrades/:

sudo unattended-upgrade --dry-run --debug
systemctl list-timers 'apt-daily*'
sudo tail -n 50 /var/log/unattended-upgrades/unattended-upgrades.log

Если в журнале повторяются ошибки блокировки dpkg, значит, параллельно идёт ручное обновление или зависший процесс apt. Ручное обновление системы и переход на новый выпуск разобраны в статье обновление Ubuntu.

RHEL, AlmaLinux, Rocky: dnf-automatic

В RHEL-семействе та же задача решается пакетом dnf-automatic. Он работает через таймеры systemd, и режим определяется тем, какой таймер вы включили:

ТаймерЧто делает
dnf-automatic-notifyonly.timerТолько сообщает о доступных обновлениях
dnf-automatic-download.timerСкачивает пакеты, но не устанавливает
dnf-automatic-install.timerСкачивает и устанавливает
sudo dnf install dnf-automatic
sudo nano /etc/dnf/automatic.conf
sudo systemctl enable --now dnf-automatic-install.timer

В файле /etc/dnf/automatic.conf в разделе [commands] ограничьте тип обновлений безопасностью и разрешите установку:

[commands]
upgrade_type = security
download_updates = yes
apply_updates = yes

Службы после обновления: needrestart

Установка нового пакета не означает, что запущенная программа его использует. Пока служба не перезапущена, в памяти остаётся старая версия библиотеки с уязвимостью. В Debian и Ubuntu это ловит утилита needrestart: она показывает, какие процессы работают на устаревших библиотеках. После обновления ядра система также создаёт файл /var/run/reboot-required.

sudo apt install needrestart
sudo needrestart -r l
cat /var/run/reboot-required
sudo needs-restarting -r
sudo needs-restarting -s

Первые две команды — для Debian и Ubuntu, последние две (из пакета dnf-utils) — для RHEL-семейства: они сообщают, нужна ли перезагрузка и какие службы стоит перезапустить. Перезапуск служб лучше делать осознанно, в удобное окно, а не автоматически на рабочем сайте.

Почему ручной контроль остаётся

  • Автообновления закрывают только пакеты дистрибутива. Сайт на WordPress, панель управления или Docker-образ они не обновят.
  • Обновление может изменить конфигурацию или сломать зависимость. Перед важными изменениями делайте резервную копию или снимок диска.
  • Журнал нужно читать. Тихий сбой автообновления означает, что сервер месяцами остаётся без исправлений.

Автообновления — один пункт общего плана защиты, а не весь план. Остальные меры собраны в чек-листе безопасности сервера.

Частые вопросы

Нужно ли включать автообновления безопасности на VPS?

Да, в большинстве случаев нужно. Исправления безопасности — это небольшие точечные правки, и риск от них ниже, чем риск месяцами оставлять известную уязвимость. Включайте только источник security, ведите журнал и периодически проверяйте, что обновления действительно устанавливаются, а службы перезапускаются.

Почему автоматическую перезагрузку обычно отключают?

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

Как понять, что автообновления реально работают?

Посмотрите журнал: на Debian и Ubuntu это каталог /var/log/unattended-upgrades/, на RHEL-семействе — журнал systemd для таймера dnf-automatic. Пробный запуск с флагом --dry-run покажет, что система обновила бы сейчас. Если записей давно нет или в них одни ошибки, автообновление не работает.

Обновит ли это мой сайт или панель управления?

Нет. Автообновления работают с пакетами дистрибутива: ядром, библиотеками, веб-сервером и системными службами из репозиториев. CMS, плагины, панели управления и контейнеры Docker обновляются отдельно. Для них нужны свои механизмы обновления или регулярная ручная проверка версий.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке