OpenBSD、FreeBSD:アップデートの哲学?


14

私は約5年間FreeBSDを使用してきました-サーバー/デスクトップ-私はapt-get / yumアップグレード習慣を私と一緒に取る傾向があります(Debian / RHEL / Centボックスも管理します-私は知っています、私は知っている...プラットフォームに関係なく、より識別力があるはずです)。したがって、通常は次のとおりです。

portsnap fetch
portsnap update
portmanager -u

ポート用

時々続く:

freebsd-update fetch
freebsd-update install

システムの場合...など その後、混乱が発生した場合は、後でクリーンアップします。

これは、非常に過剰な非BSDの方法です。あなたのBSDボックスに対するあなたの哲学は何ですか?portaudit / portversionを実行していますか?出力を確認し、慎重に検討した後、更新(make deinstall ... etc)しますか?

私はOpenBSDにかなり慣れていないので、告白します。私はポートツリーをcvsuppingし、「期限切れ」スクリプトを実行してから、重要なポートをアップグレードするだけですが、カーネル/バイナリはそのままにして、6か月ごとにアップグレードするだけです。カーネル、バイナリをパッチ/再コンパイル/再構築しますか?---なぜですか?

BSDボックスの重要なサービス(合理的に重要-これは銀行や病院ではありません)に対する保守的なアプローチとは何ですか?Linuxボックスで同様のアプローチを使用していますか?通常、セキュリティ警告が私の心に恐怖を与えない限り、どのサーバーのカーネルにも触れません。

ええ、たくさんのドキュメントと本があります-あなたは実際に何をしていますか?私たちは基本を知っていると仮定します-知恵は何ですか?利害関係者/利害関係者/ユーザーと同様に、ユースケース/環境とシナリオはさまざまです。書籍とマニュアルページにはツールと使用法が記載されていますが、実用的なアプリケーションはありません。あなたがそれをカバーするものを知っているなら、本を推薦してください!

読んでくれてありがとう!

ブブノフ

結論〜 この投稿に回答してくれたすべての人に感謝します。私の全体的な戦略は、両方のBSDのメーリングリストをフォローし、過去に比べて更新に関してより選択的/慎重になることです。

FreeBSD〜Portauditは良い答えです。メーリングリストと勤勉な監査で、これはここでうまくいくと思います。OpenBSDとFreeBSDの間のポートの重要性が異なるのは興味深いことです。

OpenBSD〜メーリングリストに従い、重要と思われる場合はパッケージツール(pkg_infoおよびpkg_add -u)を使用します。アップグレード:少なくとも年に1回はアップグレードする必要があるようです。最新リリースに加えて1つのバックをサポートしているため、現在は4.8と4.7です。

再度、感謝します。

回答:


9

インストールされているポートの脆弱なパッケージを頻繁に確認してください:portaudit -Fda


1
これは* BSDの必須アイテムです。これを毎晩crontabに入れて、毎朝セキュリティ修正が施されたポートをメールで送信することを強くお勧めします。
アンドリューM.

1
しかし、それはPortauditのアドバイスに基づいて行動することの問題です。ここの回答を読むことから、ほとんどの人は絶対に必要でない限り物事を放置することを勧めます。すべてが常に最新のものであるべきだと主張する管理者もいます...これは、物事を壊すための良い方法として私を襲います。
ブブノフ

私はこのアドバイスをFreeBSDに取ります。ありがとうございました。OpenBSDを離れる
Bubnoff

4

この種のことを行うための特定の「BSDの方法」があるかどうかはわかりません。結局のところ、何が更新され、テストされているのかを知ることになります-一般的なシステム管理者のものです。幸いなことに、freebsd-updateportsnapは、「何を知っているか」をかなり簡単にします。

しかし、あなたが詳細を尋ねたので、私が多数のFreeBSDマシンを放牧したとき、それらはすべてクラスタ内のノードでした。スタンドアロンマシンはこれとそれほど違いはありませんが、実稼働サービスのように漠然と「開発」することができると思います。最終的には、常にテスト環境と運用環境を分離することをお勧めします。

クラスターの状況では:

  • 各マシンが/ usr / src/ usr / objをマウントした NFSを介して、および/ usr / portsを。
  • 予算に応じて、ステージング/ビルドマシンを使用するか、クラスターノードをステージング/ビルドノードとして指定できます。
  • ステージングノードに/ usr / portsの異なるコピーがありました
  • ステージングノードはcvsupを介してsrc-allおよびports-all更新します、毎晩ます
  • 必要な更新が発生した場合、ステージングノードは回転とbuildworldinstallworld、およびportupgradeから除外されますが実行されます。
  • ステージングノードは徹底的にテストされます。
  • / usr / portsはNFSホストでスワップされます
  • 各クラスターノードは、installworldportupgradeを実行してローテーションアウトされ、テストされた後、再びローテーションされます。

明らかに、これはシステムとポートの両方の更新の場合でしたが、手順はパッケージまたはシステムだけを更新するのに十分似ていました。

これを2台のマシンで行う場合、それぞれを実稼働またはステージングとして交互に実行するか、ステージングから実稼働を更新することができます。

cvsログから変更を追跡し、/ usr / src / UPDATINGおよび/ usr / ports / UPDATINGで特定の更新を取得したかどうかを確認できます。どちらもcvsupから自動的に更新されます。

cvsupを使用しない場合(そして最近では理由が少なくなっています)、必要な更新を追跡する他の方法を見つける必要があります。freebsd-updateが自分に加えたい変更のリストをメールで送信し、セキュリティエラッタページを監視することができます。


「ステージング」と「プロダクション」のアイデアが好きです。仮想化では、最近ではほとんど言い訳ができません。回答ありがとうございます。
ブブノフ

ええ、それに対処する必要がある場合、(私が理解していることから)「devops」タイプのものにうまく適合します。
DF

4

OpenBSDアップデートの哲学

これはOpenBSDを更新するための私のアプローチです

次のセキュリティリリース/パッチの最新情報を入手してください。

  • BASE(つまり、OpenBSD開発チームがソースツリーで管理しているもの)
  • パッケージ/ポート(つまり、BASEの上にインストールされたソフトウェアアプリケーション)

更新手順:

  • 同じOSバージョン
  • 新しいOSバージョン

ベース

a。関連するメーリングリストをフォローしてください -squish.netの毎日のダイジェストと、TechおよびMiscメーリングリストに示されている一般的な方向性を見ています。

b。Unix関連のセキュリティ発表Webサイト/メーリングリストに従ってください。

c。cvsyncを使用したローカルCVSコピーを維持します

d。上記からSTABLEリリースをビルドする

セキュリティ更新プログラムが公開されると、そのバージョンのOS /脆弱性を持つマシンのプロファイルで実際のセキュリティ問題を評価します。脆弱性が関連している場合、「同じバージョンのアップグレード手順」を実行します。

パッケージ/ポート

ポート/パッケージのセキュリティ更新を追跡することはより困難ですが、インフラストラクチャ上に存在することが重要な場合は、BASEと同様の方法で追跡することが重要です。

  • 特定のアプリケーションのメーリングリストに参加してください(OpenBSDプロジェクトとは無関係に、アップストリームの変更を監視するのは私たちの責任です)。

  • アプリの脆弱性の調査結果を公開するCERTのようなセキュリティの配布リストを入手してください。

アップグレード手順

本番マシンで実行する前に、インストール手順を別個のハードウェア(またはVM)でビルドおよびテストすることは明らかです。幸いなことに、私たちは多くのことに冗長なホストを持っているため、サービスのダウンタイムを最小限に抑えて展開できます。OpenBSDは幅広いハードウェアをサポートしているため、プライマリマシン用にサーバーグレードの機器を展開し、冗長ホストとしてローエンドデスクトップを展開できます(または、更新サイクル中にメインマシン用に一時ボックスを構築するだけです)。

更新手順は、非BASEソフトウェアのポート/パッケージシステムの使用に大きく依存しています。ソースからソフトウェアをインストールする2つのホストは、OSのバージョン更新の間に更新するのが苦痛です。

同じOSアップデート

BASE OSについては、古いバイナリの上に新しいバイナリをインストールするだけで成功を続けています。できれば、すべてのOSとアプリケーションの構成/データファイルをバックアップし、パッチを適用したOSをフォーマットして再インストールし、パッケージを再インストールしてください(元のデータを保持します)

配備されたOpenBSDホスト(30+)および経験では、構成とデータのバックアップは難しくありません。ファイアウォールの場合、すべてのデータは構成ファイルとログファイルにあります。

ポート/パッケージの場合-変更が簡単な場合、独自のポートを変更し、そこからパッケージをビルドします。ポートを更新すると、上記のプロセスが簡単になります。

新しいOSアップデート

OSリリースの間に、スケッチからすべてをインストールします。

このプロセスに関する十分なドキュメントは確かにありますが、基本的には、「置換」されるシステムと同じ構成のリファレンスマシンを構築します。ホストをデプロイする前に必要な同じテストを実行します。

参照ホストから構成をバックアップし、実稼働ホストにOpenBSDをインストールし、その上に「検証済み」構成を復元します(その後も同じ検証テストを実行します)。


ありがとう!それが私が向かっている方向です。リストに従い、冗長ホストを使用します。
ブブノフ

3

OpenBSDの場合、少なくとも:

  • パッケージはportsシステムの最終製品です。ポートで実行する必要がある場合は、ほとんどありません。
  • -releaseと-stableは(ほとんど)時間内に凍結され、時々更新されます。
  • -currentは定期的に更新されます。最新のパッケージが本当に必要な場合は、これが最適な方法です。
  • 一貫性を保ちます:-release / -stableシステムは-release / -stableパッケージに固執します... -currentシステムは-currentパッケージを実行します

FAQ 15、ポートとパッケージに関するすべて


はい、とにかくインストールする前にポートがパッケージを生成するので、OpenBSDの開発者/保守者はポートを介したパッケージの使用を奨励しているようです。しかし、portsツリーには監査スクリプト(./out_of_date)があります...パッケージの類似物は何ですか?OpenBSDのportaudit ...またはメーリングリストに従ってパッケージを手動でアップグレードしますか?
ブブノフ

個人的には、-currentでは "pkg_add -u -Dupdate、updatedepends"です(毎月)。私はそのようなポートを徹底的に使用したことがないことを認めています;通常は単にcvs upです;私がそれをする必要がある場合は更新をきれいにしてください。他のスクリプトはポーター用であるという印象を受けましたが、繰り返しになりますが、portsシステムはほとんど使用していません。監査に関しては、それはすべて港湾チームと、もちろん貢献した他の人が行います。
一人

@Bubnoff -stableで最新バージョンに更新すると、そのリリース用にリリースされたすべてのセキュリティパッチがあります。(-currentとは異なり、セキュリティ以外の更新も含まれます)。
-WhyNotHugo

@ヒューゴ-ありがとう!それは良い点です。これをサーバービルドドキュメントに書き込む必要があります。
ブブノフ

2

セキュリティの問題や機能を妨げるバグがない場合は、そのままにしておきます。おそらく3〜6か月ごとに更新を確認して、遅れを取りすぎないようにします。

壊れていない場合は、修正しないでください。


4
3〜6か月ですか?Apache / lighttpや、CMSなどの前面のWebアプリはどうですか?あなたはそれらを心配しませんか?そうでなければ...あなたの主張がわかります。
ブブノフ

@Bubnoff OpenBSDには、Apache 1.xから派生したカスタムhttpdが付属しています。Apacheが提供する更新のほとんどは適用されません。
ブノワ

という事は承知しています。しかし、OpenBSDは、後で安定版に移行する最新版の更新を提供します。そして、それはまだパッケージ自体を残しています... Apacheを使用するアプリはおそらくアップデートが必要です。または、半年ごとに全部をアップグレードするだけですか?
ブブノフ

これが私のアプローチです。実稼働システムのポートから何かをインストールすることはめったにないので、本当に必要なのは基本インストールとパッケージだけです。私は、正誤表(openbsd.org/errata.html)と、インストールしたパッケージの関連するメーリングリストに従います。CMSシステムなど、他の何かを上にインストールした場合、それを個別に追跡および保守します。重要な何かにパッチを適用する必要がある場合は、テストシステムでパッチを作成してからコピーします。

1

portupgradeポートのアップグレードに使用することを好みます。これは、ポートに脆弱性が見つかった場合や新しい機能が必要な場合など、絶対に必要な場合にのみ行います。

システムのアップグレードに関しては、通常、ソースから再構築しますmake buildworld。このアプローチで問題は一度もありませんでした。


1
多くはportmanagerよりportupgradeを好むようです。portupgradeは2つの成熟したバージョンですか?portmanagerはまだ1.0に達していないようです。
ブブノフ

1
ええ、portupgradeはとてつもなく長い間存在しており、最も積極的な開発とサポートがあるようです。他のポート管理ツールもありますが、portupgradeはリストで最も一貫して言及されているツールです。'04の2つの間には、lists.freebsd.org / pipermail / freebsd - questions / 2004 - December /…で議論がありましたが、それがどれほど最新かはわかりません。
DF

私もこれと同じアプローチを使用していますが、これは主に、buildworldとportupgradeが最良/唯一のオプションであった4.x時代からFreeBSDを使用したことが原因です。あなたがそれらを実行する時間とプロセスを学ぶ時間があるなら、彼らは今日でもうまく機能します。さらに、私は常に-Os最適化、より小さく/より速いシステムで構築します。
クリスS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.