Я отвечаю за управление как нашим производственным сервером (почта, Интернет, база данных - все на одном сервере), так и нашим тестовым сервером. Оба построены на Debian. Однако, поскольку я новичок в системном администрировании, я устанавливал обновления только по мере того, как сталкивался с вещами, которые необходимо обновить, чтобы у меня были новые функции и исправления ошибок. Сейчас это довольно специфический процесс, и я бы хотел, чтобы он был менее таким.
Поэтому мне интересно, как люди, которые знают, что делают, справляются с этим? Как часто вы обновляете свои серверы? Отличается ли процесс обновления тестового и производственного? Вы всегда сначала обновляете какие-либо тестовые серверы? И вы делаете полное обновление всего программного обеспечения или просто устанавливаете выбранные обновления?
я бегу apt-get update -qq; apt-получить обновление -duyq ежедневно. Это проверит наличие обновлений, но не сделает их автоматически.
Затем я могу запускать обновления вручную во время просмотра и исправлять все, что может пойти не так.
Помимо проблем безопасности, связанных с поддержанием исправленной системы, я обнаружил, что если я оставлю ее слишком долго между исправлениями, Я получаю целую кучу пакетов которые хотят обновить, и это пугает меня намного больше, чем просто обновление одного или двух каждую неделю или около того. Поэтому я стараюсь запускать обновления еженедельно или, если они имеют высокий приоритет, ежедневно. Это дает дополнительное преимущество: вы знаете, какой пакет сломал вашу систему (например, если вы обновляете только пару за раз).
Я всегда сначала обновляю менее важные системы. У меня также есть «план отката» на случай, если я не смогу исправить систему. (поскольку большинство наших серверов виртуальные, этот план отката обычно состоит из снимок перед обновлением, к которому я могу вернуться при необходимости)
При этом я думаю, что обновление что-то сломало только один или два раза за последние 4 года, и это было в сильно настроенной системе - так что вам не нужно быть СЛИШКОМ параноиком :)
В дополнение к предыдущим ответам - пара более конкретных вещей Debian: вы должны подписаться на дебиан-безопасность-объявление и дебиан-анонс и / или проверить Страница безопасности Debian.
Предполагая, что вы используете стабильную версию Debian, большинство исправлений будут связаны с безопасностью или ошибками, что должно означать, что между версиями любого данного пакета не будет слишком много серьезных изменений. Согласно политике debian patch, патчи также должны были какое-то время тестироваться, прежде чем быть перемещены сопровождающим в стабильную ветку. Очевидно, что это не остановит поломки при исправлении, но в большинстве случаев должно предотвратить их.
Было бы разумно следить за тем, чтобы ваш тестовый сервер поддерживался в актуальном состоянии, а все пакеты, в которых есть ошибки, влияющие на вас и ваши серверы, должны обновляться. Все пакеты, для которых есть рекомендации по безопасности, следует обновить, как только вы узнаете, что исправление стабильно.
Debian обычно очень стабильная ОС, и вы не должны слишком беспокоиться о поломках, однако всегда читайте, что будет обновлено, прежде чем оно будет обновлено, и следите за всем, что кажется странным. Я также использую VCS в моем / etc / dir, чтобы гарантировать, что любые изменения файла конфигурации можно увидеть с помощью команды 'git diff'.
Я провожу пробный запуск (сначала), чтобы посмотреть, что будет обновлено. Иногда библиотеки (назовем его libfoo для этого примера) изменяют свой API, что нарушает работу программ, которые мы написали / установили сами. Если обновляется какая-то критическая библиотека, я беру исходный код и пытаюсь перестроить наши материалы на его основе перед обновлением.
Я также проверяю, не перескакиваем ли мы на промежуточную версию какой-либо публичной службы, например, apache и т. Д. Я бы предпочел остаться на год позже и не столкнуться с случайными поломками, если обновление не является критическим.
Если вы системный администратор, вам следует загружать RSS-каналы с таких сайтов, как Secunia, который должен сообщить вам заранее, если ваш дистрибутив будет выпускать некоторые исправления.
Никогда, никогда просто слепо не обновляйте / обновляйте. К сожалению, задача узнать, что сломано, ложится на вас, а не на диспетчер пакетов вашего дистрибутива, особенно если ваши системы поддерживают программистов.
Там, где я работаю, у нас есть довольно обширный процесс, который включает использование программного обеспечения под названием PatchLink для уведомления нас о наиболее важных обновлениях, связанных с безопасностью, и мы применяем их после тестирования для каждого пакета. Но у нас тысячи серверов.
Если у вас всего два сервера, процесс должен быть намного проще. Хотя я не думаю, что делать «apt-get update / upgrade» лучше всего.
Я бы отслеживал исправления программного обеспечения, которое вы используете, и на основе исправлений в этих выпусках принимал решения о том, когда обновлять.
Поскольку у вас есть тестовый сервер, очевидно, всегда проверяйте обновления перед их применением.
Ручные обновления лучше всего использовать здесь в том смысле, что вы можете видеть, что происходит. Однако для очень большого количества серверов это может стать непрактичным. Пробный запуск - это стандартная практика, фактически, большинство менеджеров пакетов спросят вас, прежде чем продолжить.
Регулярное обновление, как правило, лучше, хотя это может быть своего рода балансирующим действием. Частые обновления означают меньшее количество ошибок за один раз и меньше ошибок сразу. Если что-то пойдет не так, осталось меньше кандидатов для проверки. Пакеты также немного лучше обновляются более мелкими шагами, как правило, когда программист обновляет, который они рассматривают, переходя от последней версии к следующей, могут ли они уделять какое-либо внимание помимо последней версии, может варьироваться, хотя это имеет значение. в основном для программного обеспечения, которое быстро развивается.
Не все обновления не нарушают работу. Вы захотите остерегаться этого. Некоторые будут перезапускать службы, что приведет к простоям.
В идеале у вас может быть следующее:
Некоторые из них могут оказаться в разной степени излишними для небольших установок, но о них следует помнить.
Вообще говоря, обновления серверных дистрибутивов обычно относительно безболезненны. Это потому, что они почти всегда придерживаются только исправлений ошибок и обновлений безопасности. Однако у вас могут возникнуть проблемы, если люди сделали странные вещи с системой или вы добавили дополнительные источники пакетов.
Хотя это умеренно редко, они иногда делают ошибки и нарушают совместимость между второстепенными версиями пакетов.
Мне нравится cron-apt автоматизировать этот процесс, но как @dinomite указал на другой вопрос об обновлениях, настроить его специально для автоматизации обновлений, связанных с безопасностью, - очень разумная идея - вы можете вручную обновить то, что вам нужно. Я использовал cron-apt для всех обновлений, но на самом деле изменил это на основе его ответа. Если вам это нравится, вы, вероятно, должны проголосуйте за его ответ а не этот.
На debian я устанавливаю cron-apt и отредактируйте его файл конфигурации, чтобы написать мне, если есть какие-либо изменения. таким образом я получаю уведомления, если есть обновления для моих систем, и делаю обновления вручную
В том же духе, что и cron-apt, вам следует взглянуть на автоматические обновления пакет http://packages.debian.org/lenny/unattended-upgrades.
Его очень легко настроить, и вы сможете загружать и применять обновления безопасности автоматически, но оставьте другие обновления для обновления вручную (или по вашему усмотрению обновите все!).
Официальное руководство по серверу Ubuntu содержит достаточно подробный раздел, посвященный использованию пакета автоматических обновлений. https://help.ubuntu.com/9.04/serverguide/C/automatic-updates.html
Примечание: в зависимости от вашего уровня осторожности / паранойи вы можете сначала выполнить скользящее обновление на группе тестовых серверов, а затем, если проблем нет, разрешите обновление ваших производственных ящиков, хотя я лично не сталкивался с какими-либо проблемами с обновлениями безопасности разрушая хаос до сих пор (стучите по дереву) ...
Существует также опция конфигурации, чтобы отправлять вам результаты каждого обновления безопасности по электронной почте после его применения. Кроме того, если во время обновления были представлены какие-либо диалоговые или интерактивные запросы, которые потребуют ручной настройки системным администратором, он также будет упоминать их.
Я лично отключаю автоматические обновления и не выполняю регулярно какие-либо обновления пакетов на серверах в моей среде, если: (а) нет важных рекомендаций CERT для одного из пакетов в моей системе; (б) Мне нужно обновить отдельные пакеты по определенным причинам; (c) ОС или пакеты достигают конца цикла, они больше не будут поддерживаться, и нам необходимо продолжать поддержку. Я считаю, что обновление без знания того, что меняется или почему оставляет слишком много места для того, чтобы что-то сломалось. Я занимаюсь подобными вещами уже 14 лет, и это хорошо работает.
Помимо упомянутого материала, вы должны использовать какой-нибудь инструмент мониторинга (Nagios или что-то еще, что плавает на вашей лодке), чтобы предупреждать вас об обновлениях.
Что касается частоты появления: как только будет доступно обновление!