第4章 |
|
この章では、Solaris Security Toolkit ソフトウェアの強化中に実行された変更のリセット (元に戻す処理) の内容と手順について説明します。このオプションを使用すると、Solaris Security Toolkit の強化処理を実行する前の状態に、システムを自動的に戻すことができます。
Solaris Security Toolkit の強化処理では、その実行のたびに JASS_REPOSITORY に実行ディレクトリが作成されます。ディレクトリ名は、実行の開始日時に基づきます。画面への出力表示に加え、ディレクトリ内にファイルが作成されて、変更の追跡と操作ログの作成も行われます。
ディレクトリに保存されたファイルは、システムの変更を追跡します。このファイルがあることで、元に戻す機能が使用可能になります。
![]() |
注意 - 管理者は JASS_REPOSITORYディレクトリ内のファイルの内容を書き換えてはなりません。ファイルを変更すると、データの内容が壊れてしまい、元に戻す機能の使用時に、予期しないエラーが発生したりシステムが破損したりするおそれがあります。 |
Solaris Security Toolkit ソフトウェアでシステムを強化すると、JumpStart またはスタンドアロンモードのいずれのモードでも、JASS_REPOSITORY/jass-manifest.txt ファイルに変更のログが記録されます。このファイルには、変更をリセットする際に元に戻す機能で使用される操作が一覧表示されます。このファイルには、作成されたファイルや、コピー、移動、削除されたファイルなど、Solaris Security Toolkit ソフトウェアによって実行された強化処理についての情報が含まれます。また、ソフトウェアパッケージのインストールなど、より複雑な変更をリセットする際に必要な標準項目とカスタム項目も含まれる場合があります。強化処理を実行するたびに、jass-manifest.txt ファイルが個別に作成されます。
注 - Solaris Security Toolkit ソフトウェアの元に戻す機能は、マニフェストファイル内に項目がある変更のみリセットします。 |
元に戻す処理では、Solaris Security Toolkit 処理の実行中に作成された、JASS_REPOSITORY に保存されているマニフェストファイルが調べられます。ユーザーが使用する、バックアップ、強制、または保持オプションによっては、この処理によってバックアップファイルが元の場所に復元される場合があります。バックアップ、強制、および保持オプションの詳細は、次のページを参照してください。
強化処理中にファイルがバックアップされていないと、JASS_SAVE_BACKUP 変数が user.init ファイル内で 0 として定義されるか、あるいは -c オプションが使用された場合、元に戻す機能は使用できません。詳細は、システムの変更を元に戻すための要件を参照してください。
Solaris Security Toolkit の処理を元に戻しても、関連するディレクトリは削除されません。その代わり、JASS_REPOSITORY ディレクトリに jass-undo-log.txt と reverse-jass-manifest.txt の 2 つのファイルが作成されます。jass-execute -u を次回実行するときは、すでに元に戻されている処理は表示されません。強化処理は一度だけ元に戻すことができます。
Solaris Security Toolkit ソフトウェアの元に戻す機能には、以下の制限事項と要件があります。
Solaris Security Toolkit フレームワークでは、終了スクリプトの設計と構築が柔軟に行えます。このフレームワークを使用すれば、組織の必要性に応じて Solaris Security Toolkit ソフトウェアの機能を拡張できるほか、システムのライフサイクルに合わせてシステム構成を上手に管理することができます。
スクリプトをカスタマイズするときは、元に戻す機能が変更によってどのような影響を受けるかを理解しておくことが重要です。ヘルパー関数を使用すれば、マニフェストファイルに正しい変更が行われるので、スクリプトを簡単にカスタマイズできます。元に戻す機能は、マニフェストファイルの内容に基づいて強化処理をリセットします。通常、ヘルパー関数は、組織の必要性に応じてスクリプトをカスタマイズするために必要な要素を提供します。
ヘルパー関数のリストとその使用方法については、『Solaris Security Toolkit 4.2 リファレンスマニュアル』を参照してください。システムコマンドの代わりに、これらのヘルパー関数を使用すれば、元に戻す処理でマニフェストファイル内の関連項目を参照できます。
場合によっては、ヘルパー関数を持たない関数を実行する必要があります。そのようなときは、add_to_manifest と呼ばれる特殊関数を使用します。この関数を使用すると、マニフェストファイルに手動で項目を追加でき、ヘルパー関数を呼び出す必要はありません。この特殊関数を使用するときは、システムと Solaris Security Toolkit リポジトリの完全性を保護するために注意が必要です。この特殊関数の使用例としては、Sun の pkg 形式でないソフトウェアパッケージを追加する場合があります。この場合、強化処理で追加されたほかの形式のパッケージの削除方法を、元に戻す機能に指示する必要があります。
ヘルパー関数と特殊関数 add_to_manifest を使用すれば、Solaris Security Toolkit ソフトウェアでスクリプトのカスタマイズと元に戻す処理への変更の反映を簡単かつ、柔軟に行えます。
これらの関数を使用せずに終了スクリプトの動作を変更すると、その変更が Solaris Security Toolkit ソフトウェアに認識されません。そのため、マニフェストファイルで参照されない変更をすべて手動で元に戻す必要があります。
ほかの例を考えてみます。たとえば、システム上のファイルを変更するときは、最初にオリジナルバージョンのファイルを保存する必要があります。通常、ユーザーは /usr/bin/cp コマンドを実行することにより、この作業を Solaris Security Toolkit ソフトウェアのコンテキスト外で行います。ただし、Solaris Security Toolkit ソフトウェアのコンテキスト内では、このコマンドを直接使用すると、リスト項目を作成する必要性が Solaris Security Toolkit ソフトウェアに認識されません。cp コマンドを使用する代わりに、backup_file ヘルパー関数を使用します。この関数は、接尾辞 JASS_SUFFIX を付けてオリジナルファイルのコピーを保存し、ファイルのコピーが作成されたことを Solaris Security Toolkit ソフトウェアに知らせるリスト項目を追加します。また、この関数はファイルのチェックサムも計算します。ファイルのチェックサムは、元に戻す機能と jass-check-sum コマンドで使用されます。
jass-execute -u コマンドは、強化処理の実行後に手動で変更されたファイルを自動的にチェックしますが、場合によっては、jass-check-sum コマンドを使用し、変更されたファイルを一覧表示した上で確認した方が便利なときもあります。
このコマンドを使用すると、JASS_REPOSITORY ディレクトリの内容を確認して、マニフェストファイルに示されるすべてのファイルにチェックサムを実行できるので、強化処理の際にチェックサムが記録されたあとに変更されたファイルを特定できます。このチェックを実行してから強制的な元に戻す処理を実行すれば、不要な障害追跡にかかる時間を節約できる可能性がある有用な情報が得られます。
この出力は、強化処理の完了後に 3 つのファイルが変更されていることを示しています。
この節では、元に戻す機能を実行する際に使用できる jass-execute -u コマンドとオプションについて説明します。
注 - 元に戻す機能では、-c、-d、-a、-h、-l、または -H オプションを使用することはできません。非出力モードで元に戻す機能を実行する場合は、-b、-k、または -f オプションを指定する必要があります。 |
jass-execute -u コマンドは、元に戻す処理を実行する際の標準的な方法です。このコマンドは、前回の強化後に手動で変更されたファイルを検出します。Solaris Security Toolkit ソフトウェアで、強化後に手動で変更されたファイルが検出されると、次に示す応答のどれか 1 つを選択するように求められます。
1. 最新のファイルをバックアップしてからオリジナルファイル (強化前に存在していたファイル) を復元する。
2. 最新のファイルを保持し、オリジナルファイルを復元しない。
3. 手動で変更されたファイルを強制的に上書きして (この結果データが消失する可能性がある)、オリジナルファイルを復元する。
4. 常に最新のファイルをバックアップしてからオリジナルファイル (強化前に存在していたファイル) を復元する。
5. 常に最新のファイルを保持し、オリジナルファイルを復元しない。
6. 手動で変更されたファイルを常に強制的に上書きして (この結果データが消失する可能性がある)、オリジナルファイルを復元する。
前回の強化処理以降に変更されたファイルを元に戻すコマンドがどのように処理すべきかを定義する場合は、元に戻すコマンドを実行する際にバックアップ (-b)、保持 (-k)、または強制 (-f) オプションを指定してください。
表 4-1 に、元に戻すコマンドで使用できるコマンド行オプションを示します。各オプションについての詳細は、以降の節を参照してください。
画面に出力を表示しません。非出力オプションとも呼ばれます。出力は JASS_REPOSITORY/jass-undo-log.txt に保存されます。 |
|
-b オプションは、前回の強化後に手動で変更されたファイルを自動的にバックアップした後、ファイルを強化前の状態に戻します。手動の変更を実行するには、復元されるファイルとバックアップされるファイルを比較し、両者の違いを手動で調整する必要があります。このオプションを使用してファイルをバックアップすると、ファイルは以下のように表示されます。
-f オプションは、強化後に手動でファイルが変更されていても、強化中に行われた変更を強制的にリセットします。保存されているファイルのチェックサムと現在のバージョンのファイルは比較されません。そのため、強化後に手動でファイルを変更していると、変更内容が上書きされて、元に戻した後に変更内容が失われます。
元に戻す処理の完了後、変更を手動で再実装する必要がある場合もあります。また、変更の種類によっては、ファイル間の違いの調整が必要な場合もあります。
注 - これらの問題を回避するには、jass-check-sum コマンドを使用するか、前述した -b コマンド行オプションを使用します。 |
-k オプションは、強化処理の実行後にファイルに手動で行われた変更をすべて自動的に保持し、オリジナルファイルを復元しません。-k オプションは、ファイルの不一致を検出します。また、通知データを生成してそのログを記録します。オリジナルファイルによる上書きは行いません。リセットされる変更は、保存されたチェックサムが有効なものだけです。
このオプションには欠点があります。たとえば、終了スクリプトによって変更されたファイルのサブセットがあとで変更されると、システムが矛盾した状態になることがあります。
たとえば、remove-unneeded-accounts.fin 終了スクリプトを使用したとします。このスクリプトは、システム上の /etc/passwd および /etc/shadow ファイルを変更します。強化処理の終了後、ユーザーがパスワードを変更すると、/etc/shadow ファイルに関連付けられたチェックサムが Solaris Security Toolkit ソフトウェアによって保存された値と一致しなくなります。その結果、保持オプションを使用すると、/etc/passwd ファイルのみ元の状態にコピーし直されます。/etc/shadow ファイルは現在の状態のままです。したがって、2 つのファイルが一致しません。
-o /complete/path/to/output_file オプションを使用すると、jass-execute のコンソール出力が別の output_file に転送されます。
このオプションは、JASS_REPOSITORY ディレクトリ内に保持されるログには影響しません。Solaris Security Toolkit の元に戻す処理は大量の出力を生成するので、このオプションは、低速の端末接続環境で実行する場合に特に有効です。
-q オプションを使用すると、Solaris Security Toolkit ソフトウェアは画面に出力を表示しなくなります。このオプションは、JASS_REPOSITORY ディレクトリ内に保持されるログには影響しません。-o オプションと同様、このオプションも、Solaris Security Toolkit ソフトウェアを cron ジョブを利用して実行する場合や、低速のネットワーク接続環境で実行する場合に特に便利です。
-m e-mail_address オプションを使用すると、完了した実行のコピーが Solaris Security Toolkit ソフトウェアによって、指定された電子メールアドレスに送信されます。他のオプションを使用すると、ログに加えて電子メールレポートも生成されます。
場合によっては、Solaris Security Toolkit の 1 つまたは複数の強化処理で行われた変更のリセットが必要になります。セキュリティー強化処理によって行われた変更がシステムに悪影響を与えているときは、変更を元に戻します。
たとえば、強化処理の実行後、SVM (Solaris Volume Manager) などの必要なサービスが無効になっていることが検出された場合は、次の処理を行います。
ドライバのカスタマイズ手順については、『Solaris Security Toolkit 4.2 リファレンスマニュアル』、第 4 章の「ドライバのカスタマイズ」を参照してください。
3. JASS_SVCS_ENABLE 環境変数を使用し、使用する SVM サービスを有効にします。
JASS_SVCS_ENABLE の使用方法については、『Solaris Security Toolkit 4.2 リファレンスマニュアル』、第 7 章の「JASS_SVCS_ENABLE」を参照してください。
この節では、1 つまたは複数の強化処理によって行われた変更を元に戻す方法について説明します。強化処理を効果的に元に戻すには、制限事項と要件があります。システムの変更を元に戻すための要件を参照してください。
|
元に戻す処理を実行する前に、システムをバックアップして再起動することで、システムが既知の作業状態に確実に戻る (または戻れる) ようにしておきます。
2. jass-execute -u コマンドで使用するオプションを決めます。
元に戻す機能でのオプションの使用を参照してください。
以下の説明では、jass-execute -u コマンドを使用することを前提にします。
3. 標準的な -u オプションを使用して 1 つまたは複数の強化処理を元に戻すには、JASS_HOME_DIR/bin から次のコマンドを入力します。
Solaris Security Toolkit ソフトウェアは、JASS_REPOSITORY 内のマニフェストファイルをすべて検索して、個々の強化処理に関する情報を収集します。マニフェストファイルが空または存在しない場合は、元に戻す変更は存在せず、実行する必要はないと見なされます。また、マニフェストファイルと同じディレクトリ内に jass-undo-log.txt と呼ばれるファイルが存在する場合も、処理はすでにリセット済みで、実行する必要はないと見なされます。収集プロセスが完了すると、結果が表示されます。以下に出力例を示します。
この例では、4 つの強化処理が検出されています。これらの強化処理によってシステムが変更されていますが、まだ元に戻されていません。強化処理のリストは、常に時系列の逆の順序で表示されます。リストの最初の項目が最新の強化処理です。
4. 出力を確認して元に戻す処理を決定したら、該当する番号を入力します。
どの項目を選択した場合でも、選択した値以下のインデックス番号の処理がすべて元に戻されます。つまり、最新の強化処理から選択した強化処理まで、変更の実行順序とは逆の順序で元に戻されます。前の例で考えてみると、処理 3 を選択した場合、最初に処理 1 の変更が元に戻され、次に処理 2 の変更が元に戻され、最後に処理 3 の変更が元に戻されます。
コード例 4-3 は、元に戻す処理で 2 つのマニフェストファイル項目を処理する際に生成される出力を示しています。
この例では、コピー処理が元に戻され、強化処理で追加されたファイルが削除されます。元に戻す処理の出力には、システムを復元する際に使用される実際のコマンドが示されるので、システムの構成の障害追跡が必要な場合は、そのプロセスを明確に把握して参照できます。
前回の強化処理が成功した以降に変更されたファイルが Solaris Security Toolkit によって検査されてこの検査が正常に完了する場合、すべての処理とその対応マニフェストファイルが処理されて変更が取り消されるまで元に戻す処理は継続します。
Solaris Security Toolkit ソフトウェアは、JASS_REPOSITORY 内のマニフェストファイルをすべて検索して個々の強制処理に関する情報を収集することに加え、次の処理も行います。
b. チェックサムファイルに不一致がある場合、通知を生成してログに記録する。
c. これらのファイルをどのように処理するかをユーザーに尋ねる。
5. 元に戻す処理で例外 (強化処理のあとに変更されたファイル) が検出された場合は、オプションの 1 つを入力します。
注 - Solaris Security Toolkit ソフトウェアは特定の例外ファイルに対してなされたユーザーのバックアップ、保持、および強制選択を記憶するため、元に戻す処理でそのファイルが次に例外となる際にファイルに対する選択を行う必要がありません。 |
以下に、例外と例外を処理するためのオプションを示す出力例を示します。
選択した元に戻す処理が Solaris Security Toolkit によって完了したところで、強化後に変更フラグが付いたファイルを確認するとともに、必要に応じてシステムの変更を行うことをお勧めします。ファイルの変更によってシステムが矛盾した状態になっている可能性があるため、それらの変更を手動で確認するまでは、システムを再起動しないでください。
注 - この例では、変更されたファイルは /etc/.login.BACKUP.JASS.20050715151817 という新しい名前で保存されます。元に戻す処理が完了したら、そのファイルを /etc/.login と比較して、さらに調整が必要であるかどうかを判断します。 |
Solaris OS 構成に加えた変更を有効にするためには、システムを再起動する必要があります。
Copyright© 2005, Sun Microsystems, Inc. All rights reserved.