Если вы администрируете собственный сервер(ы), рано или поздно вы столкнетесь с этой проблемой: вам придется перезагружать операционную систему, но машина предоставляет важную службу, которую вы не можете прервать.
Но зачем вообще перезагружаться? Кажется, после команды apt-get upgrade
все работает нормально. Однако не всегда все так, как кажется. Несмотря на то, что система успешно продолжает работать после каждого обновления, не требуя принудительной перезагрузки, как это делает Windows, она все равно может потребоваться.
Например, при обнаружении уязвимости в ядре системы (ядре) она исправляется и отправляется на ваш сервер в виде нового пакета. После установки пропатченного ядра некоторые файлы записываются на диск, но все равно рулит старое ядро, поскольку именно оно загружается в память (ОЗУ).
Это означает, что ваш сервер все еще уязвим для обнаруженных ранее дыр в безопасности. Другие процессы, демоны и службы можно перезагрузить без перезапуска операционной системы. Однако ядро находится в центре системы и может быть перезагружено только при следующей загрузке.
Читайте также: Как добавить пользователей на сервере Ubuntu
Ubuntu Livepatch решает эту проблему, позволяя закрывать дыры в безопасности ядра без перезапуска. Таким образом, вы можете избежать или отложить перезагрузку на несколько недель или месяцев без ущерба для безопасности.
Основная идея оперативного исправления проста: когда функция уязвима, перепишите ее, устраните ошибку и загрузите новую функцию куда-нибудь в память. При вызове функции вместо запуска кода в ядре перенаправьте вызов на использование переписанного кода.
![Текст кода Ubuntu Livepatch](https://saintist.ru/wp-content/uploads/2024/05/ubuntu-livepatch-code-text.jpg)
Но, как и большинство вещей, которые кажутся простыми, реализация и технические подробности не так уж и просты.
Как настроить Livepatch в Ubuntu
Перейдите на эту страницу и создайте свою учетную запись Ubuntu One . (Или просто войдите в систему, если она у вас уже есть.) Проверьте свою электронную почту и затем нажмите ссылку подтверждения учетной записи. Затем посетите Страница службы Canonical Livepatch . Выберите, что вы являетесь «пользователем Ubuntu», и нажмите кнопку, чтобы сгенерировать свой токен. На следующей странице будут показаны точные команды, которые вы должны ввести на своем сервере. После первой команды введите
sudo snap install canonical-livepatch
Подождите несколько секунд, пока пакет моментальных снимков не будет полностью установлен. Когда это будет сделано, вы получите результат, аналогичный тому, что вы можете видеть на следующем рисунке.
![Установка Ubuntu Livepatch Snap](https://saintist.ru/wp-content/uploads/2024/05/ubuntu-livepatch-install-snap.png)
Наконец, последняя команда со страницы Canonical:
sudo canonical-livepatch enable #PASTE_YOUR_TOKEN_HERE
Служба становится активной и автоматически применяет исправлен
Contents
Как настроить Livepatch в Ubuntu
необходимо, без каких-либо действий с вашей стороны.При необходимости установите Snap Daemon
В некоторых редких случаях первая команда из предыдущего раздела может завершиться неудачей со следующим сообщением об ошибке: -bash: /usr/bin/snap: No such file or directory
. В данном случае это означает, что у вашего провайдера сервера есть образ операционной системы Ubuntu, который по умолчанию не включает службу демона Snap. Установите его с помощью:
sudo apt update && sudo apt install snapd
Теперь снова выполните две команды из предыдущего раздела.
Читайте также: 5 полезных патчей для улучшения работы с dwm
Обновление вашего сервера
Livepatch установит все необходимые обновления безопасности для вашего ядра. Тем не менее, вам все равно следует регулярно обновлять остальную часть вашей системы с помощью такой команды:
sudo apt update && sudo apt upgrade
Вы должны делать это еженедельно или даже чаще, если можете. Важные системные пакеты могут предложить вам перезапустить их для применения последних исправлений безопасности.
![Перезапуск службы Ubuntu Livepatch](https://saintist.ru/wp-content/uploads/2024/05/ubuntu-livepatch-service-restart.png)
Обычно это плавные перезапуски, то есть они не нарушают работу каких-либо служб в процессе. Например, в этом случае демон SSH был перезапущен без прерывания активного сеанса SSH.
В других ситуациях вы можете перезапустить службы самостоятельно, чтобы убедиться, что новый исправленный код перезагружен и исправления безопасности применены. Например, если вы заметили, что пакет nginx был обновлен, вы можете запустить
systemctl restart nginx.service
чтобы перезагрузить демон nginx в память. В противном случае, даже если пакет будет обновлен, он все равно может работать со старым уязвимым кодом, подвергая ваш сервер риску известных атак. Некоторые обновления пакета делают это за вас, а други
При необходимости установите Snap Daemon
ращать внимание на то, что делает «apt update», и при необходимости перезапускать некоторые службы. Вы также можете посмотри логи проверить, было ли это сделано автоматически.Заключение
Как видите, Canonical упростила реализацию этого на сервере. Что касается ядра, с вашей стороны не требуется никаких работ по обслуживанию. Единственное, что вы можете сделать, это бежать
canonical-livepatch status
время от времени, чтобы что-то проверять.