CentOS 5 サーバーにカスタム ソフトウェアをインストールするために雇われたコンサルタントがいます。 彼女の作業が完了したら、変更内容を確認して自動化または最適化を行いたいと思っています。
私は次のことを考えていました:
- 彼女に引き渡す前に、何らかの方法でシステムのスナップショットを撮ってください。
- 完了したら、スナップショットを比較して、ファイルの変更、権限の変更などを確認します。
すでに、コンソールのログを保存するためにシェルを自動的に実行するようにしていますscript
。ただし、これではすべてのファイルの変更がキャプチャされません (たとえば、ファイルを変更するために edit コマンドを使用した場合などvim
)。
答え1
「このシステム上のどのファイルが変更されたか」という質問に答えたいだけなら、すべてのファイルのチェックサムを生成するツールを使用します。コンサルタントが変更を加える前と変更を加えた後にこのツールを実行し、変更されたファイルを探します。結果はシステム以外の場所に保存します。もちろん、一部のファイルは通常の動作の一環として定期的に変更されることに注意してください。
このタスクを実行するツールは、しばしば「ファイル整合性チェッカー」と呼ばれます。ソリューションには以下が含まれます。トリップワイヤー、 アフィック、補佐官、 その他。 この記事Samhain の作者によるこの本は、さまざまなファイル整合性チェッカーの概要をかなり詳しく解説しています。私は最近、これらのいずれも使用していません。
実際に前後のコンテンツを確認したい場合は、まずすべてをバックアップし、後でシステムの状態をバックアップと比較するという方法があります。 または などの簡単な方法を使用して
tar
バックアップrsync
を作成し、後でバックアップとシステムの現在の状態を比較することができます。 (1) で選択したツールを使用して変更されたファイルを識別し、バックアップと現在のファイルを比較することができます。悪意のある変更を心配しておらず、LVM ベースの構成を使用している場合は、ファイルシステムのスナップショットを作成することで、(2) のバックアップ手順を省略できます。これで悪意のある変更から保護されない理由は、もちろん、スナップショットが元のファイルと同じストレージを共有し、悪意のある人がスナップショットを更新できるためですが、比較的リソース要件の少ないソリューションを提供します。