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

ドキュメントの情報

はじめに

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

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

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

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

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

4.  ウイルススキャンサービス (タスク)

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

6.  BART を使用したファイル整合性の検証 (タスク)

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

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

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

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

10.  Oracle Solaris のセキュリティー属性 (参照)

パート IV 暗号化サービス

11.  暗号化フレームワーク (概要)

12.  暗号化フレームワーク (タスク)

13.  鍵管理フレームワーク

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

14.  プラグイン可能認証モジュールの使用

15.  Secure Shell の使用

16.  Secure Shell (参照)

17.  簡易認証セキュリティー層の使用

18.  ネットワークサービスの認証 (タスク)

パート VI Kerberos サービス

19.  Kerberos サービスについて

20.  Kerberos サービスの計画

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

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

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

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

25.  Kerberos サービス (参照)

パート VII Oracle Solaris での監査

26.  監査 (概要)

27.  監査の計画

28.  監査の管理 (タスク)

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

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

監査サービスのデフォルトを表示する方法

監査クラスを事前選択する方法

ユーザーの監査特性を構成する方法

監査ポリシーを変更する方法

監査キュー制御を変更する方法

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

監査クラスの追加方法

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

監査ログの構成 (タスク)

監査ログの構成 (タスクマップ)

監査ファイルのための ZFS ファイルシステムを作成する方法

監査トレールのための監査領域を割り当てる方法

監査ファイルをリモートリポジトリに送信する方法

監査ファイルのためのリモートリポジトリを構成する方法

syslog 監査ログの構成方法

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

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

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

監査サービスの有効化および無効化 (タスク)

監査サービスをリフレッシュする方法

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

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

ローカルシステム上の監査レコードの管理 (タスク)

ローカルシステム上の監査レコードの管理 (タスクマップ)

監査レコード定義を表示する方法

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

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

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

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

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

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

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

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

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

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

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

ログインしているユーザーの事前選択マスクを更新する方法

特定のイベントの監査を回避する方法

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

専用ファイルシステム上の監査ファイルを圧縮する方法

ほかのオペレーティングシステムからのログインを監査する方法

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

29.  監査 (参照)

用語集

索引

ローカルシステム上の監査レコードの管理 (タスク)

デフォルトのプラグイン audit_binfile によって監査トレールが作成されます。このトレールには大量のデータが含まれる場合があります。次のタスクでは、さまざまな監査データを使用して作業を行う方法について説明します。

ローカルシステム上の監査レコードの管理 (タスクマップ)

次のタスクマップは、監査レコードの選択、分析、および管理の手順を示しています。

タスク
説明
参照先
監査レコードの書式を表示します。
監査イベント用に収集される情報、および表示される情報の順番を表示します。
監査レコードをマージします。
複数のマシンの監査ファイルを 1 つの監査トレールに結合します。
検査するレコードを選択します。
調査対象の特定のイベントを選択します。
監査レコードを表示します。
バイナリ監査レコードの表示を有効にします。
正確でない名前を付けられた監査ファイルを整理します。
監査サービスにより意図的でなく開いたままにされた監査ファイルに最終タイムスタンプを設定します。
監査トレールのオーバーフローを回避します。
監査ファイルシステムがいっぱいになることを防止します。

監査レコード定義を表示する方法

auditrecord コマンドは、監査レコード定義を表示します。この定義によって、監査イベントの監査イベント番号、監査クラス、選択マスク、およびレコード書式が提供されます。

例 28-27 プログラムの監査レコード定義の表示

この例では、login プログラムによって生成されたすべての監査レコードの定義が表示されます。ログインプログラムには、rlogintelnetnewgrp、および 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 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. マージされた監査ファイルを格納するためのファイルシステムを作成します。

    ディスク容量の制限に達する可能性を減らすために、このファイルシステムは、元のファイルを格納するために 「監査ファイルのための ZFS ファイルシステムを作成する方法」で作成したファイルシステムとは別の zpool 内に存在するようにしてください。

  2. 監査トレール内の監査レコードをマージします。

    マージされた監査ファイルを格納するためのディレクトリに移動します。このディレクトリから、指定された接尾辞を含むファイルに監査レコードをマージします。ローカルシステム上の監査トレール内のすべてのディレクトリがマージされ、このディレクトリ内に配置されます。

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

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

    -A

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

    -C

    完全ファイルだけを選択します。

    -M

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

    -O

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

    -R pathname

    代替の監査ルートディレクトリである pathname 内の監査ファイルを読み取ることを指定します。

    -S server

    指定されたサーバーから監査ファイルを読み取ることを指定します。

    オプションの完全な一覧については、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 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

例 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 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

例 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 監査ファイルを整理する方法

異常なシステム中断が発生した場合、監査サービスは、監査ファイルがまだ開いている状態で終了します。または、ファイルシステムにアクセスできなくなり、システムが強制的に新しいファイルシステムに切り替えられます。このような場合、その監査ファイルは監査レコードとして使用されなくなりますが、監査ファイルの終了タイムスタンプとして文字列 not_terminated が付いたままになります。auditreduce -O コマンドを使用して、ファイルに正しいタイムスタンプを付けます。

始める前に

Audit Review 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

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

例 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 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. audit_binfile プラグインで、最小空き容量サイズを設定します。

    p_minfree 属性を使用します。

    ディスク容量が最小空き容量サイズまでいっぱいになると、audit_warn 電子メールエイリアスによって警告が送信されます。例 28-17 を参照してください。

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

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

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

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

    監査レコードの解釈に必要な情報を、監査トレールとともに格納します。少なくとも、passwdgroup、および hosts ファイルを保存します。また、audit_event および audit_class ファイルも保管することがあります。

  5. 保管した監査ファイルの記録をとります。
  6. 保存したメディアを適切な方法で保管します。
  7. ZFS 圧縮を有効にすることによって、必要なファイルシステム容量を削減します。

    監査ファイル専用の ZFS ファイルシステムでは、圧縮によってファイルが大幅に縮小されます。例については、「専用ファイルシステム上の監査ファイルを圧縮する方法」を参照してください。

    『Oracle Solaris 11.1 の管理: ZFS ファイルシステム』の「ZFS の圧縮、複製解除、暗号化のプロパティー間の関連」も参照してください。

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

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