Автоматические обновления безопасности в Ubuntu
Запустить на сервере одной командой (сначала проверьте содержимое скрипта ниже):
curl -sSL https://cp.lv/scripts/avtomaticheskie-obnovleniya-ubuntu.sh | sudo bash…или через wget:
wget -qO- https://cp.lv/scripts/avtomaticheskie-obnovleniya-ubuntu.sh | sudo bashСодержимое скрипта avtomaticheskie-obnovleniya-ubuntu.sh:
#!/usr/bin/env bash
# Настройка unattended-upgrades: установка + включение + автоперезагрузка
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
# 1. Установка пакета
sudo apt-get update -y
sudo apt-get install -y unattended-upgrades
# 2. Включить ежедневную проверку и установку (файл 20auto-upgrades)
sudo tee /etc/apt/apt.conf.d/20auto-upgrades > /dev/null << 'EOF'
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
EOF
# 3. Ставить только патчи безопасности + автоперезагрузка в 04:00
sudo tee /etc/apt/apt.conf.d/51custom-unattended > /dev/null << 'EOF'
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
EOF
# 4. Проверить конфигурацию пробным прогоном
sudo systemctl enable --now unattended-upgrades
sudo unattended-upgrades --dry-run --debug || true
echo "Готово: автоматические обновления безопасности включены."
Автоматические обновления безопасности в Ubuntu настраиваются пакетом unattended-upgrades: он ежедневно проверяет и устанавливает патчи безопасности без вашего участия. Это закрывает уязвимости раньше, чем ими успеют воспользоваться. Разберём настройку по шагам.
Шаг 1. Установите пакет
В большинстве образов Ubuntu он уже есть, но установить не помешает:
sudo apt update
sudo apt install unattended-upgrades -y
Шаг 2. Включите автоматические обновления
Запустите интерактивную настройку:
sudo dpkg-reconfigure --priority=low unattended-upgrades
В появившемся окне выберите Yes. Это создаст файл /etc/apt/apt.conf.d/20auto-upgrades со следующим содержимым:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Единицы означают «выполнять ежедневно».
Тот же файл можно создать сразу одной командой, без интерактивного диалога — скопируйте и вставьте в консоль (heredoc запишет весь файл):
sudo tee /etc/apt/apt.conf.d/20auto-upgrades > /dev/null << 'EOF'
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
EOF
Шаг 3. Настройте, что обновлять
Откройте основной конфиг:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
По умолчанию включены только обновления безопасности — это оптимально для сервера. Убедитесь, что в блоке Allowed-Origins активна строка с -security:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Шаг 4. Настройте автоперезагрузку
Некоторые обновления (например, ядра) применяются только после перезагрузки. Чтобы сервер перезагружался автоматически в удобное время, раскомментируйте и задайте параметры в том же файле:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Перезагрузка будет происходить в 4 утра только если она действительно требуется. Если сервер нельзя перезагружать автоматически — оставьте false и перезагружайте вручную.
Шаг 5. Настройте уведомления на почту (опционально)
Чтобы получать письма о применённых обновлениях, задайте адрес:
Unattended-Upgrade::Mail "[email protected]";
Unattended-Upgrade::MailReport "on-change";
Для отправки почты потребуется настроенный MTA (например, postfix или ssmtp).
Шаг 6. Проверьте работу
Запустите пробный прогон без реальной установки:
sudo unattended-upgrades --dry-run --debug
Посмотреть журнал уже применённых обновлений:
cat /var/log/unattended-upgrades/unattended-upgrades.log
Проверить, требуется ли перезагрузка:
ls /var/run/reboot-required
Если файл существует — ядро или библиотеки обновлены, нужна перезагрузка.
Что стоит и не стоит автообновлять
| Тип обновлений | Автоматически | Комментарий |
|---|---|---|
| Безопасность | Да | Рекомендуется всегда |
| Обычные пакеты | Осторожно | Возможны изменения поведения |
| Смена версии ОС | Нет | Только вручную с проверкой |
Частые вопросы
Не сломают ли автообновления сервер? Обновления безопасности бэкпортируют только исправления, не меняя основной функционал, поэтому риск минимален. Полные обновления версий (release upgrade) автоматически не ставятся.
Стоит ли включать автоперезагрузку?
Если краткий простой ночью допустим — да, иначе ядро останется необновлённым. Если перезагрузка нежелательна, оставьте false и планируйте её вручную по флагу reboot-required.
Как временно отключить автообновления?
Установите APT::Periodic::Unattended-Upgrade "0"; в файле 20auto-upgrades или удалите пакет unattended-upgrades.
Заменяют ли автообновления ручной контроль? Они закрывают патчи безопасности, но следить за состоянием сервера всё равно нужно: проверять логи, свободное место и необходимость перезагрузки.
Итог
unattended-upgrades — простой способ держать сервер защищённым без ежедневного ручного apt upgrade. Включите обновления безопасности, при возможности настройте автоперезагрузку и периодически проверяйте логи.
Хотите сервер под свой проект? Возьмите VPS на Linux, оформите аренду VPS или закажите Администрирование серверов, если поддержку удобнее доверить специалистам.
