監査トレールを管理することによって、ネットワーク上のユーザーの動作を監視することができます。監査プロセスを行うと、大量のデータが生成される可能性があります。次の手順では、さまざまな監査データを使用して作業を行う方法について説明します。
次の表は、この節で説明する操作の一覧です。
作業 |
説明 |
参照先 |
---|---|---|
監査レコードの書式の表示 |
特定の監査イベントのトークンの順番を表示する | |
監査レコードの表示 |
監査レコードをユーザーが読める書式で表示する | |
監査レコードのマージ |
複数のマシンの監査ファイルを 1 つの監査トレールに結合する | |
監査トレールのオーバーフローの防止 |
監査ファイルシステムが完全にいっぱいになるのを防止する |
bsmrecord コマンドは、監査イベントの監査 ID、監査クラス、選択マスク、およびレコード書式を表示します。このコマンドは、audit_class ファイル内と audit_event ファイル内のレコードを使用します。
次のように -a オプションを指定してコマンドを実行すると、すべての監査イベントのレコード書式が表示されます。-h オプションを指定すると、HTML 形式で一覧が出力されます。出力されたファイルは、ブラウザを使って表示できます。
bsmrecord コマンドを使ってすべての監査イベントのレコード書式を HTML ファイルに出力します。
% bsmrecord -a -h> audit.events.html |
*html ファイルはブラウザを使って表示できます。ブラウザの検索ツールを使って特定のレコードを検索します。
この例では、login プログラムによって生成されたすべての監査レコードの書式を表示します。
% bsmrecord -p login terminal login program /usr/sbin/login see login(1) event ID 6152 AUE_login class lo (0x00001000) header subject text error message or "successful login" return login: logout program /usr/sbin/login see login(1) event ID 6153 AUE_logout class lo (0x00001000) header subject text "logout" username return rlogin program /usr/sbin/login see login(1) - rlogin event ID 6155 AUE_rlogin class lo (0x00001000) header subject text success/fail message return telnet login program /usr/sbin/login see login(1) - telnet event ID 6154 AUE_telnet class lo (0x00001000) header subject text success/fail message return |
この例では、fd クラスに属するすべての監査レコードの書式を表示します。
% bsmrecord -c fd ftruncate Not used. truncate Not used. unlink system call unlink see unlink(2) event ID 6 AUE_UNLINK class fd (0x00000020) header path [attribute] subject return |
次のタスクでは、すべての監査ディレクトリのすべての監査ファイルをマージする方法について説明します。監査トレールの内容を分析する場合は、次の手順を行います。
スーパーユーザーになるか、同等の役割を引き受けます。
一次監査ディレクトリに移動します。
# cd /etc/security/audit/server-name.1/files |
マージされたファイルは、/etc/security/audit/server-name.1/files ディレクトリ内に格納されます。このディレクトリは保護されています。
監査レコードをマージします。
# auditreduce> merged.log |
server-name 上の audit_control ファイル内の dir: 行に指定されているすべてのディレクトリがマージされます。マージされたレコードは、カレントディレクトリの merged.log ファイル内に格納されます。
監査トレール全体を一度に表示するには、auditreduce コマンドの出力を praudit コマンドにパイプします。
# auditreduce | praudit |
出力を lp コマンドにパイプすると、その出力はプリンタに送られます。
# auditreduce | praudit | lp |
auditreduce の -O オプションを使用して、複数の監査ファイルを 1 つのファイルに結合し、そのファイルを指定した出力ファイルに保存します。auditreduce を使用すると、このような結合と削除を自動的に実行できます。auditreduce(1M) のマニュアルページの -C オプションと -D オプションを参照してください。ただし、ファイルを手動で選択したほうが効率的です。find コマンドを使用したあと、auditreduce を使用して指定した一連のファイルだけを結合します。
この方法で auditreduce コマンドを使用すると、入力ファイルのすべてのレコードが 1 つの出力ファイルにマージされます。マージが完了したら、入力ファイルは削除する必要があります。また、出力ファイルは、/etc/security/audit/server-name /files という名前のディレクトリに保存し、auditreduce が出力ファイルを検索できるようにする必要があります。
# auditreduce -O combined-filename |
auditreduce コマンドを使用すると、出力ファイル内のレコード数を減らすこともできます。このコマンドは、入力ファイルの結合時に不要なレコードを除外できます。たとえば、auditreduce コマンドを使用して、1 か月以上経過した監査ファイルから、ログインレコードとログアウトレコード以外のレコードを削除することができます。監査トレール全体が必要になった場合は、バックアップテープから監査トレールを復元できます。
# auditreduce -O daily.summary -b 19990413 -c lo; compress *daily.summary # mv *daily.summary /etc/security/summary.dir |
次の例では、1999 年 4 月 13 日におけるユーザー tamiko のログイン時刻とログアウト時刻を、システム管理者が確認します。管理者は、lo イベントクラスを要求します。短い書式の日付は、yymmdd 形式で出力されます。長い書式については、auditreduce(1M) のマニュアルページを参照してください。
# auditreduce -d 990413 -u tamiko -c lo | praudit |
この例では、特定の日付におけるログイン、ログアウトのメッセージが監査トレールから選択されます。これらのメッセージは対象ファイルにマージされます。対象ファイルは、通常の監査ルートディレクトリ以外のディレクトリに書き込まれます。
# auditreduce -c lo -d 990413 -O /usr/audit_summary/logins |
-O オプションを使用すると、開始時刻と終了時刻を示す 14 文字のタイムスタンプと接尾辞 logins が付いた監査ファイルが作成されます。
/usr/audit_summary/19990413000000.19990413235959.logins |
監査ファイルが開いている状態で監査デーモンが終了してしまうことがあります。また、サーバーがアクセス不能になって、強制的に別のサーバーに切り替わってしまうことがあります。このような場合、その監査ファイルは監査レコードとして使用されなくなりますが、監査ファイルの終了時刻として文字列 not_terminated が付いたままになります。このようなファイルが見つかった場合、ファイルが使用されていないことを手動で確認します。開いたままのファイルを整理するには、正しいオプションを使用してファイル名を指定します。
# audit -s 19990414121112.not_terminated.egret # auditreduce -O egret 19990413120429.not_terminated.egret |
audit コマンドは、現在の監査ファイル名を確認します。auditreduce コマンドは、正しいファイル名と正しいタイムスタンプを持つ新しい監査ファイルを作成します。正しいファイル名には、正しい接尾辞 (egret) が含まれます。auditreduce は、すべてのレコードをこのファイルにコピーします。
スーパーユーザーになるか、同等の役割を引き受けます。
/usr/audit_summary/logins などの監査ファイルディレクトリに移動します。
# cd /usr/audit_summary/logins |
praudit コマンドを使ってファイルを読み取ります。
# praudit 19990413000000.19990413235959.logins | more |
この例では、監査レコードを XML 形式に変換します。XML 形式はブラウザで表示できます。この形式は、報告を作成する際にも使用できます。
# praudit -x 19990413000000.19990413235959.logins> 19990413.logins.xml |
*xml ファイルはブラウザを使って表示できます。スクリプトを使えば、XML ファイルの内容を操作して目的の情報を抽出できます。
セキュリティポリシーの関係ですべての監査データを保存する必要がある場合は、次の手順に従います。
監査ファイルを定期的に保存するスケジュールを設定します。保存した監査ファイルを監査ファイルシステムから削除するスケジュールを設定します。
監査ファイルを手動でテープにバックアップします。これらのファイルを保存ファイルシステムに移動することもできます。
監査レコードの解釈に必要な、内容に対応する情報を、監査トレールとともに格納します。
オフラインで移動した監査ファイルをを示すレコードを保管します。
保存したテープを適切な方法で保管します。
サマリーファイルを作成して、格納する監査データのボリュームを削減します。
監査トレールからサマリーファイルを抽出するには、auditreduce コマンドのオプションを使用します。サマリーファイルには、指定された種類の監査イベントのレコードだけが含まれます。例 — 監査ファイルの結合と削減と 例 — 選択レコードを 1 つのファイルにコピーするの例を参照してください。