Paranoid Sysadmin -vs-古いPHPバージョン


8

偏執狂のシステム管理者はどのようにして最新の安定したPHPバージョンを確実に最新の状態に保つことができますか?(セキュリティ修正はかなり定期的に行われています)。

これはプロダクションサーバーなので、「破壊的なもの」が私の男を怖がらせています。メンテナンスのためのダウンタイムは問題ではありません。

具体的には、最近のSuse Enterprise Linuxを実行していますが、一般的またはより一般的な回答で問題ありません。

プロダクションマシンのセキュリティ更新をどのように処理しますか?この人がパッケージマネージャーを使用して「更新」するだけで怖いので、何を知らないのでしょうか。

何かアドバイス?


2
ANYパッチphpの神経質され、GTK +のラッパー、Windowsドライバのアップデートなどは良いことの私見である-これは単なるPHPよりも、それは一般的なパッチphilosiphyの参照のことですさserverfault.com/questions/104665/...一般的にパッチを適用するのは良い議論のための。
Zypher

@Zypherリンクをありがとう。ここでの状況は理想的ではありませんが、そのために取り組んでいます。物事が急いでそこに到達する必要があるという明確な証拠。=)
匿名の臆病者は、

回答:


6

私は他のすべてを処理するのと同じ方法でPHPを処理します。最初に開発環境(本番環境のVMWareクローン)をアップグレードし、それを完全に回帰テストしてから、VMWareホストに使用したのと同じデプロイメントテンプレートを使用して本番環境にプロモートします。(パッケージマネージャーを使用してアップグレードを行う場合は、同じパッケージを使用します)。

追加の断熱層として、本番環境はペアの冗長ホストで構成され、1つのホストはアップグレードのために本番ローテーションから除外され、パートナーにアップグレードするためにそのホストに切り替える前に徹底的にテストされます。

原則として、セキュリティの更新は実用的にすぐに適用され、非セキュリティ/重要でないバグ修正の更新は、ダウンタイムを最小限に抑えるために四半期ごとに適用されます。


冗長性があることは素晴らしいことです。私たちは多くのことを仮想に移行しているので、これは非常に簡単になります。私の仮定が正気でないことを確認するだけです。=)ご回答ありがとうございます。
匿名の臆病者、2010年

VMは素晴らしい発明です-理論的には、冗長な本番システムはすべてVMである可能性があります。これは、自分で電力を支払っている場合は、大幅なコスト削減になります。)その他の利点には、アップグレードを行う前にVMのスナップショットを作成できることが含まれます-インスタントロールバック。
voretaq7

4

PHPは、最新バージョンに更新し続けるための私のトップリストにあります。私はそれをほとんどのものよりも信頼していません。

最終的に、最善の策は、現在のバージョンから最新のものまでのすべての変更ログを確認し、リスクを明確に評価することです。

5.3.1などのマイナーバージョンを5.3.2にアップグレードする場合は、あまり心配する必要はありません。

5.2.xから5.3.xにアップグレードする場合、互換性の問題が発生する可能性があります。

システムパッケージを使用している場合、通常、ディストリビューションは既存のパフォーマンスを損なうアップグレードを導入しません。RHELとCentOSは、メジャーディストリビューションリリースがリリースされるまで、古いバージョンに修正パッチを適用します。通常、リスクを軽減するためのテストを行います。SuSE エンタープライズも同様であると思います。

アップグレードパスについては、本番環境にアップグレードする前に、テストサーバーを構築し、最新バージョンに対してアプリケーションをテストすることをお勧めします。


パッケージ管理システムは、あなたの箱がその間にひどく破壊されない限り、吟味された、一般的には壊れないパッケージを使用したと思いました。それが肯定されて良かった。ありがとう。
匿名の臆病者、2010年

パッケージ管理は非常に失敗する可能性があります-通常は問題なく動作しますが、互換性を損なう変更が導入されていないとアップストリームベンダーが言っているときでも、パッケージ内のパッチレベルのバンプが爆発しました。私の経験では、間違いなく導入前のテスト状況です。
voretaq7

システムパッケージのみを使用していたのですか、それとも自分でコンパイルしたソフトウェアもありましたか?
Warner

1

別のあまり評価されていない答えは、許可されたURLと機能のホワイトリストを作成することです。Apacheでは、プロキシ機能と書き換え機能を組み合わせてこれを行うことができます。

基本的に、2つのインストールを行います。1つは構成を簡略化したものです。プロキシ、書き換え、コード実行なし。etc.(パラメータなどを含む)「許可された」URLは2番目のインストールにプロキシされます。

次に、PHPの開発者リストに自分を追加し、リリースノートを注意深く監視します。セキュリティの脆弱性の可能性があると思われるものを見つけたら、最初のインストールでシムを作成してこの種の障害を検出し、ユーザーにエラーを送信します。

このような設定では、POSTをフィルターにリダイレクトする必要があります(POSTが必要な場合。一部のサイトでは、一部のIPアドレスからのみPOSTを許可することで問題なく動作します)。許可されたソースを検索し、事前にすべてを検証します。

このようなホワイトリストはセットアップに非常に時間がかかりますが、PHPの安定した寿命(数年だけのようです)よりも長く実行する必要があるミッションクリティカルなアプリの場合、これは多数のPHPを活用する優れた方法です。脆弱性も受けないアプリケーション。


1

上記に加えて、万が一に備えてパッケージのロールバックを有効にすることができます。

その後、開発問題なく動作していると確信している本番環境で問題が発生した場合は、問題をトラブルシューティングする前に、少なくとも変更をすぐに元に戻すことができます。

Yumの例については、YUMパッケージのロールバックを参照してください。他のパッケージ管理システムにも同様の機能があると思います。

私はそれがベルトとブレースであることを知っています、そしてポイントリリースでワーナーに同意します。小さな変更は何も壊してはいけません。個人的には、PHPのアップグレードで問題はありませんでしたが、申し訳ありませんが常に安全である方が良いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.