Solaris のシステム管理 (セキュリティサービス)

監査レコードの管理

監査トレールを管理することによって、ネットワーク上のユーザーの動作を監視することができます。監査プロセスを行うと、大量のデータが生成される可能性があります。次の手順では、さまざまな監査データを使用して作業を行う方法について説明します。

監査レコードの管理 (作業マップ)

次の表は、この節で説明する操作の一覧です。

作業 

説明 

参照先 

監査レコードのマージ 

複数のマシンの監査ファイルを 1 つの監査トレールに結合する 

監査レコードのマージ方法

監査レコード書式の表示 

特定の監査イベントのトークンの順番を表示する 

監査レコードの書式の表示方法

監査トレールのオーバーフローの防止 

監査ファイルシステムが完全にいっぱいになるのを防止する 

監査トレールのオーバーフローを防ぐ方法

監査レコードのマージ方法

次のタスクでは、すべての監査ディレクトリのすべての監査ファイルをマージする方法について説明します。監査トレールの内容を分析する場合は、次の手順を行います。

  1. スーパーユーザー、またはそれと同等の役割になります。

  2. 一次監査ディレクトリに移動します。


    # cd /etc/security/audit/server-name.1/files
    

    このディレクトリに移動すると、マージしたファイルがこの保護されたディレクトリに配置されます。

  3. 監査レコードをマージします。


    # 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

例 — 選択した日付のユーザーの動作を表示する

次の例では、システム管理者が lo イベントクラスを要求して、ユーザー tamiko が 1999 年 4 月 13 日にログインしてログアウトした時刻を調べます。短い書式の日付は、yymmdd 形式で出力されます。長い書式については、auditreduce(1M) のマニュアルページを参照してください。


# auditreduce -d 990413 -u tamiko -c lo | praudit

例 — 選択レコードを 1 つのファイルにコピーする

この例では、特定の日付のログインおよびログアウトメッセージが監査トレールから選択され、対象ファイルにマージされます。対象ファイルは、通常の監査ルートディレクトリ以外のディレクトリに書き込まれます。


# auditreduce -c lo -d 990413 -O /usr/audit_summary/logins 

-O オプションを使用すると、開始時刻と終了時刻を示す 14 文字のタイムスタンプと接尾辞 logins が付いた監査ファイルが作成されます。


/usr/audit_summary/19990413000000.19990413235959.logins

例 — not_terminated 監査ファイルを整理する

監査ファイルが開いているときに監査デーモンが終了したり、サーバーがアクセス不能になって新しいサーバーに切り替わったりすることがあります。このような場合、その監査ファイルは監査レコードとして使用されなくなりますが、監査ファイルの終了時刻として文字列 not_terminated が付いたままになります。このようなファイルが検出された場合は、ファイルが使用されていないことを手動で検証し、正しいオプションを使用してファイル名を指定して整理します。


# audit -s
19990414121112.not_terminated.egret
# auditreduce -O egret 19990413120429.not_terminated.egret

audit コマンドは、現在の監査ファイル名を確認します。auditreduce コマンドは、正しい名前、正しいタイムスタンプ、および正しい接尾辞 (egret) を使用して新しい監査ファイルを作成し、すべてのレコードをそのファイルにコピーします。

監査レコードの書式の表示方法

次のコマンドは、すべての監査イベントレコードの書式を表示します。このコマンドは、audit_class audit_event、および audit_record_attr ファイルのレコードを操作します。


# bsmrecord -a

例 — 監査レコードの書式を表示する

この例では、ID 6152 の監査レコードの書式を表示します。


# bsmrecord -i 6152
# login: terminal login
program  /usr/sbin/login  see login(1)
event ID 6152             AUE_login
class  lo  (0x00001000)
header-token
subject-token
text-token   error message
exit-token
#

監査トレールのオーバーフローを防ぐ方法

セキュリティポリシーの関係ですべての監査データを保存する必要がある場合は、次の手順に従います。

  1. 定期的に監査ファイルを保存し、保存した監査ファイルを監査ファイルシステムから削除するスケジュールを設定します。

  2. バックアップをテープに作成するか、保存ファイルシステムに移動して、監査ファイルを手動で保存します。

  3. 監査レコードの解釈に必要な、内容に対応する情報を、監査トレールとともに格納します。

  4. オフラインで移動した監査ファイルをを示すレコードを保管します。

  5. 保存したテープを適切な方法で保管します。

  6. サマリーファイルを作成して、格納する監査データのボリュームを削減します。

    auditreduce でオプションを使用すると、監査トレールからサマリーファイルを抽出できるため、サマリーファイルには指定した種類の監査イベントのレコードだけが含まれます。この例については、例 — 監査ファイルの結合と削減例 — 選択レコードを 1 つのファイルにコピーする を参照してください。