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


14

Я использую 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. Я вижу себя cvsupping в дереве портов, запускающим скрипт «устарел», затем просто обновляем критические порты - но оставляю ядро ​​/ двоичные файлы в покое и просто обновляюсь каждые шесть месяцев. Вы исправляете / перекомпилируете / пересобираете ядро, двоичные файлы - почему?

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

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

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

Bubnoff

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

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

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

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

Ответы:


9

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


1
Это необходимо для * BSD. Я настоятельно рекомендую добавить это в ночной crontab, чтобы каждое утро отправлять вам электронные письма с портами с исправлениями безопасности.
Андрей М.

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

Я приму этот совет для FreeBSD. Спасибо. Который покидает OpenBSD
Bubnoff

4

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

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

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

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

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

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

Вы можете отслеживать изменения из журналов cvs и проверять, получили ли вы конкретные обновления в / usr / src / UPDATING и / usr / ports / UPDATING , которые автоматически обновляются из cvsup .

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


Мне нравится идея «постановки» стихов «производства». С виртуализацией почти нет оправданий не в наши дни. Спасибо за ответ.
Bubnoff

Да, плюс он прекрасно вписывается в вещи типа «devops» (насколько я понимаю), если вам приходится иметь дело с этим.
DF

4

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

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

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

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

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

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

БАЗА

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

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

с. Поддерживать локальную копию CVS с помощью cvsync

д. Сборка стабильных выпусков из вышеперечисленного

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

3

Для OpenBSD, по крайней мере:

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

Faq 15, все о портах и ​​пакетах


Да, кажется, что разработчики / сопровождающие для OpenBSD поощряют использование пакетов через порты, так как порты производят пакет перед установкой в ​​любом случае. Но у дерева портов есть сценарий аудита (./out_of_date) ... что является аналогом для пакетов? Portaudit для OpenBSD ... или вы просто следите за списком рассылки и обновляете пакеты вручную?
Bubnoff

Лично, с -current для меня это "pkg_add -u -Dupdate, updatedepends" ~ ежемесячно. Я признаю, что никогда полностью не использовал подобные порты, обычно это просто cvs; сделайте обновление чистым для меня, если мне когда-нибудь понадобится это сделать. У меня сложилось впечатление, что эти другие сценарии предназначены для переносчиков, но, опять же, я редко использую систему портов. Что касается аудита, то все это делает команда портов и, конечно, все, кто вносит свой вклад.
Лонерман

@Bubnoff Если вы обновитесь на -stable до последних версий, у вас будут все выпущенные исправления безопасности для этого выпуска. (В отличие от -current, который также включает обновления, не связанные с безопасностью).
WhyNotHugo

@Хьюго - спасибо! Неплохо подмечено. Я должен написать это в документации по сборке моего сервера.
Бубнофф

2

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

Если это не сломано, не исправляйте это.


4
3 - 6 месяцев? А как насчет Apache / lighttp или любых других веб-приложений, CMS и т. Д.? Ты не беспокоишься о них? В противном случае ... Я вижу вашу точку зрения.
Bubnoff

@Bubnoff OpenBSD поставляется с пользовательским httpd, производным от Apache 1.x. Большинство обновлений, предоставляемых Apache, даже не применяются.
Бенуа

Я это понимаю. Но OpenBSD действительно предоставляет обновления для текущих, которые позже переходят к стабильным. И это все еще оставляет сами пакеты ... Приложения, которые используют Apache, возможно, потребуют обновлений. Или вы просто обновляете все это каждые шесть месяцев?
Bubnoff

Это мой подход. Я редко устанавливаю что-либо вне портов в моих производственных системах, поэтому все, что мне действительно нужно, - это базовая установка и пакеты. Я следую за исправлениями ( openbsd.org/errata.html ) и соответствующим списком рассылки для всех установленных пакетов. Если я установил что-то еще сверху, например систему CMS, я отслеживаю и поддерживаю это отдельно. Если мне нужно исправить что-то критическое, я создаю свое исправление на тестовой системе, а затем копирую его.

1

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

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


1
Многие, кажется, предпочитают portupgrade portmanager. Является ли portupgrade более зрелым? Похоже, portmanager еще не достиг 1.0.
Бубнофф

1
Да, portupgrade существует очень долго и, похоже, наиболее активно разрабатывается и поддерживается. Я знаю, что есть и другие инструменты управления портами, но portupgrade - это тот, который наиболее последовательно упоминается в списках. Существует дискуссия между ними в далеком 2004 году - lists.freebsd.org/pipermail/freebsd-questions/2004-De декабря/… - которую я нашел, но я не уверен, насколько она актуальна.
DF

Я использую этот же подход, и в основном это связано с использованием FreeBSD, начиная с 4-х дней, когда buildworld и portupgrade были лучшими / единственными вариантами. Они все еще отлично работают сегодня, если у вас есть время, чтобы запустить их и время, чтобы изучить процесс. Плюс ко всему я всегда -Osстрою с оптимизацией, меньшей / быстрой системой.
Крис С
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.