Назад | Перейти на главную страницу

OpenBSD, FreeBSD: ваша философия обновления?

Я использую FreeBSD около 5 лет - сервер / рабочий стол - и я, как правило, брал с собой все свои привычки apt-get / yum upgrade (я также администрирую блоки Debian / RHEL / Cent - я знаю, я знаю ... должен быть более разборчивым независимо от платформы). Так что обычно это:

portsnap fetch
portsnap update
portmanager -u

Для портов

Иногда за ним следует:

freebsd-update fetch
freebsd-update install

Для системы ... и т. Д. Потом просто уберите все беспорядки ... если они возникнут.

Я понимаю, что это довольно излишний способ, не связанный с BSD. Какова ваша философия в отношении ваших BSD-боксов? Вы запускаете portaudit / portversion - проверьте вывод, затем обновите (выполните деинсталляцию ... и т. Д.) После тщательного рассмотрения?

Признаюсь, я новичок в OpenBSD. Я вижу, как я cvsupport дерево портов, запускаю "устаревший" скрипт, затем просто обновляю критические порты - но оставляю ядро ​​/ двоичные файлы в покое и просто обновляюсь каждые шесть месяцев. Вы патчите / перекомпилируете / пересобираете ядро, двоичные файлы --- почему?

Каков консервативный подход к критически важным сервисам (достаточно критическим - это не банк или больница) на BSD-боксах? Используете ли вы аналогичный подход на своих Linux-компьютерах? Обычно я не трогаю ядро ​​ни на одном сервере, если только предупреждение системы безопасности не вселило ужас в мою душу.

Да, существует множество документов и книг - чем вы на самом деле занимаетесь? Если мы знаем основы - в чем мудрость? Сценарии / среды и сценарии использования различаются, как и ставки / заинтересованные стороны / пользователи. Книги и страницы руководства описывают инструменты и способы их использования, но не имеют практического применения. Порекомендуйте книгу, если вы знаете такую, в которой она есть!

Спасибо за прочтение!

Бубнофф

Выводы ~ Спасибо всем, кто нашел время, чтобы ответить на этот пост. Моя общая стратегия теперь состоит в том, чтобы следить за списками рассылки для обоих BSD и быть более избирательным / разборчивым при обновлении, чем я был в прошлом.

FreeBSD ~ Portaudit - хороший ответ. Я думаю, что с учетом списков рассылки и тщательного аудита, здесь это будет хорошо. Интересно различие акцентов на портах между OpenBSD и FreeBSD.

OpenBSD ~ будет следовать списку рассылки и использовать инструменты пакета (pkg_info и pkg_add -u) там, где это считается критически важным. Обновления: похоже, вам нужно обновляться не реже одного раза в год. Они поддерживают новейшую версию плюс одну предыдущую - так что сейчас это 4.8 и 4.7.

Еще раз спасибо.

Не забывайте время от времени проверять установленные порты на наличие уязвимых пакетов: portaudit -Fda

Я не уверен, что существует особый «способ BSD» для подобных вещей. Все сводится к тому, чтобы знать, что обновляется, и тестировать - общие вещи системного администратора. К счастью, freebsd-update и PortSnap сделайте «знание чего» довольно тривиальным.

Но, поскольку вы спрашивали конкретику, когда я собирал большое количество машин FreeBSD, все они были узлами в кластере. Автономные машины не сильно отличались бы от этого, но я думаю, вы могли бы сделать это неопределенно «девопс», как для ваших производственных услуг. В конце концов, всегда полезно иметь отдельные тестовые и производственные среды.

В кластерной ситуации:

  • Каждая машина смонтирована / usr / src, / usr / obj, и / usr / порты через NFS.
  • В зависимости от вашего бюджета вы можете либо иметь машину для подготовки / сборки, либо назначить узел кластера в качестве узла подготовки / сборки.
  • Промежуточный узел имел другую копию / usr / порты
  • Промежуточный узел обновит SRC-все и порты-все через cvsup каждую ночь
  • В случае необходимости обновления промежуточный узел будет выведен из ротации и buildworld, installworld, и портирование будет запущен.
  • Промежуточный узел будет тщательно протестирован.
  • / usr / порты будет заменен на хосте NFS
  • Каждый узел кластера будет выведен из эксплуатации installworld и портирование, протестировали, а затем вернули обратно.

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

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

Вы можете отслеживать изменения из журналов cvs и проверять, есть ли у вас определенные обновления в / usr / src / ОБНОВЛЕНИЕ и / usr / ports / ОБНОВЛЕНИЕ, оба из которых автоматически обновляются из cvsup.

Если вы не используете cvsup (а в наши дни причин для этого меньше) вам просто нужно найти другой способ отслеживать, какие обновления вы хотите. Вы можете отправить себе список изменений, которые freebsd-update хочет внести, и следить за страницей с ошибками безопасности.

Философия обновления OpenBSD

Это мой подход к обновлению OpenBSD

Будьте в курсе выпусков безопасности / исправлений для:

  • BASE (т.е. то, что команда разработчиков OpenBSD поддерживает в своем дереве исходных текстов)
  • Пакеты / Порты (т.е. программные приложения, установленные поверх BASE)

Процедуры обновления:

  • Та же версия ОС
  • Новая версия ОС

ОСНОВАНИЕ

а. Следуйте соответствующим списки рассылки - Я слежу за ежедневными дайджестами на squish.net, а также за общим направлением, указанным в списках рассылки Tech и Misc.

б. Следите за веб-сайтами / списками рассылки объявлений о безопасности Unix.

c. Поддерживать локальная копия CVS использования cvsync

d. Построить СТАБИЛЬНЫЕ релизы из вышеперечисленных

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

Пакеты / Порты

Сложнее отслеживать обновления безопасности для портов / пакетов, но если это достаточно важно, чтобы быть в нашей инфраструктуре, то достаточно важно отслеживать обновления аналогично BASE.

  • Присоединяйтесь к списку рассылки для конкретного приложения (мы несем ответственность за отслеживание изменений в восходящем направлении, независимо от проекта OpenBSD).

  • Попадайте в списки рассылки безопасности, как CERT, который публикует результаты поиска уязвимостей в приложениях и т. Д.

Процедуры обновления

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

Наши процедуры обновления сильно зависят от использования системы портов / пакетов для программного обеспечения, отличного от BASE. Два хоста, на которых мы устанавливаем программное обеспечение из источника, очень сложно обновлять между обновлениями версий ОС.

То же обновление ОС

Для ОС BASE мы продолжаем добиваться успеха, просто устанавливая новые двоичные файлы поверх старых. Желательно сделать резервную копию всех файлов конфигурации / данных ОС и приложений, отформатировать и переустановить исправленную ОС и переустановить пакеты (с сохранением исходных данных).

С нашими развернутыми хостами OpenBSD (30+) и опытом, резервное копирование конфигурации и данных не представляет труда. Для наших брандмауэров все данные находятся в файлах конфигурации и журналах.

Для портов / пакетов - там, где изменения просты, мы модифицируем собственный порт и собираем из него пакет. Наличие обновленного порта упрощает описанный выше процесс.

Новое обновление ОС

Между выпусками ОС мы устанавливаем все из скетча.

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

Мы делаем резервную копию конфигурации с эталонного хоста и устанавливаем OpenBSD на производственном хосте, восстанавливая «проверенную» конфигурацию поверх него (снова выполняя те же тесты проверки после этого).

Для OpenBSD как минимум:

  • пакеты являются конечным продуктом системы портов; там должно быть немного, если нужно бегать с портами.
  • -release и -stable (в основном) заморожены во времени, с некоторыми обновлениями время от времени.
  • -ток регулярно обновляется. Если вам действительно нужны актуальные пакеты, это лучший вариант.
  • оставаться последовательными: -release / -stable системы придерживаются -release / -stable packages ...- текущие системы работают -текущие пакеты

Часто задаваемые вопросы 15, все о портах и ​​пакетах

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

Если не сломано, не чините.

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

Что касается обновления системы, я обычно перестраиваю из исходников с make buildworld. У меня никогда не было проблем с таким подходом.