JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Solaris のシステム管理: セキュリティーサービス     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I セキュリティーの概要

1.  セキュリティーサービス (概要)

パート II システム、ファイル、およびデバイスのセキュリティー

2.  マシンセキュリティーの管理 (概要)

3.  システムアクセスの制御 (タスク)

4.  デバイスアクセスの制御 (タスク)

5.  基本監査報告機能の使用方法 (タスク)

6.  ファイルアクセスの制御 (タスク)

7.  自動セキュリティー拡張ツールの使用 (タスク)

パート III 役割、権利プロファイル、特権

8.  役割と特権の使用 (概要)

9.  役割に基づくアクセス制御の使用 (タスク)

10.  役割によるアクセス制御 (参照)

11.  特権 (タスク)

12.  特権 (参照)

パート IV 暗号化サービス

13.  Oracle Solaris の暗号化フレームワーク (概要)

14.  Oracle Solaris の暗号化フレームワーク (タスク)

15.  Oracle Solaris 鍵管理フレームワーク

パート V 認証サービスと安全な通信

16.  認証サービスの使用 (タスク)

17.  PAM の使用

18.  SASL の使用

19.  Secure Shell の使用 (タスク)

20.  Secure Shell (参照)

パート VI Kerberos サービス

21.  Kerberos サービスについて

22.  Kerberos サービスの計画

23.  Kerberos サービスの構成 (タスク)

24.  Kerberos エラーメッセージとトラブルシューティング

25.  Kerberos 主体とポリシーの管理 (タスク)

26.  Kerberos アプリケーションの使用 (タスク)

27.  Kerberos サービス (参照)

パート VII Oracle Solaris での監査

28.  Oracle Solaris 監査 (概要)

29.  Oracle Solaris 監査の計画

30.  Oracle Solaris 監査の管理 (タスク)

Oracle Solaris 監査 (タスクマップ)

監査ファイルの構成 (タスクマップ)

監査ファイルの構成 (タスク)

audit_control ファイルの変更方法

syslog 監査ログの構成方法

ユーザーの監査特性の変更方法

監査クラスの追加方法

監査イベントの所属先クラスの変更方法

監査サービスの構成と有効化 (タスクマップ)

監査サービスの構成と有効化 (タスク)

監査ファイルのパーティションの作成方法

audit_warn 電子メールエイリアスの構成方法

監査ポリシーを構成する方法

監査サービスを有効にする方法

監査サービスを無効にする方法

監査サービスの更新方法

ゾーンでの監査サービスの構成 (タスク)

すべてのゾーンの監査を同様に構成する方法

ゾーンごとの監査を構成する方法

監査レコードの管理 (タスクマップ)

監査レコードの管理

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

監査トレールの監査ファイルをマージする方法

監査トレールから監査イベントを選択する方法

バイナリ監査ファイルの内容を表示する方法

not_terminated 監査ファイルを整理する方法

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

Oracle Solaris 監査のトラブルシューティング (タスク)

Oracle Solaris 監査のトラブルシューティング (タスクマップ)

Oracle Solaris 監査が実行中であるかどうかを判定する方法

生成される監査レコードの量を削減する方法

ユーザーによるすべてのコマンドを監査する方法

特定のファイルに対する変更の監査レコードを検索する方法

ユーザーの事前選択マスクを変更する方法

特定のイベントが監査されないようにする方法

バイナリ監査ファイルのサイズを制限する方法

ほかの OS からのログインを監査する方法

FTP および SFTP ファイル転送を監査する方法

31.  Oracle Solaris 監査 (参照)

用語集

索引

監査レコードの管理

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

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

必要な監査データを検索するスクリプトを作成するためには、監査イベント内のトークンの順番を知る必要があります。bsmrecord コマンドは、監査イベントの監査イベント番号、監査クラス、選択マスク、およびレコード書式を表示します。

例 30-26 プログラムの監査レコード書式を表示する

この例では、login プログラムによって生成されたすべての監査レコードの書式を表示します。login プログラムには、rlogintelnetnewgrp、Solaris 管理コンソールへの役割ログイン、および Oracle Solaris Secure Shell も含まれます。

% bsmrecord -p login
login: logout
  program     various              See login(1)
  event ID    6153                 AUE_logout
…

newgrp
  program     newgrp               See newgrp login
  event ID    6212                 AUE_newgrp_login
…

rlogin
  program     /usr/sbin/login      See login(1) - rlogin
  event ID    6155                 AUE_rlogin
…

SMC: role login
  program     SMC server           See role login
  event ID    6173                 AUE_role_login
…

/usr/lib/ssh/sshd
  program     /usr/lib/ssh/sshd    See login - ssh
  event ID    6172                 AUE_ssh
…

telnet login
  program     /usr/sbin/login      See login(1) - telnet
  event ID    6154                 AUE_telnet
  …

例 30-27 ある監査クラスの監査レコード書式を表示する

この例では、fd クラスに属するすべての監査レコードの書式を表示します。

% bsmrecord -c fd

rmdir
  system call rmdir                See rmdir(2)
  event ID    48                   AUE_RMDIR
  class       fd                   (0x00000020)
      header
      path
      [attribute]
      subject
      [use_of_privilege]
      return

unlink
  system call unlink               See unlink(2)
  event ID    6                    AUE_UNLINK
  …

unlinkat
  system call unlinkat             See openat(2)
  event ID    286                  AUE_UNLINKAT
  …

監査トレールの監査ファイルをマージする方法

すべての監査ディレクトリ内のすべての監査ファイルをマージすると、監査トレール全体の内容を分析できます。auditreduce コマンドを使用すると、入力ファイルのすべてのレコードが 1 つの出力ファイルにマージされます。マージが完了すると、入力ファイルを削除できます。出力ファイルが /etc/security/audit/server-name/files という名前のディレクトリに配置されている場合、完全パスを指定しなくても、auditreduce コマンドは出力ファイルを検索できます。


注 - この手順は、バイナリ監査レコードだけに適用します。


  1. Audit Review プロファイルを含む役割を引き受けるか、スーパーユーザーになります。

    System Administrator 役割には、 Audit Review プロファイルが含まれます。Audit Review プロファイルを含む役割を別々に作成することもできます。役割を作成する方法と役割をユーザーに割り当てる方法については、「RBAC の構成 (タスクマップ)」を参照してください。

  2. マージされた監査ファイルを格納するディレクトリを作成します。
    # mkdir audit-trail-directory
  3. ディレクトリへのアクセスを制限します。
    # chmod 700 audit-trail-directory
    # ls -la audit-trail-directory
    drwx------   3 root     sys          512 May 12 11:47 .
    drwxr-xr-x   4 root     sys         1024 May 12 12:47 ..
  4. 監査トレール内の監査レコードをマージします。

    ディレクトリを audit-trail-directory に変更して、指定した接尾辞を持つファイルに監査レコードをマージします。ローカルシステム上にある audit_control ファイルの dir 行に指定されているすべてのディレクトリがマージされます。

    # cd audit-trail-directory
    # auditreduce -Uppercase-option -O suffix

    大文字オプションを auditreduce コマンドに指定すると、監査トレール内のファイルを操作できます。次の大文字オプションがあります。

    -A

    監査トレール内のすべてのファイルを選択します。

    -C

    完全ファイルだけを選択します。このオプションは、接尾辞 not_terminated を持つファイルを無視します。

    -M

    特定の接尾辞を持つファイルを選択します。接尾辞はマシン名、またはサマリーファイルに指定した接尾辞です。

    -O

    開始時間と終了時間を示す 14 文字のタイムスタンプおよび接尾辞 suffix が付いた監査ファイルを現在のディレクトリに作成します。

例 30-28 サマリーファイルに監査ファイルをコピーする

次の例では、System Administrator 役割 sysadmin は、すべてのファイルを監査トレールからマージされたファイルにコピーします。

$ whoami
sysadmin
$ mkdir /var/audit/audit_summary.dir
$ chmod 700 /var/audit/audit_summary.dir
$ cd /var/audit/audit_summary.dir
$ auditreduce -A -O All
$ ls *All
20100827183214.20100827215318.All

次の例では、完全ファイルだけが監査トレールからマージされたファイルにコピーされます。

$ cd /var/audit/audit_summary.dir
$ auditreduce -C -O Complete
$ ls *Complete
20100827183214.20100827214217.Complete

次の例では、完全ファイルだけが example1 マシンからマージされたファイルにコピーされます。

$ cd /var/audit/audit_summary.dir
$ auditreduce -M example1 -O example1summ
$ ls *summ
20100827183214.20100827214217.example1summ

例 30-29 監査ファイルをサマリーファイルに移動する

auditreduce- D オプションを指定すると、監査ファイルをほかの場所にコピーしたときにその監査ファイルを削除します。次の例では、あるシステムの完全監査ファイルを、あとで調べるためにサマリーディレクトリにコピーします。

$ cd /var/audit/audit_summary.dir
$ auditreduce -C -O daily_example1 -D example1
$ ls *example1
20100827183214.20100827214217.daily_example1

このコマンドが正常に完了すると、*daily_example1 ファイルへの入力となった example1 システムの監査ファイルが削除されます。

監査トレールから監査イベントを選択する方法

調べる監査レコードをフィルタリングすることができます。フィルタリングオプションの一覧については、auditreduce(1M) のマニュアルページを参照してください。

  1. Audit Review プロファイルを含む役割を引き受けるか、スーパーユーザーになります。

    System Administrator 役割には、 Audit Review プロファイルが含まれます。Audit Review プロファイルを含む役割を別々に作成することもできます。役割を作成する方法と役割をユーザーに割り当てる方法については、「RBAC の構成 (タスクマップ)」を参照してください。

  2. 監査トレールまたは指定した監査ファイルから必要なレコードを選択します。
    auditreduce -lowercase-option argument [optional-file]
    argument

    小文字オプションが必要とする特定の引数。たとえば、-c オプションは、ua などの監査クラスの argument を必要とします。

    -d

    特定の日付のイベントをすべて選択します。argument の日付の形式は、yyyymmdd です。ほかの日付オプション -b-a は、特定の日付の前と後のイベントを選択します。

    -u

    特定のユーザーのイベント属性をすべて選択します。argument はユーザー名です。もう 1 つのユーザーオプション -e は、実効ユーザー ID のイベント属性をすべて選択します。

    -c

    事前選択された監査クラス内のイベントをすべて選択します。argument は監査クラス名です。

    -m

    特定の監査イベントのインスタンスをすべて選択します。argument は監査イベントです。

    optional-file

    監査ファイルの名前です。

例 30-30 監査ファイルを結合して削減する

auditreduce コマンドを使用すると、入力ファイルの結合時に不要なレコードを除外できます。たとえば、auditreduce コマンドを使用して、1 か月以上経過した監査ファイルから、ログインレコードとログアウトレコード以外のレコードを削除することができます。監査トレール全体が必要になった場合は、バックアップメディアから監査トレールを復元します。

# cd /var/audit/audit_summary.dir
# auditreduce -O lo.summary -b 20100827 -c lo; compress *lo.summary

例 30-31 na 監査レコードをサマリーファイルにコピーする

この例では、監査トレール内の、ユーザーに起因しない監査イベントのすべてのレコードが、1 つのファイルに収集されます。

$ whoami
sysadmin
$ cd /var/audit/audit_summary.dir
$ auditreduce -c na -O nasumm
$ ls *nasumm
20100827183214.20100827215318.nasumm

マージされた nasumm 監査ファイルは、na レコードの開始時間と終了時間のタイムスタンプが記録されます。

例 30-32 指定した監査ファイル内で監査イベントを検索する

監査ファイルを手動で選択して、指定された一連のファイルだけを検索できます。たとえば、前の例の *nasumm ファイルをさらに処理して、システムブートイベントを検索できます。これを行うには、auditreduce コマンドの最後の引数にファイル名を指定します。

$ auditreduce -m 113 -O systemboot 20100827183214.20100827215318.nasumm
20100827183214.20100827183214.systemboot

20100827183214.20100827183214.systemboot ファイルは、システムブート監査イベントだけを含みます。

例 30-33 ユーザー監査レコードをサマリーファイルにコピーする

この例では、特定のユーザー名を含む監査トレール内のレコードがマージされます。-e オプションを指定すると実効ユーザーが検索されます。-u オプションを指定すると監査ユーザーが検索されます。

$ cd /var/audit/audit_summary.dir
$ auditreduce -e tamiko -O tamiko

このファイル内の特定のイベントを検索できます。次の例では、2010 年 9 月 7 日にユーザーがログインした時間が確認されます。接尾辞にユーザーの名前が付いたファイルだけが確認されます。日付の短い形式は、yyyymmdd です。

# auditreduce -M tamiko -O tamikolo -d 20100907 -u tamiko -c lo

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

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

# auditreduce -c lo -d 20100827 -O /var/audit/audit_summary.dir/logins
# ls /var/audit/audit_summary.dir/*logins
/var/audit/audit_summary.dir/20100827183936.20100827232326.logins

バイナリ監査ファイルの内容を表示する方法

praudit コマンドを使用すると、バイナリ監査ファイルの内容を表示できます。auditreduce コマンドから出力をパイプしたり、特定の監査ファイルを読み取ったりできます。さらに処理する場合に -x オプションが役立ちます。

  1. Audit Review プロファイルを含む役割を引き受けるか、スーパーユーザーになります。

    System Administrator 役割には、 Audit Review プロファイルが含まれます。Audit Review プロファイルを含む役割を別々に作成することもできます。役割を作成する方法と役割をユーザーに割り当てる方法については、「RBAC の構成 (タスクマップ)」を参照してください。

  2. 次の praudit コマンドの 1 つを使用して、目的に沿った出力を生成します。

    次の例は、同じ監査イベントからの praudit 出力を表示します。監査ポリシーは、sequence トークンと trailer トークンを含むように設定されています。

    • praudit -s コマンドを使用して、短い書式で 1 行につき 1 トークンの監査レコードを表示します。-l オプションを指定して、1 行に各レコードを配置します。

      $ auditreduce -c lo | praudit -s
      header,101,2,AUE_rlogin,,example1,2010-10-13 11:23:31.050 -07:00
      subject,jdoe,jdoe,staff,jdoe,staff,749,749,195 1234 server1
      text,successful login 
      return,success,0 
      sequence,1298
    • praudit -r コマンドを使用して、監査レコードの raw 書式で 1 行につき 1 トークンの監査レコードを表示します。-l オプションを指定して、1 行に各レコードを配置します。

      $ auditreduce -c lo | praudit -r
      21,101,2,6155,0x0000,192.168.60.83,1062021202,64408258
      36,2026700,2026700,10,2026700,10,749,749,195 1234 192.168.60.17
      40,successful login
      39,0,0
      47,1298
    • praudit -x コマンドを使用して、XML 形式で 1 行につき 1 トークンの監査レコードを表示します。-l オプションを指定して、1 レコードの XML 出力を 1 行に配置します。

      $ auditreduce -c lo | praudit -x
      <record version="2" event="login - rlogin" host="example1" 
      time="Wed Aug 27 14:53:22 PDT 2010" msec="64">
      <subject audit-uid="jdoe" uid="jdoe" gid="staff" ruid="jdoe" 
      rgid="staff" pid="749" sid="749" tid="195 1234 server1"/>
      <text>successful login</text>
      <return errval="success" retval="0"/>
      <sequence seq-num="1298"/>
      
      </record>

例 30-35 監査トレール全体を印刷する

lp コマンドにパイプすると、監査トレール全体の出力がプリンタに送られます。プリンタへのアクセスを制限してください。

# auditreduce | praudit | lp -d example.protected.printer

例 30-36 特定の監査ファイルを表示する

この例では、サマリーログインファイルを端末ウィンドウで調べます。

# cd /var/audit/audit_summary.dir/logins
# praudit 20100827183936.20100827232326.logins | more

例 30-37 監査レコードを XML 形式に変換する

この例では、監査レコードを XML 形式に変換します。

# praudit -x 20100827183214.20100827215318.logins > 20100827.logins.xml

*xml ファイルはブラウザを使って表示できます。スクリプトを使えば、XML ファイルの内容を操作して目的の情報を抽出できます。

注意事項

次のようなメッセージは、praudit コマンドを使用するために必要な権限がないことを示しています。

praudit: Can't assign 20090408164827.20090408171614.example1 to stdin.

not_terminated 監査ファイルを整理する方法

監査ファイルが開いている状態で監査デーモンが終了することがあります。また、サーバーがアクセス不能になって、強制的に別のサーバーに切り替わってしまうことがあります。このような場合、その監査ファイルは監査レコードとして使用されなくなりますが、監査ファイルの終了タイムスタンプとして文字列 not_terminated が付いたままになります。auditreduce -O コマンドを使用して、ファイルに正しいタイムスタンプを付けます。

  1. 監査ファイル上の not_terminated 文字列が付いたファイルを作成順に一覧表示します。
    # ls -R1t audit-directory*/files/* | grep not_terminated
    -R

    サブディレクトリ内のファイルを一覧表示します。

    -t

    最新のファイルからもっとも古いファイルの順で一覧表示します。

    -1

    1 列でファイルを一覧表示します。

  2. 古い not_terminated ファイルを整理します。

    古いファイルの名前を auditreduce -O コマンドに指定します。

    # auditreduce -O system-name old-not-terminated-file
  3. 古い not_terminated ファイルを削除します。
    # rm system-name old-not-terminated-file

例 30-38 閉じた not_terminated 監査ファイルを整理する

次の例では、not_terminated ファイルを検索し、名前を変更して、元のファイルを削除します。

ls -R1t */files/* | grep not_terminated
…/egret.1/20100908162220.not_terminated.egret
…/egret.1/20100827215359.not_terminated.egret
# cd */files/egret.1
# auditreduce -O egret 20100908162220.not_terminated.egret
# ls -1t
20100908162220.not_terminated.egret Current audit file
20100827230920.20100830000909.egret Input (old) audit file
20100827215359.not_terminated.egret
# rm 20100827215359.not_terminated.egret
# ls -1t
20100908162220.not_terminated.egret Current audit file
20100827230920.20100830000909.egret Cleaned up audit file

新しいファイルの開始タイムスタンプは、not_terminated ファイル内にある最初の監査イベントの時間を反映します。終了タイムスタンプは、そのファイル内にある最後の監査ファイルの時間を反映します。

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

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

  1. 監査ファイルを定期的に保存するスケジュールを設定します。

    ファイルをオフラインのメディアにバックアップして、監査ファイルを保管します。これらのファイルを保存ファイルシステムに移動することもできます。

    syslog ユーティリティーを使用してテキスト監査ログを収集している場合、テキストログを保管します。詳細は、logadm(1M) のマニュアルページを参照してください。

  2. スケジュールを設定して、保管された監査ファイルを監査ファイルシステムから削除します。
  3. 補助情報を保存し保管します。

    監査レコードの解釈に必要な情報を、監査トレールとともに格納します。

  4. 保管した監査ファイルの記録をとります。
  5. 保存したメディアを適切な方法で保管します。
  6. サマリーファイルを作成して、格納する監査データのボリュームを削減します。

    監査トレールからサマリーファイルを抽出するには、auditreduce コマンドのオプションを使用します。サマリーファイルには、指定された種類の監査イベントのレコードだけが含まれます。サマリーファイルを抽出するには、例 30-30 および例 30-34 を参照してください。