Обновления системы и автоматические обновления безопасности
Как обновить систему вручную, включить автоматические обновления и когда нужна перезагрузка.
На этой странице
Многие атаки на серверы используют уязвимости, исправления для которых производитель системы уже выпустил. В этом руководстве — как обновлять Ubuntu, Debian, AlmaLinux и CentOS Stream, как понять, нужна ли перезагрузка, и как включить автоматические обновления. Команды выполняются на сервере от имени root в SSH-сессии (Подключение к серверу по SSH (Windows, macOS, Linux)). Перезагрузить сервер можно и из панели app.blackbox.md: «Мои серверы» (app.blackbox.md/my-servers) → карточка сервера → «Перезагрузить».
Доступно: владельцу сервера с доступом root по SSH. BLACKBOX не устанавливает обновления на ваш сервер — это ваша задача. Если сервер отмечен «Обслуживается», любые изменения запрашивайте через поддержку.
Обновление вручную
Обновите систему сразу после получения сервера, а затем делайте это регулярно, например раз в неделю. Не закрывайте SSH-сессию, пока идёт обновление.
Обновлённые службы (например, веб-сервер или база данных) перезапускаются и могут ненадолго стать недоступными. Обновляются и пакеты из репозиториев, которые вы добавили сами, например Docker: при обновлении Docker служба docker перезапускается, и контейнеры ненадолго останавливаются. Выбирайте время, когда нагрузка невелика.
Ubuntu и Debian
apt update
apt upgrade -yПервая команда загружает список пакетов, вторая устанавливает новые версии. В Ubuntu может появиться окно программы needrestart с вопросом, какие службы перезапустить: оставьте предложенный выбор и нажмите Enter. Что установлено, видно в истории:
tail -n 30 /var/log/apt/history.logAlmaLinux и CentOS Stream
dnf upgrade -yЧто установлено, видно в истории:
dnf historyНужна ли перезагрузка
Большинство обновлённых программ перезапускаются сами. Новое ядро (kernel) и некоторые системные библиотеки начинают работать только после перезагрузки сервера.
Ubuntu и Debian
cat /var/run/reboot-required
cat /var/run/reboot-required.pkgsЕсли перезагрузка нужна, файл существует: в Ubuntu первая команда выведет *** System restart required *** (в Debian файл может быть пустым), а вторая — пакеты, которые её требуют. Сообщение «No such file or directory» после первой команды значит, что перезагрузка не нужна. В Ubuntu напоминание о перезагрузке показывается и при входе по SSH. В Debian без пакета unattended-upgrades (см. «Автоматические обновления в Ubuntu и Debian») файла может не быть, даже когда перезагрузка нужна: если apt установил пакет linux-image-…, перезагрузите сервер в любом случае.
AlmaLinux и CentOS Stream
Команда needs-restarting входит в пакет dnf-utils:
dnf install -y dnf-utils
needs-restarting -rОтвет «Reboot is required to fully utilize these updates.» значит, что сервер нужно перезагрузить; «Reboot should not be necessary.» — что не нужно.
Как перезагрузить
Перезагрузите сервер из SSH-сессии или нажмите в панели «Перезагрузить» на карточке сервера и подтвердите «Перезагрузить ИМЯ_СЕРВЕРА?».
rebootПодождите 30–60 секунд и подключитесь снова.
Проверьте версию работающего ядра:
uname -r
Подробнее о кнопках панели: Перезагрузка, остановка и запуск сервера.
Важно В панели нет веб-консоли или VNC. Если после обновления или перезагрузки сервер не отвечает по SSH, пройдите шаги из статьи Не удаётся подключиться по SSH; если не помогло, вмешаться может только команда BLACKBOX: Как связаться с поддержкой BLACKBOX.
Автоматические обновления в Ubuntu и Debian
Пакет unattended-upgrades ежедневно загружает и устанавливает обновления в фоне.
Установите пакет. Если он уже установлен, команда ничего не изменит.
apt update apt install -y unattended-upgradesВключите автоматические обновления. На вопрос «Automatically download and install stable updates?» выберите «Yes» и нажмите Enter.
dpkg-reconfigure -plow unattended-upgradesПроверьте созданный файл:
cat /etc/apt/apt.conf.d/20auto-upgradesВ обеих строках должно стоять значение «1»:
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";Запустите проверку — она ничего не устанавливает:
unattended-upgrade --dry-run --debug
Настройки находятся в /etc/apt/apt.conf.d/50unattended-upgrades. По умолчанию в Ubuntu устанавливаются только обновления безопасности, а в Debian — обновления безопасности и исправления из промежуточных выпусков дистрибутива (например, 12.7 → 12.8). Пакеты из репозиториев, добавленных вами (например, Docker), автоматически не обновляются: для них выполняйте apt upgrade вручную.
Автоматическая перезагрузка в заданное время
По умолчанию сервер автоматически не перезагружается. Чтобы он перезагружался ночью, когда этого требует обновление:
Откройте файл настроек:
nano /etc/apt/apt.conf.d/50unattended-upgradesНайдите строки ниже, удалите
//в их начале и задайте значения:Unattended-Upgrade::Automatic-Reboot "true"; Unattended-Upgrade::Automatic-Reboot-Time "03:00";Сохраните файл (Ctrl+O, затем Enter) и выйдите (Ctrl+X).
Сервер перезагрузится в указанное время, только если обновление потребовало перезагрузки. Время берётся по часам сервера; часовой пояс можно посмотреть так:
timedatectlЖурналы
Журналы лежат в /var/log/unattended-upgrades/: unattended-upgrades.log (что установлено) и unattended-upgrades-dpkg.log (подробности установки). Первая команда показывает последние записи, вторая — когда будет следующее автоматическое обновление:
tail -n 50 /var/log/unattended-upgrades/unattended-upgrades.log
systemctl list-timers 'apt-daily*'Автоматические обновления в AlmaLinux и CentOS Stream
Пакет dnf-automatic ежедневно проверяет обновления. По умолчанию он только загружает их, но не устанавливает.
Установите пакет:
dnf install -y dnf-automaticЗадайте
apply_updates = yesв/etc/dnf/automatic.conf, чтобы обновления не только загружались, но и устанавливались:sed -i 's/^apply_updates = .*/apply_updates = yes/' /etc/dnf/automatic.confНеобязательно, только для AlmaLinux: устанавливать автоматически лишь обновления безопасности.
sed -i 's/^upgrade_type = .*/upgrade_type = security/' /etc/dnf/automatic.confНеобязательно: автоматическая перезагрузка, когда её требует обновление.
sed -i 's/^reboot = .*/reboot = when-needed/' /etc/dnf/automatic.confСервер перезагрузится через несколько минут после установки обновлений, то есть во время ежедневного запуска (его время видно на шаге 6).
Проверьте настройки. Если строки
rebootнет, в вашей версии такой опции нет — перезагружайте вручную.grep -E '^(upgrade_type|apply_updates|reboot) ' /etc/dnf/automatic.confВключите ежедневный запуск и посмотрите, когда он сработает:
systemctl enable --now dnf-automatic.timer systemctl list-timers dnf-automatic.timer
Что происходило при последних запусках:
journalctl -u dnf-automatic.serviceСовет В CentOS Stream оставьте
upgrade_type = default: CentOS Stream не публикует пометки об обновлениях безопасности, поэтому с вариантомsecurityможет не установиться ничего. Сdefaultпрограммаdnf-automaticставит все обновления, в том числе из репозиториев, добавленных вами (например, Docker).
Переход на новую мажорную версию
Обычные обновления сохраняют версию системы: Ubuntu 22.04 остаётся 22.04. Переход на новую версию (например, Ubuntu 20.04 → 22.04) заменяет почти все пакеты.
Опасно Переход на новую мажорную версию может остановить сайты и приложения или оставить сервер без доступа по SSH, а BLACKBOX не делает автоматических резервных копий сервера. Заранее сделайте резервную копию в другом месте: Стратегия резервного копирования для вашего сервера. Для рабочего (production) сервера часто безопаснее взять новый сервер и перенести данные.
| Система | Как выполняется |
|---|---|
| Ubuntu | Командой do-release-upgrade, с одной LTS-версии на следующую, по очереди: 20.04 → 22.04 → 24.04. |
| Debian | Готового инструмента нет: в источниках APT меняют имя выпуска и выполняют apt full-upgrade по официальным примечаниям к выпуску (выпуски Debian). |
| AlmaLinux, CentOS Stream | Переход «на месте» требует отдельных инструментов и рискован. Рекомендуем новый сервер. |
Ubuntu: do-release-upgrade
Сделайте резервную копию.
Установите все обновления текущей версии:
apt update apt full-upgrade -yПерезагрузите сервер — из SSH или кнопкой «Перезагрузить» в панели — и подключитесь снова.
Запустите переход:
do-release-upgradeПрограмма предупредит, что работает через SSH, и сообщит, что запустит дополнительный SSH-сервер на порту 1022. Сетевой фильтр, которым управляет BLACKBOX, по умолчанию пропускает только SSH (22), HTTP (80), HTTPS (443) и ping (Файрвол: сетевая фильтрация и ufw/firewalld на сервере), поэтому на этот порт не рассчитывайте: держите открытой вторую SSH-сессию на порту 22. Чтобы продолжить, введите
y.На остальные вопросы тоже отвечайте
y. Если спросят про изменённые файлы конфигурации, оставляйте локальную версию (см. «Частые сообщения»). Репозитории, добавленные вами (например, Docker), при переходе отключаются — затем включите их снова по документации производителя.В конце согласитесь на перезагрузку, подключитесь снова и проверьте версию:
cat /etc/os-release
Сообщение «No new release found.» значит, что более новой LTS-версии для перехода пока нет.
Новый сервер вместо перехода
Закажите новый сервер с нужной версией (Доступные операционные системы), перенесите данные (Перенос сайта на сервер BLACKBOX), направьте домен на новый IP-адрес (Как направить домен на сервер) и только после этого удалите старый сервер (Безвозвратное удаление сервера). До удаления оплачиваются оба сервера.
Приложения и панели обновляются отдельно
apt и dnf обновляют только пакеты, установленные из репозиториев. Приложения, сайты и некоторые панели обновляются отдельно:
| Что у вас на сервере | Как обновлять |
|---|---|
| Контейнеры Docker | Образы при обновлении системы не меняются. В папке проекта загрузите новые образы и пересоздайте контейнеры (команды ниже). См. Установка Docker и Docker Compose. |
| Сайты на CMS (например, WordPress) | Из админки CMS: ядро, плагины и темы. См. WordPress на LEMP (nginx, MariaDB, PHP). |
| Панель управления (Hestia, ispmanager и т. п.) | По документации панели: одни панели обновляются вместе с системой, другие — из собственного меню. Если панель вы получили с тарифом «VPS hosting», напишите нам (Тарифы «VPS hosting» с панелью управления). |
Программы, установленные из архивов, через pip или npm либо собранные из исходников |
Их не обновляют ни apt, ни dnf: следуйте инструкциям производителя. |
docker compose pull
docker compose up -dПеред обновлением CMS или приложения тоже сделайте резервную копию.
Частые сообщения
| Сообщение | Что это значит | Что делать |
|---|---|---|
| «Could not get lock /var/lib/dpkg/lock-frontend» | Уже работает другой процесс apt, обычно автоматическое обновление. | Подождите несколько минут и повторите. Не удаляйте файлы блокировки. |
| «dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.» | Предыдущее обновление прервалось, например оборвалось соединение. | Выполните команды ниже. |
| «The following packages have been kept back:» или «The following upgrades have been deferred due to phasing:» | Обычно Ubuntu выпускает обновление поэтапно, не на все серверы сразу. | Это нормально: пакеты установятся при одном из следующих обновлений. |
Вопрос об изменённом файле конфигурации (например, sshd_config) |
Пакет содержит новую версию файла, который на сервере был изменён. | Выберите «keep the local version currently installed» или клавишу N. Так сохранятся настройки SSH на сервере. |
| «No space left on device» | Диск заполнен. | Диск сервера заполнен |
После прерванного обновления:
dpkg --configure -a
apt upgrade -yЧастые вопросы
Кнопка «Апгрейд» в панели обновляет систему? Нет. «Апгрейд» переводит сервер на больший тариф, а система остаётся прежней: Апгрейд сервера: переход на больший тариф.
У меня Ubuntu 20.04 или Debian 11. Есть ли смысл обновляться? Да, но стандартная поддержка этих версий у производителя закончилась. Запланируйте переход на новую версию (см. раздел выше). Сроки поддержки — на сайтах производителей: жизненный цикл выпусков Ubuntu и выпуски Debian.
Обновляется ли агент услуги «Мониторинг»?
Если агент alloy установлен из репозитория производителя, apt upgrade обновляет его, как любой другой пакет. Это нормально. Если появится вопрос о файле /etc/alloy/config.alloy, оставьте локальную версию (см. «Частые сообщения»). Не останавливайте и не удаляйте агент: Услуга «Мониторинг»: агент на сервере.
Может ли команда BLACKBOX сама заниматься обновлениями? Обслуживание сервера можно заказать как отдельную услугу: Профессиональные услуги по запросу: администрирование, DevOps, миграция.