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. Я вижу себя cvsupping в дереве портов, запускающим скрипт "устарел", затем просто обновляющим критические порты - но оставляющим ядро / двоичные файлы в покое и просто обновляемым каждые шесть месяцев. Вы исправляете / перекомпилируете / пересобираете ядро, двоичные файлы - почему?
Каков консервативный подход к критически важным услугам (разумно критичным - это не банк или больница) на боксах BSD? Используете ли вы аналогичный подход на ваших Linux-блоках? Как правило, я не касаюсь ядра на каких-либо серверах, если предупреждение безопасности не вселило ужас в мою душу.
Да, есть множество документов и книг - что вы, люди, на самом деле делаете? Предполагая, что мы знаем основы - в чем мудрость? Варианты использования / среды и сценарии различаются, как и ставки / заинтересованные стороны / пользователи. Книги и справочные страницы охватывают инструменты и области применения, но не имеют практического применения. Порекомендуйте книгу, если вы знаете ту, которая ее охватывает
Спасибо за прочтение!
Bubnoff
Выводы ~ Спасибо всем, кто нашел время, чтобы ответить на этот пост. В целом моя стратегия состоит в том, чтобы следовать спискам рассылки для обоих BSD и быть более избирательным / проницательным с обновлениями, чем я был в прошлом.
FreeBSD ~ Portaudit - хороший ответ. Я думаю, что со списками рассылки и прилежными проверками это будет хорошо работать здесь. Интересно различие в акценте на портах между стихами OpenBSD FreeBSD.
OpenBSD ~ будет следовать списку рассылки и использовать инструменты пакета ( pkg_info и pkg_add -u) там, где это считается критическим. Обновления: похоже, вам нужно обновляться хотя бы раз в год. Они поддерживают новейшую версию плюс один задний - так что сейчас это 4.8 и 4.7.
Еще раз спасибо.
6 ответов
Убедитесь, что вы регулярно проверяете установленные порты на наличие уязвимых пакетов: portaudit -Fda
Философия обновления OpenBSD
Это мой подход к обновлению OpenBSD
Будьте в курсе выпусков / исправлений безопасности для:
- BASE (т.е. материал, который команда разработчиков OpenBSD поддерживает в своем дереве исходных текстов)
- Пакеты / Порты (т.е. программные приложения, установленные поверх BASE)
Процедуры обновления:
- Та же версия ОС
- Новая версия ОС
БАЗА
а. Следите за соответствующими списками рассылки- я слежу за ежедневными дайджестами squish.net, а также за общими указаниями, указанными в списках рассылки Tech и Misc.
б. Следите за связанными с Unix сайтами по безопасности / списками рассылки.
с. Поддерживать локальную копию CVS с помощью cvsync
д. Сборка СТАБИЛЬНЫХ релизов из вышеперечисленного
Когда публикуются обновления безопасности, мы оцениваем фактическую проблему безопасности с профилем компьютеров с этой версией ОС / уязвимости. Если уязвимость важна, мы проходим "процедуру обновления той же версии".
Пакеты / порты
Сложнее отслеживать обновления безопасности для портов / пакетов, но если это достаточно важно, чтобы быть в нашей инфраструктуре, то достаточно важно отслеживать аналогично BASE.
Получить в списке рассылки для конкретного приложения (наша обязанность - следить за изменениями в апстриме, независимо от проекта OpenBSD.)
Получить в списки рассылки безопасности, как CERT, который публикует результаты поиска уязвимостей в приложениях и т. Д.
Процедуры обновления
Очевидно, соберите и протестируйте процедуру установки на отдельном оборудовании (или ВМ), прежде чем делать это на своих рабочих машинах. К счастью для нас, у нас есть избыточные хосты для многих вещей, и поэтому мы можем развернуть их с минимальным временем простоя сервисов. Поскольку OpenBSD поддерживает широкий спектр аппаратного обеспечения, мы можем развертывать серверное оборудование для наших основных компьютеров и настольных компьютеров более низкого уровня в качестве наших избыточных хостов (или мы просто создаем временное поле для заполнения для основного компьютера во время цикла обновления).
Наши процедуры обновления сильно зависят от использования системы портов / пакетов для не-BASE программного обеспечения. Два хоста, на которые мы устанавливаем программное обеспечение из исходных текстов, - это проблема обновления между обновлениями версий ОС.
То же обновление ОС
Для ОС BASE мы продолжаем успешно устанавливать новые двоичные файлы поверх старых. Желательно сделать резервную копию всех файлов конфигурации и данных ОС и приложений, отформатировать и переустановить исправленную ОС и переустановить пакеты (сохранив исходные данные).
На наших развернутых хостах OpenBSD (более 30) и опыте резервное копирование конфигурации и данных не составляет труда. Для наших брандмауэров все данные находятся в файлах конфигурации и журналов.
Для портов / пакетов - там, где изменения просты, мы модифицируем наш собственный порт и строим пакет из этого. Наличие обновленного порта упрощает процесс выше.
Новое обновление ОС
Между выпусками ОС мы устанавливаем все с эскиза.
Я уверен, что для этого процесса достаточно документации, но, по сути, мы создаем эталонный компьютер с такой же конфигурацией, что и для "замены" системы. Пройдите те же тесты, что и перед развертыванием хоста.
Мы создаем резервную копию конфигурации с эталонного хоста и устанавливаем OpenBSD на рабочий хост, восстанавливая "проверенную" конфигурацию поверх него (снова выполняя те же проверочные тесты впоследствии).
Я не уверен, что есть определенный "способ BSD", чтобы делать такие вещи. Все сводится к тому, чтобы знать, что обновляется, и тестировать - общие вещи системного администратора. К счастью, freebsd-update и portsnap делают "знать что" довольно тривиальным.
Но, поскольку вы спрашивали об особенностях, когда я собирал большое количество машин FreeBSD, все они были узлами в кластере. Автономные машины не будут сильно отличаться от этого, но я думаю, что вы могли бы сделать это смутно "чертовски", как для ваших производственных услуг. В конце концов, всегда полезно иметь отдельную среду тестирования и производства.
В кластерной ситуации:
- Каждая машина смонтировала / usr / src, / usr / obj и / usr / ports через NFS.
- В зависимости от вашего бюджета, вы можете иметь машину промежуточной сборки или сборки или назначить узел кластера узлом промежуточной сборки.
- У промежуточного узла была другая копия / usr / ports
- Промежуточный узел будет обновлять src-all и ports-all через cvsup каждую ночь
- В случае необходимого обновления промежуточный узел будет отключен и будут запущены buildworld, installworld и portupgrade.
- Промежуточный узел будет тщательно проверен.
- / usr / ports будет заменен на хосте NFS
- Каждый узел кластера будет повернут, запустив installworld и portupgrade, протестирован и затем повернут обратно.
Очевидно, это было в случае обновления как системы, так и портов, но процедура была достаточно схожей при обновлении только пакетов или системы.
Если это делается на двух машинах, каждая из которых может по очереди быть производственной или промежуточной или просто обновлять производственную.
Вы можете отслеживать изменения из журналов cvs и проверять, получили ли вы конкретные обновления в /usr/src/UPDATING и / usr / ports / UPDATING, которые автоматически обновляются из cvsup.
Если вы не используете cvsup (а в наши дни нет причин для этого), вам просто нужно найти какой-то другой способ отслеживать, какие обновления вы хотите. Вы можете отправить список изменений, которые freebsd-update хочет внести в себя, и следить за ошибкой страницы безопасности.
Для OpenBSD, по крайней мере:
- пакеты являются конечным продуктом системы портов; должно быть мало, если нужно, бегать с портами.
- -release и -stable (в основном) заморожены во времени, с некоторыми обновлениями время от времени.
- -Ток регулярно обновляется. Если вам действительно нужны современные пакеты, это путь.
- оставайтесь последовательными: -release/-stable системы придерживаются -release / -stable пакетов...- текущие системы запускают -current пакеты
Если нет проблем с безопасностью или ошибка, препятствующая функционированию, оставьте это в покое. Проверяйте обновления, возможно, каждые 3-6 месяцев, чтобы не отставать, а в остальном оставить все как есть.
Если это не сломано, не исправляйте это.
Я предпочитаю использовать portupgrade
для обновления портов, и делайте это только тогда, когда это абсолютно необходимо, например, когда в порту обнаружена уязвимость или требуются новые функции.
Что касается обновления системы, я обычно перестраиваюсь из источников с make buildworld
, У меня никогда не было проблем с этим подходом.