Audit Review 権利プロファイルが割り当てられている管理者として、praudit コマンドを使用すると、バイナリ形式の監査ファイルの内容を表示できます。
# praudit options
次の一覧に、オプションの一部を示します。これらのオプションのいずれかを –l オプションと組み合わせると、各レコードを 1 行で表示できます。
監査レコードを短い形式 (1 行ごとに 1 トークン) で表示します。
監査レコードを RAW 形式 (1 行ごとに 1 トークン) で表示します。
監査レコードを XML 形式 (1 行ごとに 1 トークン) で表示します。このオプションは、さらに処理する場合に役立ちます。
auditreduce コマンドから praudit 出力をパイプして、auditreduce コマンドと praudit コマンドを同時に使用することもできます。
使用例 5-7 監査レコードを短い形式で表示するこの例では、auditreduce コマンドで抽出されたログインおよびログアウトのイベントが短い形式で表示されています。
# auditreduce -c lo | praudit -s header,69,2,AUE_screenlock,,mach1,2010-10-14 08:02:56.348 -07:00 subject,jdoe,root,staff,jdoe,staff,856,50036632,82 0 mach1 return,success,0 sequence,1298使用例 5-8 監査レコードを RAW 形式で表示する
この例では、auditreduce コマンドで抽出されたログインおよびログアウトのイベントが RAW 形式で表示されています。
# auditreduce -c lo | praudit -r 21,69,2,6222,0x0000,10.132.136.45,1287070091,698391050 36,26700,0,10,26700,10,856,50036632,82 0 10.132.136.45 39,0,0 47,1298使用例 5-9 監査レコードを XML 形式に変換する
この例では、監査レコードを XML 形式に変換します。
# praudit -x 20100827183214.20100827215318.logins > 20100827.logins.xml
同様に、auditreduce コマンドでフィルタリングされた監査レコードを XML 形式で表示できます。
# auditreduce -c lo | praudit -x <record version="2" event="screenlock - unlock" host="mach1" iso8601="2010-10-14 08:28:11.698 -07:00"> <subject audit-uid="jdoe" uid="root" gid="staff" ruid="jdoe rgid="staff" pid="856" sid="50036632" tid="82 0 mach1"/> <return errval="success" retval="0"/> <sequence seq-num="1298"/> </record>
スクリプトを使えば、XML ファイルの内容を操作して目的の情報を抽出できます。
使用例 5-10 XML 形式の監査レコードをブラウザで読み取り可能にするxsltproc ツールを使用して XML ファイルのレコードを再フォーマットすると、任意のブラウザで読み取り可能にすることができます。このツールを使用すると、スタイルシートの定義がファイルの内容に適用されます。再フォーマットされた内容を別のファイルに挿入するには、次のように入力します。
# auditreduce -c lo | praudit -x | xsltproc - > logins.html
ブラウザでは、logins.html の内容が次のような形式で表示されます。
Audit Trail Data File: time: 2013-11-04 12:54:28.000 -08:00 Event: login - local time: 2013-11-04 12:54:28.418 -08:00 vers: 2 mod: host: host SUBJECT audit-uid: jdoe uid: jdoe gid: staff ruid: jdoe rgid: staff pid: 1534 sid: 3583012893 tid: 0 0 host RETURN errval: success retval: 0 Event: connect to RAD time: 2013-11-04 12:54:52.029 -08:00 vers: 2 mod: host: host SUBJECT audit-uid: jdoe uid: jdoe gid: staff ruid: jdoe rgid: staff pid: 1835 sid: 3583012893 tid: 0 0 host RETURN errval: success retval: 0 Event: role login time: 2013-11-08 08:42:52.286 -08:00 vers: 2 mod: host: host SUBJECT audit-uid: jdoe uid: root gid: root ruid: root rgid: root pid: 4265 sid: 3583012893 tid: 0 0 host RETURN errval: success retval: 0 Event: role logout time: 2013-11-08 08:43:37.125 -08:00 vers: 2 mod: host: host SUBJECT audit-uid: jdoe uid: root gid: root ruid: root rgid: root pid: 4265 sid: 3583012893 tid: 0 0 host RETURN errval: success retval: 0 Event: login - ssh time: 2013-12-23 12:24:37.292 -08:00 vers: 2 mod: host: host SUBJECT audit-uid: jsmith uid: jsmith gid: staff ruid: jsmith rgid: staff pid: 2002 sid: 39351741 tid: 14632 202240 host.example.com RETURN errval: success retval: 0 Event: role login time: 2013-12-23 12:25:07.345 -08:00 vers: 2 mod: fe host: host SUBJECT audit-uid: jsmith uid: root gid: root ruid: root rgid: root pid: 2023 sid: 39351741 tid: 14632 202240 host.example.com RETURN errval: failure retval: Permission denied Event: su time: 2013-12-23 17:19:24.031 -08:00 vers: 2 mod: na host: host RETURN errval: success retval: 0 Event: su logout time: 2013-12-23 17:19:24.362 -08:00 vers: 2 mod: na host: host RETURN errval: success retval: 0 Event: login - ssh time: 2013-12-23 17:27:21.306 -08:00 vers: 2 mod: host: host SUBJECT audit-uid: jsmith uid: jsmith gid: staff ruid: jsmith rgid: staff pid: 2583 sid: 3401970889 tid: 13861 5632 host.example.com RETURN errval: success retval: 0 Event: role login time: 2013-12-23 17:27:28.361 -08:00 vers: 2 mod: host: host SUBJECT audit-uid: jsmith uid: root gid: root ruid: root rgid: root pid: 2593 sid: 3401970889 tid: 13861 5632 host.example.com RETURN errval: success retval: 0 Event: role logout time: 2013-12-23 17:30:39.029 -08:00 vers: 2 mod: host: host SUBJECT audit-uid: jsmith uid: root gid: root ruid: root rgid: root pid: 2593 sid: 3401970889 tid: 13861 5632 host.example.com RETURN errval: success retval: 0 Other events使用例 5-11 pfedit レコードのみを表示する
フィルタを使用すると、監査トレールから特定のレコードのみを抽出して、表示できます。この例では、pfedit コマンドを使用して取得されたレコードがフィルタリングされています。サマリーファイルは 20130827183936.20130827232326.logins であるとします。pfedit コマンドを使用すると、AUE_admin_edit イベントが生成されます。したがって、pfedit レコードを抽出するには、次のコマンドを実行します。
auditreduce -m AUE_admin_edit 20130827183936.20130827232326.logins | praudit使用例 5-12 監査トレール全体を印刷する
印刷コマンドへのパイプを使用すると、監査トレール全体の出力がプリンタに送られます。セキュリティー上の理由から、プリンタへのアクセスは制限されています。
# auditreduce | praudit | lp -d example.protected.printer使用例 5-13 特定の監査ファイルを表示する
この例では、サマリーログインファイルを端末ウィンドウで調べます。
# cd /var/audit/audit_summary/logins # praudit 20100827183936.20100827232326.logins | more使用例 5-14 praudit 出力をスクリプトで処理する
praudit コマンドの出力は、必要に応じてテキストとして操作できます。たとえば、auditreduce コマンドでは選択できないレコードを選択することがあります。単純なシェルスクリプトを使用すると、praudit コマンドの出力を処理できます。次のサンプルスクリプトは、1 つの監査レコードを 1 行にまとめ、ユーザーが指定した文字列を検索したあと、監査ファイルを元の形式に戻します。
#!/bin/sh # ## This script takes an argument of a user-specified string. # The sed command prefixes the header tokens with Control-A # The first tr command puts the audit tokens for one record # onto one line while preserving the line breaks as Control-A # praudit | sed -e '1,2d' -e '$s/^file.*$//' -e 's/^header/^aheader/' \\ | tr '\\012\\001' '\\002\\012' \\ | grep "$1" \\ Finds the user-specified string | tr '\\002' '\\012' Restores the original newline breaks
スクリプトの ^a は、^ と a という 2 つの文字ではなく、Control-A です。この接頭辞によって、header トークンが、テキストとして表示される header という文字列と区別されます。
次のようなメッセージは、praudit コマンドを使用するために必要な権限がないことを示しています。
praudit: Can't assign 20090408164827.20090408171614.sys1.1 to stdin.
プロファイルシェルで praudit コマンドを実行します。Audit Review 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。