07. Исправление и обновление Ubuntu Server: подробное руководство

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


Предыдущая статья:

01. Введение в Ubuntu Server – SysOSX: AI & Cloud

02. Как настроить первый сервер Ubuntu: руководство для начинающих – SysOSX: AI & Cloud

03. Освоение командной строки Linux для Ubuntu Server – SysOSX: AI & Cloud

04. Управление пользователями и правами в Ubuntu Server: подробное руководство – SysOSX: AI & Cloud

05. Основы сетей для Ubuntu Server: подробное руководство – SysOSX: AI & Cloud

06. Установка и управление ПО в Ubuntu Server: полное руководство – SysOSX: AI & Cloud



Почему регулярные обновления Ubuntu Server крайне важны

1. Защита безопасности

Неисправленные уязвимости представляют серьёзный риск для безопасности. По данным CISA, 87% взломов нацелены на системы с неисправленным программным обеспечением. Регулярные обновления снижают эти риски за счёт устранения известных уязвимостей.

Реальный пример:

Уязвимость OpenSSL 2023 года (CVE-2023-0286) позволяла злоумышленникам красть конфиденциальные данные. Серверы, своевременно установившие исправление, избежали эксплуатации.


2. Стабильность системы

Обновления часто включают исправления ошибок и проблем с производительностью, обеспечивая стабильную работу. Они также улучшают совместимость оборудования, особенно для серверов, работающих на облачных платформах, таких как AWS и Azure.

Реальный пример:

Проблема «Dirty Pipe» в ядре Linux 5.15 2022 года вызывала утечки памяти и нестабильность системы. Исправление ядра решило проблему и восстановило надёжность системы.


3. Требования соответствия

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

Примеры стандартов:

  • PCI-DSS: Обязателен для платёжных систем.
  • HIPAA: Защищает медицинские данные.
  • GDPR: Обеспечивает конфиденциальность граждан ЕС.

Шпаргалка по командам обновления Ubuntu

Вот краткое справочное руководство по командам обновления Ubuntu:

КомандаНазначениеКогда использовать
sudo apt updateОбновление списков пакетовПеред любой установкой
sudo apt upgradeУстановка обновлений безопасностиЕженедельное обслуживание
sudo apt full-upgradeКрупные обновления версийОбновления версий Ubuntu
sudo apt autoremoveОчистка старых пакетовПосле обновлений

Настройка автоматического исправления (руководство на 5 минут)

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

Шаг 1: установка unattended-upgrades

sudo apt install unattended-upgrades


Шаг 2: настройка обновлений безопасности

Отредактируйте файл конфигурации:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Раскомментируйте следующие строки:

"Ubuntu:${distro_codename}-security";
"Ubuntu:${distro_codename}-updates";

Шаг 3: включение автоматических перезагрузок

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

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";


Когда использовать автоматическое исправление

Автоматическое исправление идеально подходит для сред, где простой допустим или ручное вмешательство непрактично. Примеры включают:

  • Некритичные системы: Среды разработки или тестирования, где время безотказной работы не критично.
  • Малый бизнес или личное использование: Обеспечивает безопасность пользователей без выделенного ИТ-персонала.
  • Периферийные устройства или системы IoT: Удалённые устройства, которые нельзя обновить вручную.

Однако автоматическое исправление подходит не для всех сред. Избегайте его в следующих сценариях:

  • Критически важные системы: Обновления следует тестировать в промежуточных средах, чтобы избежать ошибок или простоев.
  • Среды высокой доступности (HA): Автоматическое исправление может нарушить работу кластерных систем или механизмов отработки отказа.
  • Регулируемые отрасли: Стандарты соответствия часто требуют, чтобы обновления проходили процессы утверждения и тестирования.
  • Пользовательские конфигурации: Серверы с уникальными настройками могут столкнуться с проблемами совместимости при автоматических обновлениях.

В таких случаях рассмотрите ручное исправление или использование таких инструментов, как Ansible, чтобы сохранить контроль над процессом обновления.


Управление обновлениями ядра

Обновления ядра жизненно важны для исправления уязвимостей и повышения производительности системы. Вот как эффективно управлять обновлениями ядра:

1. Проверка ожидающих обновлений ядра

Используйте следующую команду, чтобы проверить доступные обновления ядра:

apt list --upgradable | grep linux-image


2. Применение обновлений без перезагрузки (Livepatch)

Ubuntu Livepatch доступен только по подписке Ubuntu Pro и позволяет применять обновления ядра без перезагрузки, сводя к минимуму время простоя.

Шаги по включению Livepatch:

  • Установка Livepatch:
sudo snap install canonical-livepatch
  • Включение Livepatch с помощью вашего токена:
sudo canonical-livepatch enable YOUR_TOKEN

    3. Процедура безопасной перезагрузки

    Если требуется перезагрузка, выполните следующие шаги для корректной перезагрузки:

    Проверка необходимости перезагрузки:

    Ubuntu создаёт файл /var/run/reboot-required, когда после обновлений требуется перезагрузка. Если этот файл не существует, это означает, что перезагрузка не требуется. Однако можно вручную проверить следующее:

    • Проверка версии ядра:
      Сравните версию работающего ядра с последним установленным ядром:
    uname -r apt list --installed | grep linux-image
    
    • Проверка запущенных процессов, использующих удалённые файлы:
      Определение процессов, использующих устаревшие файлы:
    sudo lsof | grep deleted
    

      Предупреждение пользователей о простое:

      wall "Maintenance reboot in 10 minutes"
      
      

      Планирование перезагрузки:

      sudo shutdown -r +10
      
      

      Шаблоны корпоративной автоматизации

      Плейбук Ansible для обновлений на нескольких серверах

      Для управления обновлениями на нескольких серверах используйте Ansible, чтобы автоматизировать процесс.

      Пример плейбука:

      - name: Apply security patches
        hosts: all
        become: yes
        tasks:
          - name: Update apt cache
            ansible.builtin.apt:
              update_cache: yes
      
          - name: Apply security updates
            ansible.builtin.apt:
              upgrade: yes
              cache_valid_time: 3600
      

      Запустите плейбук:

      ansible-playbook update.yml
      

      Задание cron для обновлений в непиковые часы

      Планируйте обновления в непиковые часы с помощью заданий cron.

      Пример задания cron:

      Отредактируйте crontab:

      sudo crontab -e
      

      Добавьте следующую строку, чтобы запланировать обновления каждое воскресенье в 3 часа ночи:

      0 3 * * 7 apt update && apt upgrade -y
      

      Распространённые проблемы и решения

      1. Нехватка места на диске во время обновлений

      Если на сервере заканчивается место на диске во время обновлений, удалите ненужные файлы:

      Команды:

      sudo apt clean
      sudo apt autoremove --purge
      

      Проверка использования диска:

      df -h
      
      

      2. Восстановление после неудачного обновления

      Если обновления завершаются неудачей, используйте следующие команды для восстановления:

      Исправление нарушенных зависимостей:

      sudo apt --fix-broken install
      

      Сброс состояний пакетов:

      sudo dpkg --configure -a
      

      3. Обновления автономных серверов

      Для серверов без доступа к интернету используйте apt-offline, чтобы загрузить обновления на подключённой машине и применить их автономно.

      На подключённой машине:

      apt-offline set update.sig
      

      Передача файлов и их применение:

      apt-offline install update.sig
      

      Контрольный список обслуживания

      Следуйте этому контрольному списку, чтобы Ubuntu Server оставался безопасным и стабильным:

      • Еженедельно: Выполнение обновлений безопасности вручную.
      • Ежемесячно: Тестирование полных обновлений в промежуточной среде.
      • Ежеквартально: Очистка хранилища и удаление неиспользуемых пакетов.
      • Ежегодно: Проведение аудита соответствия для выполнения отраслевых стандартов.

      Официальный документ: Установка пакетов и управление ими – документация Ubuntu Server


      Заключение

      Регулярное исправление и обновление Ubuntu Server необходимо для поддержания безопасности, стабильности и соответствия требованиям. Понимая важность обновлений, овладевая командами apt, автоматизируя обновления с помощью unattended-upgrades и эффективно управляя исправлениями ядра, администраторы могут обеспечить надёжность и стабильность своих серверов. Для корпоративных сред такие инструменты, как Ansible и Livepatch, ещё больше упрощают процесс, сокращая время простоя и повышая эффективность.

      Взгляд вперёд: защита вашего Ubuntu Server

      Теперь, когда вы понимаете, как поддерживать Ubuntu Server в актуальном и исправленном состоянии, следующий шаг — обеспечить его защиту от внешних угроз. В нашей следующей статье, Защита вашего Ubuntu Server, мы рассмотрим практические шаги по защите сервера, включая:

      • Настройка брандмауэров с помощью ufw.
      • Безопасная настройка SSH для предотвращения несанкционированного доступа.
      • Использование таких инструментов, как fail2ban для защиты от атак полным перебором.

      Следите за практическими рекомендациями по защите сервера и инфраструктуры от потенциальных угроз!

      3 thoughts on “07. Patching and Updating Ubuntu Server: A Comprehensive Guide”

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