ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 の管理: セキュリティーサービス Oracle Solaris 11.1 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
10. Oracle Solaris のセキュリティー属性 (参照)
22. Kerberos エラーメッセージとトラブルシューティング
24. Kerberos アプリケーションの使用 (タスク)
監査ファイルのための ZFS ファイルシステムを作成する方法
デフォルトのプラグイン audit_binfile によって監査トレールが作成されます。このトレールには大量のデータが含まれる場合があります。次のタスクでは、さまざまな監査データを使用して作業を行う方法について説明します。
次のタスクマップは、監査レコードの選択、分析、および管理の手順を示しています。
|
auditrecord コマンドは、監査レコード定義を表示します。この定義によって、監査イベントの監査イベント番号、監査クラス、選択マスク、およびレコード書式が提供されます。
-a オプションを指定すると、すべての監査イベント定義が一覧表示されます。-h オプションを指定すると、この一覧が HTML 形式で格納されます。
% auditrecord -ah > audit.events.html
ヒント - この HTML ファイルをブラウザで表示する場合は、ブラウザの検索ツールを使用して特定の監査レコード定義を検索します。
詳細は、auditrecord(1M) のマニュアルページを参照してください。
例 28-27 プログラムの監査レコード定義の表示
この例では、login プログラムによって生成されたすべての監査レコードの定義が表示されます。ログインプログラムには、rlogin、telnet、newgrp、および Oracle Solaris の Secure Shell 機能が含まれています。
% auditrecord -p login ... login: logout program various See login(1) event ID 6153 AUE_logout class lo (0x0000000000001000) ... newgrp program newgrp See newgrp login event ID 6212 AUE_newgrp_login class lo (0x0000000000001000) ... rlogin program /usr/sbin/login See login(1) - rlogin event ID 6155 AUE_rlogin class lo (0x0000000000001000) ... /usr/lib/ssh/sshd program /usr/lib/ssh/sshd See login - ssh event ID 6172 AUE_ssh class lo (0x0000000000001000) ... telnet login program /usr/sbin/login See login(1) - telnet event ID 6154 AUE_telnet class lo (0x0000000000001000) …
例 28-28 監査クラスの監査レコード定義の表示
この例では、例 28-10 で作成された pf クラス内のすべての監査レコードの定義が表示されます。
% auditrecord -c pf pfexec system call pfexec See execve(2) with pfexec enabled event ID 116 AUE_PFEXEC class pf (0x0100000000000000) header path pathname of the executable path pathname of working directory [privileges] privileges if the limit or inheritable set are changed [privileges] privileges if the limit or inheritable set are changed [process] process if ruid, euid, rgid or egid is changed exec_arguments [exec_environment] output if arge policy is set subject [use_of_privilege] return
use_of_privilege トークンは、特権が使用されている場合は常に記録されます。privileges トークンは、制限または継承可能セットが変更された場合に記録されます。process トークンは、ID が変更された場合に記録されます。これらのトークンをレコードに含めるために、ポリシーオプションは必要ありません。
すべての監査ディレクトリの監査ファイルをマージすることによって、監査トレール全体の内容を分析できます。
注 - 監査トレール内のタイムスタンプは協定世界時 (UTC) であるため、日付と時間を意味あるものにするには、現在のタイムゾーンに変換する必要があります。これらのファイルを auditreduce コマンドではなく、標準ファイルコマンドで操作する場合は、常にこの点に注意してください。
始める前に
Audit Review 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
ディスク容量の制限に達する可能性を減らすために、このファイルシステムは、元のファイルを格納するために 「監査ファイルのための ZFS ファイルシステムを作成する方法」で作成したファイルシステムとは別の zpool 内に存在するようにしてください。
マージされた監査ファイルを格納するためのディレクトリに移動します。このディレクトリから、指定された接尾辞を含むファイルに監査レコードをマージします。ローカルシステム上の監査トレール内のすべてのディレクトリがマージされ、このディレクトリ内に配置されます。
# cd audit-storage-directory # auditreduce -Uppercase-option -O suffix
大文字オプションを auditreduce コマンドに指定すると、監査トレール内のファイルを操作できます。次の大文字オプションがあります。
監査トレール内のすべてのファイルを選択します。
完全ファイルだけを選択します。
特定の接尾辞を持つファイルを選択します。接尾辞はマシン名、またはサマリーファイルに指定した接尾辞です。
開始時間と終了時間を示す 14 文字のタイムスタンプおよび接尾辞 suffix が付いた監査ファイルを現在のディレクトリに作成します。
代替の監査ルートディレクトリである pathname 内の監査ファイルを読み取ることを指定します。
指定されたサーバーから監査ファイルを読み取ることを指定します。
オプションの完全な一覧については、auditreduce(1M) のマニュアルページを参照してください。
例 28-29 サマリーファイルに監査ファイルをコピーする
次の例では、System Administrator 権利プロファイルが割り当てられた管理者が、監査トレールのすべてのファイルを別のファイルシステム上のマージされたファイルにコピーします。/var/audit/storage ファイルシステムは、監査のルートファイルシステムである /var/audit ファイルシステムとは別のディスク上にあります。
$ cd /var/audit/storage $ auditreduce -A -O All $ ls /var/audit/storage/*All 20100827183214.20100827215318.All
次の例では、完全なファイルのみが、監査トレールから、マージされたファイルにコピーされます。完全パスは、-0 オプションの値として指定されます。パスの最後のコンポーネント Complete は、接尾辞として使用されます。
$ auditreduce -C -O /var/audit/storage/Complete $ ls /var/audit/storage/*Complete 20100827183214.20100827214217.Complete
次の例では、-D オプションを追加することによって、元の監査ファイルが削除されます。
$ auditreduce -C -O daily_sys1.1 -D sys1.1 $ ls *sys1.1 20100827183214.20100827214217.daily_sys1.1
調べる監査レコードをフィルタリングすることができます。フィルタリングオプションの一覧については、auditreduce(1M) のマニュアルページを参照してください。
始める前に
Audit Review 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
auditreduce -lowercase-option argument [optional-file]
小文字オプションが必要とする特定の引数。たとえば、-c オプションは、ua などの監査クラスの argument を必要とします。
特定の日付のイベントをすべて選択します。argument の日付の形式は、yyyymmdd です。ほかの日付オプション -b と -a は、特定の日付の前と後のイベントを選択します。
特定のユーザーのイベント属性をすべて選択します。argument はユーザー名です。もう 1 つのユーザーオプション -e は、実効ユーザー ID のイベント属性をすべて選択します。
事前選択された監査クラス内のイベントをすべて選択します。argument は監査クラス名です。
特定の監査イベントのインスタンスをすべて選択します。argument は監査イベントです。
オブジェクトタイプによって選択します。このオプションは、ファイル、グループ、ファイル所有者、FMRI、PID、およびその他のオブジェクトタイプによって選択するために使用します。
監査ファイルの名前です。
オプションの完全な一覧については、auditreduce(1M) のマニュアルページを参照してください。
例 28-30 監査ファイルを結合して削減する
auditreduce コマンドは、入力ファイルを結合するときに、関連性の少ないレコードを除外できます。たとえば、auditreduce コマンドを使用して、1 か月以上経過した監査ファイルから、ログインレコードとログアウトレコード以外のレコードを削除することができます。監査トレール全体が必要になった場合は、バックアップメディアから監査トレールを復元します。
# cd /var/audit/audit_summary # auditreduce -O lo.summary -b 20100827 -c lo; compress *lo.summary
例 28-31 ユーザー監査レコードをサマリーファイルにコピーする
この例では、特定のユーザーの名前を含む監査トレール内のレコードがマージされます。-e オプションを指定すると実効ユーザーが検索されます。-u オプションを指定すると、ログインユーザーが検索されます。
$ cd /var/audit/audit_summary $ auditreduce -e tamiko -O tamiko
このファイル内の特定のイベントを検索できます。次の例では、2010 年 9 月 7 日にユーザーがログインした時間が確認されます。接尾辞にユーザーの名前が付いたファイルだけが確認されます。日付の短い形式は、yyyymmdd です。
# auditreduce -M tamiko -O tamikolo -d 20100907 -u tamiko -c lo
例 28-32 選択レコードを 1 つのファイルにコピーする
この例では、特定の日のログインおよびログアウトレコードが監査トレールから選択されます。これらのレコードは、ターゲットファイルにマージされます。ターゲットファイルは、監査ルートディレクトリを含むファイルシステム以外のファイルシステムに書き込まれます。
# auditreduce -c lo -d 20100827 -O /var/audit/audit_summary/logins # ls /var/audit/audit_summary/*logins /var/audit/audit_summary/20100827183936.20100827232326.logins
praudit コマンドを使用すると、バイナリ監査ファイルの内容を表示できます。auditreduce コマンドから出力をパイプしたり、特定の監査ファイルを読み取ったりできます。さらに処理する場合に -x オプションが役立ちます。
始める前に
Audit Review 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
次の例は、同じ監査イベントからの praudit 出力を表示します。監査ポリシーは、sequence トークンを含むように設定されています。
praudit -s コマンドを使用して、短い書式で 1 行につき 1 トークンの監査レコードを表示します。-l オプションを指定して、1 行に各レコードを配置します。
$ 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
praudit -r コマンドを使用して、監査レコードの raw 書式で 1 行につき 1 トークンの監査レコードを表示します。-l オプションを指定して、1 行に各レコードを配置します。
$ 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
praudit -x コマンドは、監査レコードを XML 形式 (1 行に 1 トークン) で表示します。-l オプションを指定して、1 レコードの XML 出力を 1 行に配置します。次の表示は、2 行の出力をこの印刷ページに合わせて分割しています。
$ 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>
例 28-33 監査トレール全体を印刷する
印刷コマンドへのパイプを使用すると、監査トレール全体の出力がプリンタに送られます。セキュリティー上の理由から、プリンタへのアクセスは制限されています。
# auditreduce | praudit | lp -d example.protected.printer
例 28-34 特定の監査ファイルを表示する
この例では、サマリーログインファイルを端末ウィンドウで調べます。
# cd /var/audit/audit_summary/logins # praudit 20100827183936.20100827232326.logins | more
例 28-35 監査レコードを XML 形式に変換する
この例では、監査レコードを XML 形式に変換します。
# praudit -x 20100827183214.20100827215318.logins > 20100827.logins.xml
XML ファイルは、ブラウザで表示できます。スクリプトを使えば、XML ファイルの内容を操作して目的の情報を抽出できます。
例 28-36 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 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
異常なシステム中断が発生した場合、監査サービスは、監査ファイルがまだ開いている状態で終了します。または、ファイルシステムにアクセスできなくなり、システムが強制的に新しいファイルシステムに切り替えられます。このような場合、その監査ファイルは監査レコードとして使用されなくなりますが、監査ファイルの終了タイムスタンプとして文字列 not_terminated が付いたままになります。auditreduce -O コマンドを使用して、ファイルに正しいタイムスタンプを付けます。
始める前に
Audit Review 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
# ls -R1t audit-directory*/* | grep not_terminated
サブディレクトリ内のファイルを一覧表示します。
最新のファイルからもっとも古いファイルの順で一覧表示します。
1 列でファイルを一覧表示します。
古いファイルの名前を auditreduce -O コマンドに指定します。
# auditreduce -O system-name old-not-terminated-file
# rm system-name old-not-terminated-file
例 28-37 閉じた not_terminated 監査ファイルを整理する
次の例では、not_terminated ファイルを検索し、名前を変更して、元のファイルを削除します。
ls -R1t */* | grep not_terminated …/egret.1/20100908162220.not_terminated.egret …/egret.1/20100827215359.not_terminated.egret # cd */egret.1 # auditreduce -O egret 20100908162220.not_terminated.egret # ls -1t 20100908162220.not_terminated.egret Current audit file 20100827230920.20100830000909.egret Cleaned up audit file 20100827215359.not_terminated.egret Input (old) audit file # rm 20100827215359.not_terminated.egret # ls -1t 20100908162220.not_terminated.egret Current audit file 20100827230920.20100830000909.egret Cleaned up audit file
新しいファイルの開始タイムスタンプは、not_terminated ファイル内にある最初の監査イベントの時間を反映します。終了タイムスタンプは、そのファイル内にある最後の監査ファイルの時間を反映します。
セキュリティーポリシーですべての監査データが保存される必要がある場合は、監査レコードの消失を回避します。
始める前に
root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
p_minfree 属性を使用します。
ディスク容量が最小空き容量サイズまでいっぱいになると、audit_warn 電子メールエイリアスによって警告が送信されます。例 28-17 を参照してください。
ファイルをオフラインのメディアにバックアップして、監査ファイルを保管します。これらのファイルを保存ファイルシステムに移動することもできます。
syslog ユーティリティーを使用してテキスト監査ログを収集している場合は、テキストログを保管します。詳細は、logadm(1M) のマニュアルページを参照してください。
監査レコードの解釈に必要な情報を、監査トレールとともに格納します。少なくとも、passwd、group、および hosts ファイルを保存します。また、audit_event および audit_class ファイルも保管することがあります。
監査ファイル専用の ZFS ファイルシステムでは、圧縮によってファイルが大幅に縮小されます。例については、「専用ファイルシステム上の監査ファイルを圧縮する方法」を参照してください。
『Oracle Solaris 11.1 の管理: ZFS ファイルシステム』の「ZFS の圧縮、複製解除、暗号化のプロパティー間の関連」も参照してください。
監査トレールからサマリーファイルを抽出するには、auditreduce コマンドのオプションを使用します。サマリーファイルには、指定された種類の監査イベントのレコードだけが含まれます。サマリーファイルを抽出するには、例 28-30 および例 28-32 を参照してください。