67. Автоматическое обновление безопасности в Debian 12 (Bookworm) и исправление ошибок APT

Поддержание Linux-сервера в актуальном состоянии — базовая задача любого системного администратора. Но заходить на каждый VPS вручную ради apt update && apt upgrade быстро надоедает. Идеальный баланс между стабильностью и безопасностью в Debian 12 — это автоматическая установка только критических патчей безопасности.

В этой статье мы настроим утилиту unattended-upgrades, разберем нюансы работы на минимальных образах VPS и попутно решим частую проблему, когда обновление ломается из-за «мертвых» репозиториев.


Часть 1. Что делать, если apt update выдает ошибку 404?

Прежде чем включать автоматизацию, нужно убедиться, что менеджер пакетов APT работает как часы. Часто после тестов или миграции сервисов (например, VPN или сторонних панелей) в системе остаются старые репозитории, которые со временем удаляются авторами.

Если при проверке обновлений вы видите подобную ошибку:

Plaintext

Err:5 http://download.opensuse.org/repositories/home:/amnezia/Debian_12 Release
  404 Not Found [IP: 195.135.223.226 80]
E: The repository '...' does not have a Release file.
N: Updating from such a repository can't be done securely...

Это значит, что APT блокирует всю процедуру из-за одного нерабочего адреса. Лечится это за пару шагов.

1. Находим, где спрятан проблемный репозиторий

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

Bash

grep -rn "download.opensuse.org" /etc/apt/

(Замените download.opensuse.org на ту часть адреса из вашей ошибки, которая возвращает 404).

Команда выдаст точный путь к файлу и номер строки, например: /etc/apt/sources.list.d/amnezia.list:1:deb [http://download.opensuse.org/](http://download.opensuse.org/)...

2. Отключаем устаревший источник

Открываем найденный файл через текстовый редактор:

Bash

nano /etc/apt/sources.list.d/amnezia.list

Просто ставим знак решетки # в начале строки, комментируя её:

Plaintext

# deb http://download.opensuse.org/repositories/home:/amnezia/Debian_12 ./

Сохраняем файл (Ctrl+O, затем Enter) и выходим (Ctrl+X). Теперь apt update будет проходить без запинок.


Часть 2. Настройка автоматических обновлений безопасности

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

Шаг 1. Установка пакета

Обновляем индекс и устанавливаем утилиту:

Bash

apt update && apt install unattended-upgrades

Шаг 2. Включение службы на минимальных VPS

На многих хостингах образы Debian 12 поставляются в минимальной комплектации. Попытка вызвать стандартное конфигурационное меню командой dpkg-reconfigure -plow unattended-upgrades может выдать ошибку bash: dpkg-reconfigure: command not found.

Можно доустановить пакет debconf, но гораздо быстрее и надежнее проверить конфигурационный файл напрямую. При установке unattended-upgrades в Debian 12 автоматически создается нужный файл расписания. Проверим его:

Bash

cat /etc/apt/apt.conf.d/20auto-upgrades

Внутри должны быть следующие строки:

Plaintext

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
  • Update-Package-Lists "1" — раз в сутки обновлять списки пакетов.
  • Unattended-Upgrade "1" — раз в сутки запускать установку обновлений безопасности.

Обратите внимание: Если файла нет или он пуст, просто откройте его через nano /etc/apt/apt.conf.d/20auto-upgrades, вставьте эти две строки вручную и сохраните.

Шаг 3. Проверка работы

Система инициализирует таймеры systemd, которые будут запускать процесс в фоне. Проверить статус активности службы автоматического обновления можно командой:

Bash

systemctl status unattended-upgrades

Описанный метод с unattended-upgrades универсален для всего огромного семейства Debian (включая Ubuntu, Linux Mint, отечественную Astra Linux и др.). Если ваш сервер работает на CentOS/Rocky, там за это отвечает dnf-automatic. А вот на Rolling-дистрибутивах вроде Arch Linux автоматику лучше не включать из-за специфики обновления пакетов

Заключение

Теперь ваш VPS на Debian 12 защищен от свежих уязвимостей в режиме 24/7 без вашего прямого участия. Все логи успешных (или пропущенных) обновлений можно всегда изучить в файле /var/log/unattended-upgrades/unattended-upgrades.log.

Админу остается лишь изредка заходить на сервер для ручной проверки раз в месяц и плановой перезагрузки, если обновилось само ядро Linux.

Проверяем QR-коды

Оставьте комментарий