Поиск по сайту:

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


На этой странице

  1. Что такое оперативное исправление и как оно работает
  2. Настройте автоматическое обновление ядра без перезагрузки на сервере Linux.

Исправление ядра на сервере Linux кажется простым. Это можно сделать с помощью обычных инструментов, таких как dpkg, apt-get или kexec. Однако эти методы усложняются, если в организации работают сотни или тысячи серверов. Многие серверы требуют исправления нескольких дистрибутивов, каждый из которых требует личного внимания со стороны системного администратора или инженера.

Эти методы ручного исправления также рискованны, поскольку требуют перезагрузки. Перезагрузки связаны с простоем сервера, что всегда проблематично, поэтому они обычно выполняются циклами перезагрузки. Поскольку в течение этих циклов выполняется ручное исправление, у хакеров появляется «временное окно», в котором они могут атаковать серверную инфраструктуру.

Для организаций, в которых работает несколько серверов, лучшим вариантом является оперативное исправление. Это автоматический способ исправления ядра Linux во время работы сервера, что делает его более эффективным и безопасным, чем ручные методы. Давайте узнаем, как настроить четыре самые популярные системы оперативного исправления от Canonical, Oracle, Red Hat и CloudLinux.

Что такое живое исправление и как оно работает

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

Временный метод

Временный метод (или исправление «стека») выполняется с помощью программного обеспечения для управления пакетами (например, подключаемого модуля YUM). Исправления доставляются в репозитории и применяются в соответствии с рабочими процессами обновления, указанными пользователем.

«Стековое» исправление означает перезагрузку сервера и время простоя, даже если вам может не понадобиться перезагрузка сразу после установки исправления, но из-за архитектуры этого типа оперативных обновлений исправления безопасности со временем накапливаются друг над другом. , что потенциально снижает производительность и стабильность.Единственное решение этой проблемы — перезагрузить сервер, чтобы загрузить в память свежее ядро.

Поставщики, предоставляющие временные исправления:

  • Canonical Livepatch
  • kGraph
  • Обновление ядра Amazon Linux 2 в режиме реального времени

Постоянный метод

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

Постоянное исправление имеет и другие важные преимущества:

  • Серверы, использующие постоянный метод, остаются в рабочем состоянии даже при аппаратных уязвимостях, которые обычно требуют перезагрузки для исправления, таких как Spectre, Meltdown и Zombieload;
  • Сокращает время и усилия, необходимые для администрирования серверов, за счет полной автоматизации процесса установки исправлений;
  • Он позволяет серверам оставаться в рабочем состоянии, часто в течение многих лет.

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

  • Ksplice
  • Кпатч
  • KernelCare

Настройте автоматическое обновление ядра без перезагрузки на сервере Linux.

Ниже мы покажем вам, как настроить обновления ядра без перезагрузки на сервере Linux с помощью сервисов Livepatch, Kpatch, Ksplice и KernelCare.

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

1. Настройка Canonical Livepatch

Canonical Livepatch Service можно настроить во время или после установки. Он будет устанавливать исправления безопасности ядра только тогда, когда вы запускаете команду apt-get upgrade (следовательно, полуавтоматически).

Плюсы: простота. Полуавтоматический. Нет необходимости в перезагрузке.

Минусы: дорого для 4 или более хостов (но бесплатно до 3 хостов для всех и до 50 машин, если вы являетесь членом сообщества Ubuntu). Нет отката патча.

Плата за сервер: ежемесячно (недоступно), ежегодно (225 долларов США).

Чтобы установить Livepatch на сервер Ubuntu 20.04 LTS (также работает в версиях 16.04 LTS, 14.04 LTS и 18.04 LTS), откройте терминал и выполните следующие две команды:

sudo snap install canonical-livepatch
sudo canonical-livepatch enable <your key>

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

sudo canonical-livepatch disable <your key>

Чтобы проверить статус службы, используйте эту команду:

sudo canonical-livepatch status --verbose

2. Настройка Oracle Ksplice

Если вы не используете экземпляр Ksplice внутри Oracle Cloud, вам потребуется ключ доступа для его установки. Это можно получить, войдя в Unbreakable Linux Network и следуя инструкциям по регистрации вашей системы для Ksplice.

Чтобы установить Ksplice, ваша система должна иметь доступ к Интернету. Если вы используете прокси, установите прокси в вашей оболочке:

# export http_proxy=http://proxy.example.com:port
# export https_proxy=http://proxy.example.com:port

Прокси-сервер должен поддерживать соединения HTTPS, а строка прокси-сервера должна иметь следующий формат:

[protocol://][username:]<host>[:port]

  • протокол – это протокол для подключения к прокси-серверу (http или https).
  • имя пользователя и пароль — это аутентификационная информация, необходимая для использования вашего прокси-сервера (если он есть).
  • host и port — это имя хоста/IP-адрес и номер порта, используемые для подключения к прокси-серверу.

Выполните следующие инструкции от имени пользователя root, заменив YOUR_ACCESS_KEY ключом доступа, который вы получили на предыдущем шаге.

Внутри облака Oracle

Чтобы установить Ksplice внутри Oracle Cloud, чтобы обновления ядра устанавливались автоматически, выполните следующие команды:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc --autoinstall

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

# uptrack-upgrade -y

Если вы уже установили Uptrack, вы можете включить его, установив autoinstall=yes в /etc/uptrack/uptrack.conf после установки Ksplice.

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

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc

За пределами облака Oracle

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

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY --autoinstall

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

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY

Примечание. Если вы устанавливаете Ksplice на сервер Debian или Ubuntu, вам может сначала потребоваться установить пакет ca-certificates с помощью apt-get install ca-certificates. Без этого пакета вы увидите \ошибку проверки сертификата.

4. Настройка Red Hat Kpatch

Установка Kpatch проста и понятна:

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

sudo apt-get update -y

Запустите команду install с флагом -y, чтобы быстро установить пакеты и зависимости:

sudo apt-get install -y patch

5. Настройка CloudLinux KernelCare

Чтобы узнать, поддерживается ли работающее ядро KernelCare, выполните любую из этих команд:

curl -s -L https://kernelcare.com/checker | python

или

wget -qq -O – https://kernelcare.com/checker | python

Чтобы установить KernelCare, выполните любую из этих команд:

curl -s -L https://kernelcare.com/installer | bash

или:

wget -qq -O - https://kernelcare.com/installer | bash

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

$ /usr/bin/kcarectl --register KEY

KEY — это строка кода ключа регистрации, которую вы получили, когда купили KernelCare или подписались на бесплатную пробную версию. Здесь можно получить ключ.

Чтобы отменить регистрацию сервера, выполните:

sudo kcarectl --unregister

Чтобы проверить статус службы, запустите:

sudo kcarectl --info

KernelCare автоматически проверяет наличие новых исправлений каждые 4 часа. Чтобы выполнять обновления вручную, а не автоматически, запустите:

/usr/bin/kcarectl –update

Заключение

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