ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
マニュアルページセクション 1M: システム管理コマンド Oracle Solaris 11.1 Information Library (日本語) |
- 監査トレールファイル内の監査レコードのマージと選択
auditreduce [options] [audit-trail-file]...
auditreduce を使用して、監査トレールファイル内のレコードを選択したりマージしたりできます。監査ファイルは、1 つのマシンからでも複数のマシンからでもかまいません。
マージ機能では、1 つ以上の入力監査トレールファイル内の監査レコードが一緒に単一の出力ファイルにマージされます。監査トレールファイル内のレコードは時系列順 (古いものが最初) にソートされているものと仮定され、出力ファイル内でこの順序が auditreduce によって維持されます。
auditreduce は特に指示しないかぎり、ディレクトリ構造 audit_root_dir/* (監査ルートの構造の詳細については audit.log(4) を参照) 内のすべての監査トレールファイルから成る監査トレール全体をマージします。-R または -S オプションで指定しないかぎり、audit_root_dir はデフォルトで /var/audit になります。ファイル選択オプションを使用することで、これらのファイルのサブセット、別のディレクトリ内のファイル、またはコマンド行で明示的に指定されたファイルを選択できます。
選択機能によって、監査レコードの内容 (レコード内容の詳細については audit.log(4) を参照) に関連するさまざまな条件に基づいてレコードを選択できます。レコードが選択されるには、レコード選択オプションの条件をすべて満たす必要があります。
コマンド行で指定されない監査トレールファイルは、監査トレールファイル名形式に準拠している必要があります。監査システムによって生成されたファイルはすでにこの形式になっています。auditreduce によって生成される出力ファイル名はこの形式です。それを次に示します。
start-time. end-time. suffix
ここで、start-time はファイルが開かれた時間を表す 14 文字のタイムスタンプ、end-time はファイルが閉じられた時間を表す 14 文字のタイムスタンプ、suffix はその監査トレールファイルを生成したマシンの名前、またはその他意味のある接尾辞 (たとえば、ファイルに多数のマシンからのレコードが結合されたグループが含まれる場合は all など) です。end-time は、ファイルがまだ監査システムによって書き込まれていることを示すリテラル文字列 not_terminated の場合があります。タイムスタンプの形式は yyyymmddhhmmss (年、月、日、時、分、秒) です。タイムスタンプは UTC (Coordinated Universal Time) です。
ファイル選択オプションは、どのファイルを処理するかや特別な処理の種類を示します。
入力ファイル内のすべてのレコードが、タイムスタンプにかかわらず選択されます。このオプションは実質的に、-a、-b、および -d オプションを無効にします。これは、-D オプションを使って入力ファイルを処理後に削除する場合に、レコードが失われるのを防ぐのに役立ちます。ただし、レコードが別のオプションのために選択されなかった場合、-A はそれをオーバーライドしません。
完全なファイルのみを処理します。ファイル名 end-time タイムスタンプが not_terminated であるファイルは処理されません (そのようなファイルは現在監査システムによって書き込まれている)。これは、-D を使って入力ファイルを処理後に削除する場合に、レコードが失われるのを防ぐのに役立ちます。コマンド行で指定されたファイルには適用されません。
入力ファイルを読み取ったあと、実行全体が成功した場合に削除します。ファイルの読み取り中に auditreduce によってエラーが検出された場合、そのファイルは削除されません。-D を指定すると、-A、-C、および -O も指定されたものとみなされます。suffix は -O オプションに渡されます。このため、すべてのレコードが書き込まれること、完全なファイルのみが処理されること、およびレコードは削除される前にファイルに書き込まれることが保証され、監査レコードが失われるのを防ぐのに役立ちます。コマンド行に -D と -O の両方を指定する場合は、指定順序が重要になります。あとのほうで指定されたものに関連付けられた suffix が有効になります。
machine をファイル名接尾辞として持つファイルからレコードを選択できます。-M を指定しない場合、すべてのファイルが接尾辞にかかわらず処理されます。-M を使用することで、多数のマシンからの結合されたレコードを含み、共通接尾辞 (all など) を持つファイルから、レコードを選択することもできます。
新しいモードでオブジェクトを選択します。このフラグは、下位互換性を維持するため、デフォルトでオフになっています。既存の古いモードで -e、-f、-g、-r、または -u フラグを指定した場合、それらの ID で実行されたアクションが選択されるだけでなく、それらの ID が所有するオブジェクトも選択されます。新しいモードでの実行時はアクションのみが選択されます。オブジェクトを選択するには、-o オプションを使用する必要があります。
現在の audit_root_dir 内で、指定された接尾辞を持つファイルに出力ストリームを転送します。suffix には完全なパス名を含めることもできますが、その場合、末尾のコンポーネントが接尾辞と解釈され、その前にタイムスタンプが置かれ、その前にパス名の残りが置かれます。-O オプションを指定しなかった場合、出力は標準出力に送られます。auditreduce によってファイル名内にタイムスタンプが置かれる場合、マージ内の最初と最後のレコードの時間が start-time、end-time として使用されます。
非出力。入力ファイルのエラーに関する通知を抑制します。
代替監査ルートディレクトリ audit_root_dir のパス名として pathname を指定します。したがって、デフォルトで /var/audit が使用される代わりに、pathname/* が検査されます。
注 - いかなる非大域ゾーンのルートファイルシステムも -R で参照しないでください。この操作によって、大域ゾーンのファイルシステムを損傷したり、大域ゾーンのセキュリティを損ねたり、非大域ゾーンのファイルシステムを損傷する可能性があります。zones(5) を参照してください。
このオプションを使用すると、auditreduce は監査トレールファイルを特定の場所 (specific_directory) から読み取ります。specific_directory は通常は監査ルートのサブディレクトリの名前として解釈されるので、auditreduce は audit_root_dir/specific_directory 内で監査トレールファイルを検索します。ただし、specific_directory にバックスラッシュ文字 (/) が含まれている場合、監査ルートに必ずしも含まれていないディレクトリの名前になります。この場合、specific_directory が調査されます。このオプションを使用することで、アーカイブファイルを /var/audit のようなディレクトリ構造内に物理的に置かなくても、それらのファイルを容易に操作できます。
冗長。各ファイルの名前を開くときに表示し、出力ストリームに書き込まれた合計レコード数を表示します。
次に一覧表示したレコード選択オプションは、auditreduce によって生成される出力ファイルにどのレコードを書き込むかを示すために使用します。
同じタイプの引数を複数指定することはできません。
date-time 以降に発生したレコードを選択します。date-time 引数については、後述の「オプション引数」を参照してください。date-time はローカル時間です。-a オプションと -b オプションを一緒に使用すれば範囲を指定できます。
date-time より前に発生したレコードを選択します。
監査クラスでレコードを選択します。audit-classes に指定された監査クラスにマップされたイベントを含むレコードが、選択されます。監査クラス名は audit_class(4) で定義されます。audit-classes は、audit_flags(5) で説明されている audit flags を含むコンマ区切りリストでもかまいません。audit flags を使用して、成功条件と失敗条件に基づいてレコードを選択できます。
特定の日 (指定された日の 00:00:00 から始まって 23:59:59 で終わる 24 時間の期間) に発生したレコードを選択します。指定する日はローカル時間です。引数の時間部分は、指定されていても無視されます。その日のタイムスタンプを持つレコードが選択されます。time に時、分、または秒が指定されていても、それらは無視されます。-d を -a や -b と一緒に使用することはできません。
指定された effective-user を含むレコードを選択します。
指定された effective-group を含むレコードを選択します。
指定された real-group を含むレコードを選択します。
指定された subject-ID (subject-ID はプロセス ID) を含むレコードを選択します。
指定されたラベル (またはラベル範囲) (後述の「オプション引数」を参照) を含むレコードを選択します。このオプションを使用できるのは、システムが Trusted Extensions で構成されている場合だけです。
指定された event を含むレコードを選択します。event は、リテラル文字列または event 番号です。
オブジェクトタイプによってレコードを選択します。一致が起こるのは、指定された object_type を記述する情報がレコードに含まれていて、オブジェクト ID が objectID_value で指定された値に等しい場合です。使用可能なオブジェクトタイプと値は次のとおりです。
使用済みの承認に関する情報を含むレコードを選択します。承認名の末尾のピリオドは、承認がワイルドカードであることを意味し、より限定的に使用される承認オブジェクトを含むレコードが選択されます。
指定された pathname (pathname は正規表現のコンマ区切りリスト) のファイルシステムオブジェクトを含むレコードを選択します。正規表現の前にチルド (~) が付いている場合、正規表現に一致するファイルが出力から除外されます。たとえば、オプション file=~/usr/openwin,/usr,/etc の場合、/usr または /etc に含まれるすべてのファイルから /usr/openwin 内のファイルを除いたものが選択されます。auditreduce は正規表現を左から右に処理し、ファイルが選択されているまたは除外されているとわかった時点で停止するため、正規表現の順番が重要です。したがって、オプション file=/usr, /etc, ~/usr/openwin の場合、/usr 内のすべてのファイルと /etc 内のすべてのファイルが選択されます。/usr/openwin 内のファイルは、正規表現 /usr が先に一致するため、除外されません。シェルがチルドを展開しないように、pathname を引用符で囲むことに注意を払うべきです。
所有するグループが group であるファイルシステムオブジェクトを含むレコードを選択します。
所有するユーザーが user であるファイルシステムオブジェクトを含むレコードを選択します。
指定された service instance の障害管理リソース識別子 (FMRI) オブジェクトを含むレコードを選択します。smf(5) を参照してください。
指定された ID (ID はメッセージキュー ID) を持つメッセージキューオブジェクトを含むレコードを選択します。
所有するまたは作成するグループが group であるメッセージキューオブジェクトを含むレコードを選択します。
所有するまたは作成するユーザーが user であるメッセージキューオブジェクトを含むレコードを選択します。
指定された ID (ID はプロセス ID) を持つプロセスオブジェクトを含むレコードを選択します。プロセスは、シグナルのレシーバであるときはオブジェクトです。
実グループまたは実効グループが group であるプロセスオブジェクトを含むレコードを選択します。
実ユーザーまたは実効ユーザーが user であるプロセスオブジェクトを含むレコードを選択します。
指定された ID (ID はセマフォー ID) を持つセマフォーオブジェクトを含むレコードを選択します。
所有するまたは作成するグループが group であるセマフォーオブジェクトを含むレコードを選択します。
所有するまたは作成するユーザーが user であるセマフォーオブジェクトを含むレコードを選択します。
指定された ID (ID は共有メモリー ID) を持つ共有メモリーオブジェクトを含むレコードを選択します。
所有するまたは作成するグループが group である共有メモリーオブジェクトを含むレコードを選択します。
所有するまたは作成するユーザーが user である共有メモリーオブジェクトを含むレコードを選択します。
指定された port_number または指定された machine (machine は hosts(4) で定義されたマシン名) のソケットオブジェクトを含むレコードを選択します。
指定された名前のユーザーオブジェクトを含むレコードを選択します。ユーザーオブジェクトは一般に、ユーザーに対する管理アクションで指定されます。
指定された real-user を含むレコードを選択します。
指定された session-id を含む監査レコードを選択します。
指定された audit-user を含むレコードを選択します。
指定されたゾーン名からのレコードを選択します。ゾーン名選択では大文字と小文字が区別されます。
コマンド行に 1 つ以上の filename 引数がある場合、指定されたファイルだけが処理されます。この方法で指定するファイルは、監査トレールファイル名形式に準拠する必要はありません。ただし、指定されたファイルの処理時に -M、-S、および -R を使用してはいけません。filename が「-」の場合は標準入力から入力が取得されます。
audit.log(4) で定義された監査トレールファイル。コマンド行で指定されない監査トレールファイルは、監査トレールファイル名形式に準拠している必要があります。auditreduce の出力として生成される監査トレールファイルもこの形式です。形式は次のとおりです。
start-time . end-time . suffix
start-time はファイルが開かれた時間を示す 14 文字のタイムスタンプ、end-time はファイルが閉じられた時間を示す 14 文字のタイムスタンプです。end-time は、ファイルが監査デーモンによってまだ書き込まれているか、ファイルが適切に閉じられなかった (システムクラッシュまたは突然の停止が発生した) ことを示すリテラル文字列 not_terminated でもかまいません。suffix は、監査トレールファイルを生成したマシンの名前 (またはその他の意味のある接尾辞。たとえば、多数のマシンからのレコードが結合されたグループが監査トレールファイルに含まれている場合、all が適切な接尾辞) です。
-a、-b、および -d の date-time 引数には 2 つの形式があります。絶対 date-time の形式は次のとおりです。
yyyymmdd [ hh [ mm [ ss ]]]
ここで、yyyy は年 (もっとも古い値は 1970) を指定し、mm は月 (01 - 12)、dd は日 (01 - 31)、hh は時 (00 - 23)、,mm は分 (00 - 59)、ss は秒 (00 - 59) です。hh、mm、および ss のデフォルトは 00 です。
オフセットは +n d|h|m|s として指定できます (n は単位の数、タグ d、h、m、s はそれぞれ日、時、分、秒を表します)。オフセットは開始時間からの相対値です。したがって、この形式は -b オプションでのみ使用できます。
audit_event(4) に含まれるリテラル文字列またはイベント番号。audit_event ファイル内で見つからない event は無効とみなされます。
group(4) に含まれるリテラル文字列またはグループ ID 番号。group ファイル内で見つからない group は無効とみなされます。group は負でもかまいません。
1 つの MAC ラベルまたは 2 つの有効な MAC ラベルの範囲のリテラル文字列表現。範囲を指定するには、x;y (x と y は有効な MAC ラベル) を使用します。x と y に完全に含まれるレコードのみが選択されます。x または y が省略された場合は、それぞれ ADMIN_LOW または ADMIN_HIGH がデフォルトで使用されます。範囲を指定する際には引用符を使用する必要があります。
パス名を記述する正規表現。
passwd(4) に含まれるリテラルユーザー名または順序数ユーザー ID。passwd ファイル内で見つからないユーザー名は無効とみなされます。user は負でもかまいません。
例 1 auditreduce を使用する
praudit(1M) は、監査レコードを人間が読める形式で表示するために利用できます。
これは、監査トレール全体を人間が読める形式で表示します。
% auditreduce | praudit
すべての監査トレールファイルを 1 つの大きなファイルに結合する場合、レコードが 2 回現れないように元のファイルを削除するのが望ましい場合があります。
% auditreduce -V -D /var/audit/combined/all
これは、1988 年 4 月 13 日にユーザー milner が行なったことを表示します。出力は、人間が読める形式で標準出力に表示されます。
% auditreduce -d 19880413 -u milner | praudit
前の例では、milner が忙しかった場合には、大きなサイズのデータが生成される可能性があります。おそらく、ログインとログアウトの回数だけを調べたほうが見やすくなります。-c オプションは、指定されたクラスからレコードを選択します。
% auditreduce -d 19880413 -u milner -c lo | praudit
4 月 13 日、14 日、および 15 日の milner のログイン/ログアウトアクティビティーを表示するには、次を使用します。結果は、現在の作業ディレクトリ内のファイルに保存されます。出力ファイルの名前の suffix は milnerlo、接頭辞は対応するタイムスタンプです。また、-c オプションで長形式の名前が使用されています。
% auditreduce -a 19880413 -b +3d -u milner -c login_logout -O milnerlo
4 月 13 日、14 日、および 15 日の milner のファイルシステムに関する動きをたどる場合は、chdir レコードタイプを表示できます。前の例と同じ時間範囲を得るには、その範囲のあとの日を -b 時間として指定する必要があります。これは、19880416 はデフォルトでその日の真夜中、それより前のレコードは範囲の最後の日 0415 に当たるからです。
% auditreduce -a 19880413 -b 19880416 -u milner -m AUE_CHDIR | praudit
次の例では、監査レコードがサマリー形式 (ログイン/ログアウトレコードのみ) で収集されます。レコードは、選択されたレコードが監査ルート内で 2 回存在しないようにするために、通常の監査ルートではなくディレクトリ内のサマリーファイルに書き込まれています。
% auditreduce -d 19880330 -c lo -O /var/audit/audit_summary/logins
ユーザー ID 9944 のアクティビティーが確認されたけれども、そのユーザーがシステム管理者に知られていない場合、次の例のコマンドを使って監査トレールの全体を検索し、そのユーザーによって生成されたレコードを見つけます。auditreduce は、ID 9944 の現在の有効性をシステムに問い合わせ、現在アクティブでない場合には警告メッセージを表示します。
% auditreduce -O /var/audit/audit_suspect/user9944 -u 9944
大域ゾーンのみの監査ログを取得するには:
% auditreduce -z global
監査トレールを格納する際のデフォルトの場所
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
コマンド呼び出しは安定しています。バイナリファイル形式は安定しています。バイナリファイルの内容は不安定です。
praudit(1M), audit.log(4), audit_class(4), group(4), hosts(4), passwd(4), attributes(5), audit_flags(5), smf(5)
『Oracle Solaris 11.1 の管理: セキュリティーサービス』の監査に関するセクションを参照してください。
auditreduce は、コマンド行エラーが発生した場合にエラーメッセージを表示してから終了します。auditreduce は、実行中に致命的エラーが発生した場合、それを説明するメッセージを表示してから終了します。この場合、出力ファイルが不整合な状態になっている (トレーラのない、または不完全に書き込まれたレコード) 可能性があるため、auditreduce は終了前に警告メッセージを表示します。呼び出しが成功すると 0 が返され、呼び出しが失敗すると 1 が返されます。
auditreduce は多数の入力ファイルを処理する可能性があるため、開いたファイルに関するマシン全体の制限を超過する可能性があります。これが起こった場合、auditreduce はその効果へのメッセージを表示し、どのくらいのファイルがあるかに関する情報を提供したあと終了します。
auditreduce の診断メッセージでレコードのタイムスタンプが表示される場合、その時間はローカル時間です。一方、ファイル名が表示される場合、そのタイムスタンプは UTC です。
レコード選択オプションの論理積、論理和、否定、およびグループ化を許可することをお勧めします。
-z オプションは、監査ポリシー zonename が設定されている場合にのみ使用するようにしてください。zonename のトークンがない場合、レコードは選択されません。