Подключение к VDS по SSH: PuTTY, терминал и SSH-ключи
Пошаговое руководство по SSH-подключению к Linux VDS: PuTTY, терминал, аутентификация по ключу, правило фильтрации Path Panel и советы по безопасности.
Установка и настройка unattended-upgrades, только обновления безопасности, уведомления по email, тестирование, риски и меры по их снижению.
Одно из фундаментальных требований безопасности сервера — своевременное применение патчей безопасности. Забывание о ручных обновлениях может оставить ваш сервер уязвимым к известным эксплойтам. Пакет unattended-upgrades автоматически применяет обновления безопасности на системах Ubuntu и Debian. В этом руководстве рассматриваются установка, настройка и лучшие практики.
unattended-upgrades — плагин APT, который автоматически загружает и устанавливает обновления безопасности без вмешательства человека. Идеально подходит для:
Автоматические обновления иногда могут вызывать перебои в работе служб. Обновления ядра в особенности требуют перезагрузки. Тщательно настраивайте в производственных средах.
# Установить пакет
sudo apt update
sudo apt install unattended-upgrades apt-listchanges -y
# Проверить установку
dpkg -l unattended-upgrades
# Проверить статус службы
systemctl status unattended-upgrades
# Автоматически настроить базовые параметры
sudo dpkg-reconfigure -plow unattended-upgrades
# Выберите "Yes"
Основной файл конфигурации: /etc/apt/apt.conf.d/50unattended-upgrades
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
// Обновления безопасности Ubuntu
"${distro_id}:${distro_codename}-security";
// Все обновления (не рекомендуется — предпочтительно только безопасность)
// "${distro_id}:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
};
// Исключить определённые пакеты из обновлений
Unattended-Upgrade::Package-Blacklist {
// "nginx";
// "mysql-server";
// "php*";
};
// Автоматическая перезагрузка после обновлений
Unattended-Upgrade::Automatic-Reboot "false";
// Время перезагрузки (только если Automatic-Reboot true)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// Удалять неиспользуемые зависимости
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// Удалять неиспользуемые пакеты ядра
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// Уведомление по email
Unattended-Upgrade::Mail "admin@rexe.tr";
// Отправлять email только при изменениях
Unattended-Upgrade::MailReport "on-change";
// Варианты: "always", "only-on-error", "on-change"
// Вести журнал обновлений
Unattended-Upgrade::SyslogEnable "true";
Частота обновлений настраивается в /etc/apt/apt.conf.d/20auto-upgrades:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
// Обновлять список пакетов ежедневно
APT::Periodic::Update-Package-Lists "1";
// Загружать обновляемые пакеты ежедневно
APT::Periodic::Download-Upgradeable-Packages "1";
// Запускать unattended-upgrades ежедневно
APT::Periodic::Unattended-Upgrade "1";
// Очищать старый кэш пакетов каждые 7 дней
APT::Periodic::AutocleanInterval "7";
Значения указываются в днях. "1" = ежедневно, "7" = еженедельно, "0" = отключено.
Автоматическое применение только обновлений безопасности — наиболее безопасный подход для производственных серверов:
Unattended-Upgrade::Allowed-Origins {
// ТОЛЬКО обновления безопасности
"${distro_id}:${distro_codename}-security";
};
// Закомментировать все остальные источники обновлений
// "${distro_id}:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
Для уведомлений об обновлениях требуется mailutils или postfix:
# Установить mailutils
sudo apt install mailutils -y
# Для простой настройки SMTP
sudo apt install ssmtp -y
sudo nano /etc/ssmtp/ssmtp.conf
root=admin@rexe.tr
mailhub=smtp.gmail.com:587
AuthUser=ваш-email@gmail.com
AuthPass=ваш-пароль-приложения
UseTLS=YES
UseSTARTTLS=YES
# Тест email
echo "Тестовое сообщение" | mail -s "Тест обновления сервера" admin@rexe.tr
# Симулировать без фактического обновления
sudo unattended-upgrade --dry-run --debug
# Более подробный вывод
sudo unattended-upgrade -d --dry-run
# Запустить unattended-upgrades немедленно
sudo unattended-upgrade -d
# Запустить в подробном режиме
sudo unattended-upgrade --verbose
# Основной файл журнала
cat /var/log/unattended-upgrades/unattended-upgrades.log
# Журналы ошибок
cat /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
# Мониторинг журнала в реальном времени
tail -f /var/log/unattended-upgrades/unattended-upgrades.log
Обновления ядра требуют особого внимания:
# Проверить, требуется ли перезагрузка
cat /var/run/reboot-required
# Какие пакеты требуют перезагрузки
cat /var/run/reboot-required.pkgs
# Проверка необходимости перезагрузки
if [ -f /var/run/reboot-required ]; then
echo "Требуется перезагрузка!"
fi
// Включить автоматическую перезагрузку
Unattended-Upgrade::Automatic-Reboot "true";
// Время перезагрузки (2:00 ночи)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// Не перезагружать при активных пользователях
Unattended-Upgrade::Automatic-Reboot-WithUsers "false";
Перед включением автоматических перезагрузок оцените, может ли ваше приложение переносить перезапуски. Для критических производственных систем предпочтительны ручные перезагрузки.
Unattended-Upgrade::Package-Blacklist {
// Критический сервер баз данных
"mysql-server";
"postgresql";
// Веб-сервер
"nginx";
"apache2";
// Ядро (для ручных обновлений)
"linux-image*";
"linux-headers*";
};
# Проверить статус служб после обновлений
systemctl --failed
# Регулярно проверять журналы
tail -100 /var/log/unattended-upgrades/unattended-upgrades.log
Системы на основе RPM используют dnf-automatic:
# Установить
sudo dnf install dnf-automatic -y
# Настроить
sudo nano /etc/dnf/automatic.conf
[commands]
# Только обновления безопасности
upgrade_type = security
# Автоматически применять обновления
apply_updates = yes
[emitters]
# Уведомление по email
emit_via = email
email_to = admin@rexe.tr
# Включить службу
sudo systemctl enable --now dnf-automatic.timer
# Проверить статус
sudo systemctl status dnf-automatic.timer
На системах Ubuntu и CentOS внимательно следите за файлами журналов в течение первой недели после включения автоматических обновлений. Это поможет вам обнаружить неожиданные проблемы на ранней стадии.
unattended-upgrades — мощный инструмент для обеспечения безопасности серверов REXE. Автоматически применяя только обновления безопасности, добавляя критические пакеты в чёрный список и включая уведомления по email, вы можете поддерживать как безопасную, так и стабильную серверную среду. Регулярные проверки журналов и валидация в тестовой среде делают процесс автоматического обновления более надёжным.
По умолчанию устанавливаются только обновления безопасности. Вы можете контролировать, какие источники обновлений используются, в разделе Allowed-Origins файла /etc/apt/apt.conf.d/50unattended-upgrades. Для производственных серверов рекомендуется оставить активным только источник '-security'.
По умолчанию один раз в день. Точное время зависит от APT-таймера системы (обычно ночью). Вы можете настроить частоту в /etc/apt/apt.conf.d/20auto-upgrades.
Добавьте имя пакета в раздел Package-Blacklist файла 50unattended-upgrades. Чтобы исключить nginx, добавьте '"nginx";'. Можно использовать wildcards: '"php*";' исключает все пакеты PHP.
Установите 'Unattended-Upgrade::Automatic-Reboot "false";' в файле 50unattended-upgrades. Это предотвращает автоматическую перезагрузку от любых обновлений, включая обновления ядра.
Несколько методов: проверить статус службы командой 'systemctl status unattended-upgrades', просмотреть файл журнала 'cat /var/log/unattended-upgrades/unattended-upgrades.log' или запустить симуляцию 'sudo unattended-upgrade --dry-run'.
Пошаговое руководство по SSH-подключению к Linux VDS: PuTTY, терминал, аутентификация по ключу, правило фильтрации Path Panel и советы по безопасности.
Пошаговое руководство по RDP-подключению к Windows Server VDS: настройка, безопасность NLA, правило фильтрации Path Panel и устранение неполадок.
Смена операционной системы VDS через панель REXE: советы по резервному копированию, поддерживаемые дистрибутивы Linux и версии Windows Server.