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

Как убедиться, что ваши серверы Ubuntu всегда исправлены


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

Управление исправлениями

Управление исправлениями относится к вашим методам обновления серверов. Хорошее управление исправлениями означает, что все ваши серверы быстро обновляются в ответ на исправления безопасности, как в ядре Linux, так и в системе, а также в используемом вами программном обеспечении.

Безопасность начинается с системного администратора; вы должны проводить регулярные аудиты безопасности и обновлений, а также быть в курсе информации о безопасности. В большинстве дистрибутивов Linux есть списки рассылки по безопасности, на которые вы можете подписаться. Они будут отправлять вам уведомления всякий раз, когда будут доступны новые исправления. Другое программное обеспечение, которое вы используете, может иметь свои собственные списки рассылки или требовать от вас ручного отслеживания, чтобы вы могли решить, когда требуется обновление.

Время безотказной работы важно, но если ваша сеть отказоустойчива (т. е. у вас более одного сервера), перезапуск их по одному не должен вызывать проблем. Большинство исправлений для пользовательского программного обеспечения не требуют перезагрузки всей системы, хотя, если работающая служба нуждается в обновлении, ее обычно необходимо перезапустить. Для чего-то вроде nginx это может быть хорошо, но некоторые службы, такие как MySQL, требуют много времени для перезапуска, потому что их нужно корректно завершать и перезагружать. Вам следует избегать их перезапуска, насколько это возможно, особенно если у вас нет отказоустойчивых серверов.

Обычное, ручное обновление

Для многих людей простая команда update & upgrade сделает работу по обновлению сервера:

sudo apt-get update && sudo apt-get upgrade

Команда apt-get update обновляет список пакетов и извлекает последнюю информацию о новейших версиях установленных пакетов. Команда apt-get upgrade установит новые версии программного обеспечения, которое вы уже установили.

Это не установит новые зависимости и не установит некоторые системные обновления. Для этого вам нужно запустить:

sudo apt-get dist-upgrade

который выполнит гораздо более тщательное обновление. Любая команда установит все новые обновления и распечатает список изменений. Некоторым службам может потребоваться перезапуск этой службы для применения изменений, но обычно вам не нужно перезапускать всю систему, если только этого не требует dist-upgrade.

Этот процесс легко выполнить, если у вас всего несколько серверов, но ручное управление исправлениями требует больше времени по мере добавления новых серверов. Собственный сервис Canonical Landscape позволит вам управлять своими машинами и обновлять их через веб-интерфейс, но бесплатен только для 10 машин, после чего требуется подписка на Ubuntu Advantage. Если ваша сеть особенно сложна, вам может понадобиться служба оркестровки, такая как Puppet.

Автоматические исправления безопасности с автоматическими обновлениями

Утилита unattended-upgrades автоматически применит некоторые важные обновления безопасности. Он может автоматически перезагружать сервер, который можно настроить на определенное время, чтобы он не отключился в середине дня.

Установите unattended-upgrades из apt, хотя он может уже быть в вашей системе.

sudo apt update
sudo apt install unattended-upgrades

Это создаст файл конфигурации в /etc/apt/apt.conf.d/50unattended-upgrades, который вы захотите открыть в своем любимом текстовом редакторе.

Убедитесь, что конфигурация выглядит следующим образом, а строка «security» не закомментирована:

Unattended-Upgrade::Allowed-Origins {
 //      "${distro_id}:${distro_codename}";
         "${distro_id}:${distro_codename}-security";
         // Extended Security Maintenance; doesn't necessarily exist for
         // every release and this system may not have it installed, but if
         // available, the policy for updates is such that unattended-upgrades
         // should also install from here by default.
 //      "${distro_id}ESM:${distro_codename}";
 //      "${distro_id}:${distro_codename}-updates";
 //      "${distro_id}:${distro_codename}-proposed";
 //      "${distro_id}:${distro_codename}-backports";
 };

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

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

Unattended-Upgrade::Automatic-Reboot "true";

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

Unattended-Upgrade::Automatic-Reboot-Time "02:00";

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

В качестве альтернативы unattended-upgrades можно настроить на отправку уведомлений по электронной почте, в которых вам будет предложено вручную перезагрузить сервер, когда это необходимо, что предотвратит неожиданные перезагрузки.

Канонический патч Live

Canonical Livepatch — это служба, которая автоматически исправляет ваше ядро, не требуя перезагрузки сервера. Это бесплатно для трех машин, после чего вам потребуется подписка Ubuntu Advantage для каждой машины.

Убедитесь, что ваша система обновлена, и установите Livepatch с помощью snap:

sudo snap install canonical-livepatch

Затем вам нужно получить токен Livepatch с их веб-сайта. Получив его, вы можете запустить:

sudo canonical-livepatch enable TOKEN

Затем убедитесь, что он работает правильно с помощью:

sudo canonical-livepatch status --verbose

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