この章では、システム上のファイルの目録を作成する方法と、それらの目録を使用してシステムの整合性をチェックする方法について説明します。基本監査報告機能 (BART) を使用すると、一定期間にわたってシステムのファイルレベルチェックを行い、システムを包括的に検証できます。
この章の内容は次のとおりです。
BART は、完全にファイルシステムレベルで稼働するファイル追跡ツールです。BART を使用すると、配備済みのシステムにインストールされているソフトウェアスタックのコンポーネントについての情報をすばやく簡単に、かつ確実に収集できます。このツールには、時間のかかる管理作業を簡易化し、システムネットワークの管理に伴う負担を大幅に減らす効果があります。
BART を使用することで管理者は、既知のベースラインと比較し、ファイルレベルで見てどのような変化がシステムに起きたかを確認できます。BART はベースラインの作成に使用できるほか、インストールと構成がすべて完了しているシステムの目録を制御するためにも使用できます。作成したこのベースラインをあとでシステムのスナップショットと比較すれば、システムのインストール以後にシステムで発生したファイルレベルの変化を示すレポートが生成されます。
bart コマンドは、標準の UNIX コマンドです。bart コマンドの出力は、あとで処理できるようにファイルにリダイレクトできます。
BART は、強力で柔軟、かつシンプルな構文に重点を置いて設計されています。このツールは、異なる時点で特定のシステムの目録を生成するのに利用できます。システムファイルの検証が必要になった場合には、新旧の目録を比較してレポートを生成できます。また、複数の類似したシステムの目録を生成し、システム同士の比較も行えます。BART と既存の監査ツールの違いは、追跡の対象となる情報と、レポートされる情報の両方に関して BART は柔軟であることです。
BART には、ほかにも次のようなメリットや利用法があります。
ファイルレベルで Solaris ソフトウェアを実行しているシステムを効率良く簡単にカタログ化できます。
どのファイルを監視するかを決定でき、必要に応じてプロファイルの変更も可能です。この柔軟性のおかげでローカルなカスタマイズを監視でき、ソフトウェアの再構成も簡単に効率良く行えます。
信頼できるソフトウェアだけをシステムで稼働させることができます。
一定期間におけるシステムのファイルレベルの変化を監視できます (ファイルレベルの監視を行うと、破損ファイルや異常なファイルを見つけやすくなる)。
システムパフォーマンスの問題の解決に役立ちます。
BART には、主要コンポーネントが 2 つ、オプションコンポーネントが 1 つ存在します。これらを次に示します。
BART 目録
BART レポート
BART 規則ファイル
bart create コマンドを使用して、特定の時点におけるシステムのファイルレベルスナップショットを作成できます。このコマンドでは、ファイルのカタログと、「目録」と呼ばれるファイル属性が出力されます。目録には、システム上のすべてのファイルまたは特定のファイルについての情報が示されます。これはファイルの属性についての情報が入ったものであり、MD5 チェックサムなどの一意の識別情報も含めることができます。MD5 チェックサムについての詳細は、md5(3EXT) のマニュアルページを参照してください。目録は、保存して、クライアントシステムとサーバーシステムの間で転送できます。
ファイルシステムのタイプが同じである場合を除き、BART がファイルシステムの境界を越えることはありません。この制約があるため、bart create コマンドの出力を予測しやすくなります。たとえば、引数を指定せずに bart create コマンドを実行すると、ルート (/) ディレクトリの下のすべてのファイルシステムがカタログ化されます。しかし、NFS ファイルシステム、TMPFS ファイルシステム、マウントされた CD-ROM はカタログ化されません。目録を作成するときは、ネットワーク上のファイルシステムは監査の対象としないでください。ネットワーク化されたファイルシステムを BART で監視すると、リソースを大量に消費し、ほとんど価値のない目録が生成されます。
BART 目録の詳細は、「BART 目録のファイル形式」を参照してください。
このレポートツールの入力情報は 3 つあります。 比較される目録 2 つと、ユーザーによって任意に指定される規則ファイル 1 つです。規則ファイルは、どのような相違が監視されるかを指定するものです。
2 つの目録、制御目録とテスト目録の比較には、bart compare コマンドを使用します。これらの目録は、bart create コマンドで使用するものと同じファイルシステム、オプション、および規則ファイルで用意する必要があります。
bart compare コマンドで出力されるのは、ファイルごとに 2 つの目録の相違を示したレポートです。「相違」は、両方の目録のためにカタログ化されている特定のファイルの属性変化です。2 つの目録間でファイルエントリの追加または削除があった場合も相違とみなされます。
相違を報告するときの制御レベルは 2 つあります。
目録を生成する時点
レポートを生成する時点
目録の生成は 2 つの目録間の相違を報告するよりも負担が大きいため、これらのレベルの制御は計画的に行われます。目録の作成が終わると、さまざまな規則ファイルを使用して bart compare コマンドを実行し、異なる視点から目録を比較できます。
BART レポートの詳細は、「BART レポート」を参照してください。
規則ファイルは、bart コマンドへの入力情報として任意に指定できるテキストファイルです。このファイルは、取り込みについての規則と除外についての規則を使用します。規則ファイルは、カスタム目録とカスタムレポートの作成に使用されます。このファイルには、どのファイル群をカタログ化するか、特定のファイル群のどの属性を監視するかを指定できます。目録を比較する場合、目録間の相違を報告するには規則ファイルが役立ちます。規則ファイルを使用することで、システム上のファイルについての特定の情報を効率良く収集できます。
規則ファイルは、テキストエディタで作成できます。次に、規則ファイルを使用して行える作業を示します。
bart create コマンドを使用し、システム上の全ファイルまたは特定のファイルについての情報を列挙する目録を作成します。
bart compare コマンドを使用し、ファイルシステムの特定の属性を監視するレポートを生成します。
目的に合わせて、複数の複数の規則ファイルを作成できます。しかし、規則ファイルを使用して目録を作成する場合は、それらの目録を比較する際に同じ規則ファイルを使用する必要があります。規則ファイルを使用して作成された目録を比較する時に同じ規則ファイルを使用しないと、bart compare コマンドは不正な相違を多数表示します。
規則ファイルには、ユーザーエラーの結果として構文エラーなどのあいまいな情報も含めることができます。規則ファイルに誤った情報が含まれている場合は、それらのエラーも報告されます。
規則ファイルを使用してシステム上の特定のファイルやファイル属性を監視する場合は、計画が必要です。規則ファイルを作成する前に、システム上のどのファイルとファイル属性を監視するかを決定してください。何を達成するかに基づき、目録の作成、目録の比較、あるいはこれら双方の目的に規則ファイルを利用できます。
BART 規則ファイルの詳細は、「BART 規則ファイルの書式」と、bart_rules(4) のマニュアルページを参照してください。
bart コマンドは、通常のユーザーとしても、スーパーユーザーとしても、あるいは Primary Administrator 役割を引き受けたユーザーとしても実行できます。ただし、bart コマンドを通常のユーザーとして実行する場合は、アクセス権のあるファイルのカタログ化と監視しか行えません (たとえば、自分のホーム内のファイルに関する情報のみ)。スーパーユーザーとして bart コマンドを実行する利点は、作成する目録に隠しファイルやプライベートファイルについての情報が含まれることです。これらの情報を監視することもあるでしょう。アクセス権を制限したファイル (/etc/passwd ファイルや /etc/shadow ファイル) に関する情報のカタログ化と監視が必要な場合は、bart コマンドをスーパーユーザーとして実行するか、あるいは同等の役割を引き受けてください。役割に基づくアクセス制御の実行についての詳細は、「RBAC の構成 (作業マップ)」を参照してください。
bart コマンドをスーパーユーザーとして実行した場合、その出力は誰にでも読み取れます。この出力には、プライベートであることを意図するファイル名も含まれる可能性があります。bart コマンドの実行時にスーパーユーザーになる場合には、出力を適切に保護してください。たとえば、アクセス権を制限した状態で出力ファイルを生成するオプションを使用します。
この章に示されている作業と例は、スーパーユーザーによって実行された bart コマンドを示しています。特に明記しない限り、bart コマンドをスーパーユーザーとして実行するかどうかは任意に選択できます。
システムの目録は、Solaris ソフトウェアの初期インストールが終わった直後に作成できます。このタイプの目録は、一定期間における同一システムの変化を比較するためのベースラインとなります。あるいは、この目録を使用し、異なるシステムの目録と比較することもできます。たとえば、ネットワーク上の各システムのスナップショットを作成し、各テスト目録を制御目録と比較する場合、テストシステムをベースライン構成と一致させるために必要な作業をすばやく判断できます。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
Solaris ソフトウェアのインストール後に制御目録を作成し、その出力をファイルにリダイレクトします。
# bart create options > control-manifest |
目録の検査対象としてルートディレクトリを指定します。規則で指定されるパスはすべて、このディレクトリからの相対パスとなるように変換されます。目録で報告されるパスはすべて、このディレクトリからの相対パスとなります。
カタログ化される個々のファイルの一覧 (コマンド行上で指定されるか、あるいは標準入力から読み取られる) を受け入れます。
この目録の規則ファイルの名前です。– を付けて -r オプションを使用すると、規則ファイルが標準入力から読み取られます。
ファイルリストに挙げられたすべての通常ファイルの署名を無効にします。このオプションは、パフォーマンスを上げる目的で使用できます。また、(システムログファイルの場合のように) ファイルリストの内容が変わる予定がある場合にも使用できます。
目録の内容を確認します。
あとで利用できるように目録を保存します。
目録にわかりやすい名前をつけてください。たとえば、システム名と目録が作成された日付を組み合わせます。
オプションをまったく指定せずに bart create コマンドを実行すると、システムにインストールされているファイルごとに情報がカタログ化されます。このタイプの目録は、元になるイメージから多数のシステムをインストールする場合のベースラインとして使用してください。また、同一のインストールが行われたかを確認する場合に、このタイプの目録を使用して比較を行うこともできます。
次に例を示します。
# bart create ! Version 1.0 ! Thursday, December 04, 2003 (16:17:39) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode / D 1024 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3fd9ea47 0 0 /.java D 512 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3f8dc04d 0 10 /.java/.userPrefs D 512 40700 user::rwx,group::---,mask:--- other:--- 3f8dc06b 010 /.java/.userPrefs/.user.lock.root F 0 100600 user::rw- group::---,mask:---,other:--- 3f8dc06b 0 10 - /.java/.userPrefs/.userRootModFile.root F 0 100600 user::rw-, group::---,mask:---,other:--- 3f8dc0a1 0 10 - . . . /var/sadm/pkg/SUNWdtmad/install/depend F 932 100644 user::rw-, group::r--,mask:r--,other:r-- 3c23a19e 0 0 - /var/sadm/pkg/SUNWdtmad/pkginfo F 594 100644 user::rw- group::r--,mask:r--,other:r-- 3f81e416 0 0 - /var/sadm/pkg/SUNWdtmad/save D 512 40755 user::rwx,group::r-x mask:r-x,other:r-x 3f81e416 0 0 /var/sadm/pkg/SUNWdtmaz D 512 40755 user::rwx,group::r-x mask:r-x,other:r-x 3f81e41b 0 0 /var/sadm/pkg/TSIpgxw/save D 512 40755 user::rwx group::r-x,mask:r-x,other:r-x 3f81e892 0 0 . . . |
各目録は、ヘッダーとエントリから構成されます。目録ファイルの各エントリは、ファイルタイプに応じて単一の行に示されます。たとえば、上記の出力における各目録エントリでは、タイプ F はファイルを示し、タイプ D はディレクトリを示します。また、サイズ、内容、ユーザー ID、グループ ID、およびアクセス権も表示されます。特殊文字を正しく処理するため、出力内のファイルエントリはコード化されたバージョンのファイル名でソートされます。この結果、すべてのエントリがファイル名をキーにして昇順に並べられます。標準でないファイル名 (改行文字やタブ文字が埋め込まれたものなど) については、ソート前にそれらの非標準文字が引用符で囲まれます。
! で始まる行には、目録についてのメタデータが示されてます。目録バージョン行には、目録の仕様バージョンが示されます。日付行には、目録が作成された日付が日付形式で示されます。date(1) のマニュアルページを参照してください。一部の行は、目録比較ツールによって無視されます。無視される行には、空の行や、空白しか入っていない行、# から始まるコメントなどがあります。
目録は、次に示す方法のいずれかでカスタマイズできます。
サブツリーを指定する
システム上の個々のサブツリーに目録を 1 つ作成するという方法を採ると、大きなディレクトリのすべての内容にそれぞれ目録を作成するよりも、特定のファイルの変化を効率良く監視できます。この方法では、システム上の特定のサブツリーのベースライン目録を作成し、その後そのサブツリーのテスト目録を定期的に作成できます。制御目録とテスト目録の比較には、bart compare コマンドを使用します。このオプションを使用すると、重要なファイルシステムを効率良く監視し、侵入者によって攻撃されたファイルがないかを確認できます。
ファイル名を指定する
全システムをカタログ化する目録の作成は時間がかかり、ディスクスペースや負担も大きくなるため、システム上の特定のファイルまたは特定のファイル群についての情報だけを表示する場合は、この bart コマンドオプションを使用することを推奨します。
規則ファイルを使用する
規則ファイルは、単一のシステム上の特定のファイルと特定のサブツリーに関する情報を表示するカスタム目録を作成する場合に利用できます。規則ファイルは、特定のファイル属性の監視にも使用できます。規則ファイルを使用して目録の作成と比較を行うと、複数のファイルまたはサブツリーの複数の属性を指定するという柔軟さが得られます。しかし、コマンド行では、作成する各目録または生成するレポートの全ファイルに適用される汎用的な属性定義しか指定できません。
どのファイルのカタログ化および監視を行うのかを決定します。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
Solaris ソフトウェアのインストール後、次に示すオプションのいずれかを使用してカスタム目録を作成します。
サブツリーを指定する。
# bart create -R root-directory |
ファイル名 (1 つまたは複数) を指定する。
# bart create -I filename... |
次に例を示します。
# bart create -I /etc/system /etc/passwd /etc/shadow |
規則ファイルを使用する。
# bart create -r rules-file |
目録の内容を確認します。
あとで利用できるように目録を保存します。
この例は、/etc/ssh サブツリーだけに含まれるファイルの情報が入った目録を作成する方法を示しています。
# bart create -R /etc/ssh ! Version 1.0 ! Saturday, November 29, 2003 (14:05:36) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode / D 512 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3f81eab9 0 3 /ssh_config F 861 100644 user::rw-,group::r--,mask:r--, other:r-- 3f81e504 0 3 422453ca0e2348cd9981820935600395 /ssh_host_dsa_key F 668 100600 user::rw-,group::---,mask:---, other:--- 3f81eab9 0 0 5cc28cdc97e833069fd41ef89e4d9834 /ssh_host_dsa_key.pub F 602 100644 user::rw-,group::r--,mask:r--, other:r-- 3f81eab9 0 0 16118c736995a4e4754f5ab4f28cf917 /ssh_host_rsa_key F 883 100600 user::rw-,group::---,mask:---, other:--- 3f81eaa2 0 0 6ff17aa968ecb20321c448c89a8840a9 /ssh_host_rsa_key.pub F 222 100644 user::rw-,group::r--,mask:r--, other:r-- 3f81eaa2 0 0 9ea27617efc76058cb97aa2caa6dd65a . . . |
この例は、システム上の /etc/passwd ファイルと /etc/shadow ファイルについての情報だけを表示する目録を作成する方法を示しています。
# bart create -I /etc/passwd /etc/shadow ! Version 1.0 ! Monday, December 15, 2003 (16:28:55) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode /etc/passwd F 542 100444 user::r--,group::r--,mask:r--, other:r-- 3fcfd45b 0 3 d6 84554f85d1de06219d80543174ad1a /etc/shadow F 294 100400 user::r--,group::---,mask:---, other:--- 3f8dc5a0 0 3 fd c3931c1ae5ee40341f3567b7cf15e2 |
比較として、同じシステム上の /etc/passwd ファイルと /etc/shadow ファイルに対して ls -al コマンドを実行した場合の標準出力を次に示します。
# ls -al /etc/passwd -r--r--r-- 1 root sys 542 Dec 4 17:42 /etc/passwd |
# ls -al /etc/shadow -r-------- 1 root sys 294 Oct 15 16:09 /etc/shadow |
この例は、/etc ディレクトリ内のファイルだけをカタログ化するために規則ファイルを使用して目録を作成する方法を示しています。この規則ファイルには、/etc/system ファイルの acl 属性の変化を監視するために bart compare コマンドによって使用される指示語も含まれます。
テキストエディタを使用し、/etc ディレクトリ内のファイルだけをカタログ化する規則ファイルを作成します。
# List information about all the files in the /etc directory. CHECK all /etc # Check only acl changes in the /etc/system file IGNORE all CHECK acl /etc/system |
規則ファイルの作成についての詳細は、「BART 規則ファイル」を参照してください。
作成した規則ファイルを使用して制御目録を作成します。
# bart create -r etc.rules-file > etc.system.control-manifest ! Version 1.0 ! Thursday, December 11, 2003 (21:51:32) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode /etc/system F 1883 100644 user::rw-,group::r--,mask:r--, other:r-- 3f81db61 0 3 |
システムに発生した変化を監視する時点でテスト目録を作成します。このテスト目録は、同じ bart オプションと同じ規則ファイルを使って制御目録と同じように用意してください。
同じ規則ファイルを使用し、目録を比較します。
この作業は、一定期間内で同一のシステムに起きるファイルレベルの変化を監視する場合に行なってください。このタイプの目録は、セキュリティー侵害を検出して破損したファイルや異常な状態のファイルを見つけたり、システムのパフォーマンスの問題を解決したりするのに便利です。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
Solaris ソフトウェアのインストール後、システム上で監視するファイルの制御目録を作成します。
# bart create -R /etc > control-manifest |
システムの変化を監視する任意の時点で、制御目録と同様の指定でテスト目録を作成します。
# bart create -R /etc > test-manifest |
制御目録をテスト目録と比較します。
# bart compare options control-manifest test-manifest > bart-report |
この比較の規則ファイルの名前です。– を付けて -r オプションを使用するのは、指示語が標準入力から読み取られることを意味します。
ユーザーは、コマンド行から汎用指示語 IGNORE を設定できます。
プログラムによる解析に対して地域対応化されていない標準的な出力を生成するプログラムモードです。
制御システムの bart create コマンドからの出力です。
テストシステムの bart create コマンドからの出力です。
BART レポートを調べ、異常がないかを確認します。
この例では、一定期間に /etc ディレクトリに発生した変化を監視します。このタイプの比較を行うと、システム上の重要ファイルが攻撃されていないかをすばやく確認できます。
制御目録を作成します。
# bart create -R /etc > system1.control.121203 ! Version 1.0 ! Friday, December 12, 2003 (08:34:51) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode / D 4096 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3fd9dfb4 0 3 /.cpr_config F 2236 100644 user::rw-,group::r--,mask:r--,other:r-- 3fd9991f 0 0 67cfa2c830b4ce3e112f38c5e33c56a2 /.group.lock F 0 100600 user::rw-,group::---,mask:---,other:--- 3f81f14d 0 1 d41 d8cd98f00b204e9800998ecf8427e /.java D 512 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3f81dcb5 0 2 /.java/.systemPrefs D 512 40755 user::rwx,group::r-x,mask:r-x, other:r-x 3f81dcb7 . . . |
/etc ディレクトリの変化を監視する時点で、テスト目録を作成します。
# bart create -R /etc > system1.test.121503 Version 1.0 ! Monday, December 15, 2003 (08:35:28) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode / D 4096 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3fd9dfb4 0 3 /.cpr_config F 2236 100644 user::rw-,group::r--,mask:r--,other:r-- 3fd9991f 0 0 67cfa2c830b4ce3e112f38c5e33c56a2 /.group.lock F 0 100600 user::rw-,group::---,mask:---,other:--- 3f81f14d 0 1 d41d8cd98f00b204e9800998ecf8427e /.java D 512 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3f81dcb5 0 2 /.java/.systemPrefs D 512 40755 user::rwx,group::r-x,mask:r-x, other:r-x 3f81dcb70 2 /.java/.systemPrefs/.system.lock F 0 100644 user::rw-,group::r-- ,mask:r--,other: r-- 3f81dcb5 0 2 d41d8cd98f00b204e9800998ecf8427e /.java/.systemPrefs/.systemRootModFile F 0 100644 user::rw-, group::r--,mask:r--, other:r-- 3f81dd0b 0 2 d41d8cd98f00b204e9800998ecf8427e . . . |
制御目録をテスト目録と比較します。
# bart compare system1.control.121203 system1.test.121503 /vfstab: mode control:100644 test:100777 acl control:user::rw-,group::r--,mask:r--,other:r-- test:user::rwx, group::rwx,mask:rwx,other:rwx |
上記の出力は、制御目録が作成されたあとに vfstab ファイルのアクセス権が変化したことを示しています。このレポートは、所有権、日付、内容などのファイル属性が変化していないかを確認するために使用できます。このタイプの情報をすぐに利用できるようにしておくと、ファイルを改ざんした可能性がある人物や、変化が起きた時点などを追跡しやすくなります。
システム同士の比較を行い、ベースラインシステムとほかのシステムの間にファイルレベルの相違がないかをすばやく確認できます。たとえば、ベースラインシステムに特定バージョンの Solaris ソフトウェアをインストールした場合で、ほかのシステムにも同一のパッケージがインストールされているかどうかを知りたいときには、それらのシステムの目録を作成し、続いてテスト目録を制御目録と比較できます。このタイプの比較では、制御システムと比較される各テストシステムについてファイルの内容の相違がすべて一覧表示されます。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
Solaris ソフトウェアのインストール後、制御目録を作成します。
# bart create options > control-manifest |
制御目録を保存します。
テストシステムで、同じ bart オプションを使用して目録を作成し、出力をファイルにリダイレクトします。
# bart create options > test1-manifest |
テスト目録に識別しやすい意味のある名前を付けます。
目録を比較する準備が整うまで、このテスト目録をシステムの中心的な場所に保存しておきます。
目録を比較する時点で、制御目録をテスト目録の場所へコピーするか、あるいはテスト目録を制御システムへコピーします。
次に例を示します。
# cp control-manifest /net/test-server/bart/manifests
テストシステムが NFS マウントされた状態でない場合は、FTP などの信頼性のある方法によって制御目録をテストシステムにコピーしてください。
制御目録をテスト目録と比較し、出力をファイルにリダイレクトします。
# bart compare control-manifest test1-manifest > test1.report |
BART レポートを調べ、異常がないかを確認します。
制御目録と比較を行いたいテスト目録ごとに手順 4 から 9 を繰り返します。
テストシステムごとに、同じ bart オプションを使用してください。
この例では、制御目録を異なるシステムのテスト目録と比較することによって /usr/bin ディレクトリの内容に起きた変化を監視する方法について説明します。
制御目録を作成します。
# bart create -R /usr/bin > control-manifest.121203 !Version 1.0 ! Friday, December 12, 2003 (09:19:00) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode / D 13312 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3fd9e925 0 2 /.s F 14200 104711 user::rwx,group::--x,mask:--x,other:--x 3f8dbfd6 0 1 8ec7e52d8a35ba3b054a6394cbf71cf6 /ControlPanel L 28 120777 - 3f81dc71 0 1 jre/bin/ControlPanel /HtmlConverter L 25 120777 - 3f81dcdc 0 1 bin/HtmlConverter /acctcom F 28300 100555 user::r-x,group::r-x,mask:r-x,other:r-x 3f6b5750 0 2 d6e99b19c847ab4ec084d9088c7c7608 /activation-client F 9172 100755 user::rwx,group::r-x,mask:r-x, other:r-x 3f5cb907 0 1 b3836ad1a656324a6e1bd01edcba28f0 /adb F 9712 100555 user::r-x,group::r-x,mask:r-x,other:r-x 3f6b5736 0 2 5e026413175f65fb239ee628a8870eda /addbib F 11080 100555 user::r-x,group::r-x,mask:r-x,other:r-x 3f6b5803 0 2 a350836c36049febf185f78350f27510 . . . |
制御システムと比較するシステムごとにテスト目録を作成します。
# bart create -R /usr/bin > system2-manifest.121503 ! Version 1.0 ! Friday, December 15, 2003 (13:30:58) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode / D 13312 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3fd9ea9c 0 2 /.s F 14200 104711 user::rwx,group::--x,mask:--x,other:--x 3f8dbfd6 0 1 8ec7e52d8a35ba3b054a6394cbf71cf6 /ControlPanel L 28 120777 - 3f81dc71 0 1 jre/bin/ControlPanel /HtmlConverter L 25 120777 - 3f81dcdc 0 1 bin/HtmlConverter /acctcom F 28300 100555 user::r-x,group::r-x,mask:r-x,other: r-x 3f6b5750 0 2 d6e99b19c847ab4ec084d9088c7c7608 . . . |
目録を比較する時点で、その目録を同じ場所にコピーします。
# cp control-manifest /net/system2.central/bart/manifests |
制御目録をテスト目録と比較します。
# bart compare control-manifest system2.test > system2.report /su: gid control:3 test:1 /ypcat: mtime control:3fd72511 test:3fd9eb23 |
上記の出力は、/usr/bin ディレクトリの su ファイルのグループ ID が制御システムのグループ ID と同じでないことを示しています。この情報は、異なるバージョンのソフトウェアがテストシステムにインストールされていないかということや、誰かがファイルを改ざんしていないかということなどの確認に便利です。
ここでは、コマンド行でファイル属性を指定することによって BART レポートをカスタマイズする方法を説明します。この作業はオプション (省略可能) です。システム上の全ファイルまたは特定のファイルについての情報を一覧表示するベースライン目録を作成すると、特定のディレクトリ、サブディレクトリ、またはファイル (1 つまたは複数) に起きた変化を監視する任意の時点で各種の属性を指定して bart compare コマンドを実行できます。コマンド行で各種のファイル属性を指定し、同一目録についてさまざまな比較を行うことができます。
監視するファイル属性を決定します。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
Solaris ソフトウェアのインストール後、制御目録を作成します。
変化を監視する時点で、テスト目録を作成します。
このテスト目録は制御目録と同様に作成してください。
目録を比較します。
次に例を示します。
# bart compare -i dirmtime,lnmtime,mtime control-manifest.121503 \ test-manifest.010504 > bart.report.010504 |
コンマは、コマンド行構文で指定する各属性を区切るために使用します。
BART レポートを調べ、異常がないかを確認します。
ここでは、bart compare コマンドの入力情報として規則ファイルを指定することにより BART レポートをカスタマイズする方法を説明します。この作業もオプション (省略可能) です。規則ファイルを使用すると、BART レポートをカスタマイズし、1 つ以上のファイルまたはサブツリーの複数の属性を柔軟に指定できます。また、異なる複数の規則ファイルを使用することで、同じ目録についてさまざまな比較を行えます。
Primary Administrator 役割を引き受けるか、スーパーユーザーになります。
Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。
監視するファイルとファイル属性を決定します。
テキストエディタを使用し、適切な指示語を指定して規則ファイルを作成します。
Solaris ソフトウェアのインストール後、作成済みの規則ファイルを使用して制御目録を作成します。
# bart create -r rules-file > control-manifest |
制御目録と同様に指定してテスト目録を作成します。
# bart create -r rules-file > test-manifest |
同じ規則ファイルを使用して、制御目録をテスト目録と比較します。
# bart compare -r rules-file control-manifest test-manifest > bart.report |
BART レポートを調べ、異常がないかを確認します。
次に示す規則ファイルには、bart create コマンドと bart compare コマンドの両方に適用される指示語が含まれています。この規則ファイルは、/usr/bin ディレクトリの内容についての情報を一覧表示するように bart create コマンドに指示します。さらに、このディレクトリのサイズと内容の変化だけを追跡するように bart compare コマンドに指示します。
# Check size and content changes in the /usr/bin directory. # This rules file only checks size and content changes. # See rules file example. IGNORE all CHECK size contents /usr/bin |
作成した規則ファイルを使用して制御目録を作成します。
# bart create -r bartrules.txt > usr_bin.control-manifest.121003 |
/usr/bin ディレクトリの変化を監視する時点で、テスト目録を作成します。
# bart create -r bartrules.txt > usr_bin.test-manifest.121103 |
同じ規則ファイルを使用して目録を比較します。
# bart compare -r bartrules.txt usr_bin.control-manifest \ usr_bin.test-manifest |
bart compare コマンドの出力を調べます。
/usr/bin/gunzip: add /usr/bin/ypcat: delete |
上記の出力では、bart compare コマンドによって /usr/bin ディレクトリにおける相違が報告されます。この出力は、/usr/bin/ypcat ファイルが削除されたことと、/usr/bin/gunzip ファイルが追加されたことを示しています。
この節では次の参考情報を示します。
目録ファイルの各エントリは、ファイルタイプに応じて単一の行に示されます。各エントリは、ファイルの名前である fname で始まります。ファイル名に使用された特殊文字が引き起こす解析上の問題を防ぐため、ファイル名はコード化されます。詳細は、「BART 規則ファイルの書式」を参照してください。
後続のフィールドは、次のファイル属性を表します。
ファイルの種類であり、次のような値となります。
B: ブロックデバイスノード
C: キャラクタデバイスノード
D: ディレクトリ
F: ファイル
L: シンボリックリンク
P: パイプ
S: ソケット
ファイルサイズ (バイト)。
ファイルのアクセス権を示す 8 進の数値。
ファイルの ACL 属性。ACL 属性を持つファイルの場合、acltotext() の出力が入ります。
このエントリの所有者の、数値で示したユーザー ID。
このエントリの所有者の、数値で示したグループ ID。
ディレクトリに最後に変化が起きた時点。1970 年 1 月 1 日の 00:00:00 UTC から数えた秒数で示されます。
リンクに最後に変化が起きた時点。1970 年 1 月 1 日の 00:00:00 UTC から数えた秒数で示されます。
ファイルに最後に変化が起きた時点。1970 年 1 月 1 日の 00:00:00 UTC から数えた秒数で示されます。
ファイルのチェックサム値。この属性が指定されるのは通常ファイルのみです。コンテキストのチェックを無効にした場合と、チェックサムが計算できない場合は、このフィールドの値は – になります。
シンボリックリンクのリンク先。
デバイスノードの値。この属性が使用されるのは、キャラクタデバイスファイルとブロックデバイスファイルのみです。
BART 目録についての詳細は、bart_manifest(4) のマニュアルページを参照してください。
bart コマンドの入力ファイルはテキストファイルです。これらのファイルは、目録に含められるファイルと、レポートに含められるファイル属性を指定する行から構成されます。この同じ入力ファイルは、両方の BART 機能で使用できます。#、空の行、空白を含む行は、ツールが無視します。
入力ファイルには、次に示す 3 種類の指示語が指定されます。
オプションのパターンマッチング修飾子を持つ subtree 指示語
CHECK 指示語
IGNORE 指示語
<Global CHECK/IGNORE Directives> <subtree1> [pattern1..] <IGNORE/CHECK Directives for subtree1> <subtree2> [pattern2..] <subtree3> [pattern3..] <subtree4> [pattern4..] <IGNORE/CHECK Directives for subtree2, subtree3, subtree4> |
すべての指示語は指定された順に読み取られますが、あとから指定された指示語が先に指定された指示語に優先して読み取られる可能性があります。
行ごとに subtree 指示語が 1 つ存在します。この指示語は、絶対パス名で始まり、そのあとに 0 個以上のパターンマッチング文が続く必要があります。
bart コマンドは、CHECK 文と IGNORE 文を使用して追跡または無視の対象となる属性を定義します。各属性にはキーワードが関連付けられます。
acl
all
contents
dest
devnode
dirmtime
gid
lnmtime
モード
mtime
size
type
uid
キーワード all は、すべてのファイル属性を意味します。
BART が規則ファイルに使用する記述言語は、標準に準拠していないファイル名を表現する標準の UNIX 引用構文です。埋め込まれたタブ、スペース、改行、特殊文字は、ツールがファイル名を読み取ることができるようにそれらの 8 進形式にコード化されます。この変動的な引用構文では、埋め込みのキャリッジリターンを含むファイル名などがコマンドパイプラインで正しく処理されません。規則記述言語を使用することで、シェル構文だけでは表現が難しい効率の悪い複雑なファイル名フィルタリング基準を表現できます。
BART 規則ファイルや、BART で使用される引用構文についての詳細は、bart_rules(4) のマニュアルページを参照してください。
デフォルトモードでは、次の例に示すように bart compare コマンドは、ディレクトリ変更のタイムスタンプ (dirmtime) を除きシステムにインストールされているすべてのファイルをチェックします。
CHECK all IGNORE dirmtime |
規則ファイルを指定すると、汎用指示語である CHECK all と IGNORE dirmtime がこの順で規則ファイルの先頭に自動的に付けられます。
次の終了値が返されます。
成功
ファイル処理時の致命的でないエラー (アクセス権問題など)
致命的なエラー (無効なコマンド行オプションなど)
レポーティングメカニズムとして、 詳細出力と、プログラムを考慮した出力の 2 種類を利用できます。
詳細出力はデフォルトの出力であり、地域対応化され、複数の行にわたって表示されます。詳細出力は国際化されたもので、ユーザーが内容を読み取ることができます。bart compare コマンドは、2 つのシステム目録を比較する時に、ファイル間の相違を示すリストを生成します。
次に例を示します。
filename attribute control:xxxx test:yyyy |
制御目録とテスト目録で相違があるファイルの名前。
比較された目録間で相違があるファイル属性の名前。xxxx は制御目録の属性値で、yyyy はテスト目録の属性値です。同じファイルの複数の属性に相違が見つかった場合、別々の行にそれぞれの相違が示されます。
次に、bart compare コマンドのデフォルト出力の例を示します。この例では、/etc/passwd ファイルでの属性の相違がチェックされています。この出力から、size、mtime、および contents 属性に変化があったことがわかります。
/etc/passwd: size control:74 test:81 mtime control:3c165879 test:3c165979 contents control:daca28ae0de97afd7a6b91fde8d57afa test:84b2b32c4165887355317207b48a6ec7 |
-bart compare コマンドの実行時に p オプションを指定すると、プログラムを考慮した出力が生成されます。この出力は、プログラム化された操作に適したフォームで生成されます。「プログラムを考慮した出力」はほかのプログラムで簡単に解析が可能であり、ほかのツールに対する入力情報として使用されるように設計されています。
次に例を示します。
filename attribute control-val test-val [attribute control-val test-val]* |
デフォルト形式における filename 属性に同じ
各ファイルの制御目録とテスト目録間で異なるファイル属性の説明
bart コマンドでサポートされる属性の一覧は、「規則ファイルの属性」を参照してください。
BART の詳細は、bart(1M) のマニュアルページを参照してください。