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

ドキュメントの情報

はじめに

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

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

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

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

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

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

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

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

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

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

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

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

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

パート IV 暗号化サービス

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

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

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

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

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

15.  PAM の使用

16.  SASL の使用

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

18.  Secure Shell (参照)

パート 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.  監査 (参照)

用語集

索引

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

ネットワーク上で監査を有効にする前に、サイトの監査要件を満たすようにデフォルト設定を変更できます。ベストプラクティスは、最初のユーザーがログインする前に、監査構成をできるだけカスタマイズすることです。

ゾーンを実装している場合は、大域ゾーンのすべてのゾーンを監査するか、または非大域ゾーンを個別に監査するかを選択できます。概要については、「監査と Oracle Solaris ゾーン」を参照してください。計画については、「ゾーン内の監査の計画方法」を参照してください。手順については、「ゾーンでの監査サービスの構成 (タスク)」を参照してください。

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

次のタスクマップは、監査を構成するための手順を示しています。すべてのタスクが省略可能です。

タスク
説明
参照先
監査のデフォルトを表示します。
監査を構成する前に、デフォルトのポリシー、キュー制御、フラグ、およびプラグインの使用を表示します。
どのイベントが監査されるかを選択します。
システム全体の監査クラスを事前選択します。イベントがユーザーに起因する場合は、すべてのユーザーがこのイベントに関して監査されます。
特定のユーザーに対してどのイベントが監査されるを選択します。
システム全体の監査クラスに対するユーザー固有の例外を設定します。
監査ポリシーを指定します。
サイトに必要な追加の監査データを定義します。
キュー制御を指定します。
デフォルトのバッファーサイズ、キュー内の監査レコード数、および監査レコードのバッファーへの書き込みの間隔を変更します。
audit_warn 電子メールエイリアスを作成します。
監査サービスに注意が必要になったときにだれが電子メール警告を受信するかを定義します。
監査ログを構成します。
プラグインごとの監査レコードの場所を構成します。
監査クラスを追加します。
重要なイベントを保持する新しい監査クラスを作成することによって、監査レコードの数を減らします。
イベントからクラスへのマッピングを変更します。
イベントからクラスへのマッピングを変更して、監査レコードの数を減らします。

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

この手順のコマンドでは、現在の監査構成が表示されます。この手順の出力は、構成解除されたシステムから取得されています。

始める前に

Audit Configuration または Audit Control 権利プロファイルが割り当てられている必要があります。

  1. 必要なセキュリティー属性を持つ管理者になります。

    詳細は、「管理権限を取得する方法」を参照してください。

  2. ユーザーに起因するイベントに対して事前選択されたクラスを表示します。
    # auditconfig -getflags
    active user default audit flags = lo(0x1000,0x1000)
    configured user default audit flags = lo(0x1000,0x1000)

    lo は、login/logout 監査クラスのフラグです。マスク出力の形式は (success,failure) です。

  3. ユーザーに起因しないイベントに対して事前選択されたクラスを表示します。
    # auditconfig -getnaflags
    active non-attributable audit flags = lo(0x1000,0x1000)
    configured non-attributable audit flags = lo(0x1000,0x1000)

    注 - クラスにどのイベントが割り当てられているか、したがってどのイベントが記録されるかを表示するには、auditrecord -c class コマンドを実行します。


  4. 監査ポリシーを表示します。
    $ auditconfig -getpolicy
    configured audit policies = cnt
    active audit policies = cnt

    アクティブなポリシーは現在のポリシーですが、このポリシーの値は監査サービスによって格納されていません。構成されたポリシーは監査サービスによって格納されるため、このポリシーは監査サービスを再開したときに復元されます。

  5. 監査プラグインに関する情報を表示します。
    $ auditconfig -getplugin
    Plugin: audit_binfile (active)
        Attributes: p_dir=/var/audit;p_fsize=0;p_minfree=1;
    
    Plugin: audit_syslog (inactive)
        Attributes: p_flags=;
    
    Plugin: audit_remote (inactive)
        Attributes: p_hosts=;p_retries=3;p_timeout=5;

    デフォルトでは、audit_binfile プラグインがアクティブです。

  6. 監査キュー制御を表示します。
    $ auditconfig -getqctrl
      no configured audit queue hiwater mark
      no configured audit queue lowater mark
      no configured audit queue buffer size
      no configured audit queue delay
      active audit queue hiwater mark (records) = 100
      active audit queue lowater mark (records) = 10
      active audit queue buffer size (bytes) = 8192
      active audit queue delay (ticks) = 20

    アクティブなキュー制御は、カーネルによって現在使用されているキュー制御です。no configured の文字列は、システムがデフォルト値を使用していることを示します。

  7. 既存のユーザーに対して事前選択されている監査クラスを表示します。

    ユーザーを見つけたあと、各ユーザーの audit_flags 属性値を表示します。

    # who
    adoe    pts/1        Oct 10 10:20    (:0.0)
    adoe    pts/2        Oct 10 10:20    (:0.0)
    jdoe    pts/5        Oct 12 12:20    (:0.0)
    jdoe    pts/6        Oct 12 12:20    (:0.0)
    ...
    # userattr audit_flags adoe
    # userattr audit_flags jdoe

    デフォルトでは、ユーザーはシステム全体の設定に関してのみ監査されます。

    userattr コマンドについては、userattr(1) のマニュアルページを参照してください。audit_flags キーワードについては、user_attr(4) のマニュアルページを参照してください。

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

監視するイベントを含む監査クラスを事前選択します。事前選択されたクラスに含まれていないイベントは記録されません。

始める前に

Audit Configuration 権利プロファイルが割り当てられている必要があります。

  1. 必要なセキュリティー属性を持つ管理者になります。

    詳細は、「管理権限を取得する方法」を参照してください。

  2. 現在の事前選択されたクラスを確認します。
    # auditconfig -getflags
    ...
    # auditconfig -getnaflags
    ,,,

    出力の説明については、「監査サービスのデフォルトを表示する方法」を参照してください。

  3. ユーザーに起因するクラスを事前選択します。
    # auditconfig -setflags lo,ps,fw
    user default audit flags = ps,lo,fw(0x101002,0x101002)

    このコマンドは、ログイン/ログアウト、プロセスの開始/停止、およびファイル書き込みの各クラス内のイベントの成功と失敗について監査します。


    注 - auditconfig -setflags コマンドによって、現在のシステムのデフォルトにクラスが追加されるわけではありません。このコマンドによってシステムのデフォルトが置き換えられるため、事前選択するすべてのクラスを指定する必要があります。


  4. ユーザーに起因しないクラスを事前選択します。

    na クラスには、ほかのイベントに加えて、PROM、ブート、およびユーザーに起因しないマウントが含まれています。

    # auditconfig -setnaflags lo,na
    non-attributable audit flags = lo,na(0x1400,0x1400)

    -setnaflags オプションの有効な引数は lona だけです。


    注 - auditconfig -setnaflags コマンドによってシステムのデフォルトが置き換えられるため、事前選択するすべてのクラスを指定する必要があります。


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

システム単位にではなく、ユーザー単位にクラスを事前選択することによって、システムパフォーマンスへの監査の影響を軽減できる場合があります。また、特定のユーザーを、システムとは若干異なる方法で監査することもできます。

ユーザーごとの監査クラスの事前選択は、audit_flags セキュリティー属性によって指定されます。「プロセスの監査特性」で説明されているように、これらのユーザー固有の値と、システムに対して事前選択されたクラスによって、そのユーザーの監査マスクが決定されます。

始める前に

root 役割になっている必要があります。

例 28-1 1 人のユーザーに関して監査するイベントを変更する

この例では、すべてのユーザーの監査事前選択マスクは次のとおりです。

# auditconfig -getflags
active user default audit flags = ss,lo(0x11000,0x11000)
configured user default audit flags = ss,lo(0x11000,0x11000)

管理者を除き、どのユーザーもログインしていません。

AUE_PFEXEC 監査イベントのシステムリソースへの影響を軽減するために、管理者は、このイベントをシステムレベルでは監査しません。代わりに、管理者は、ユーザー jdoepf クラスを事前選択します。pf クラスは、例 28-10 で作成されます。

# usermod -K audit_flags=pf:no jdoe

userattr コマンドによって、この追加が表示されます。

# userattr audit_flags jdoe
pf:no

ユーザー jdoe がログインしたとき、jdoe の監査事前選択マスクは、audit_flags 値とシステムのデフォルト値の組み合わせになります。289 は、jdoe のログインシェルの PID です。

# auditconfig -getpinfo 289
audit id = jdoe(1234)
process preselection mask = ss,pf,lo(0x0100000000000000,0x0100000008011000)
terminal id (maj,min,host) = 242,511,example1(192.168.160.171)
audit session id = 103203403

例 28-2 1 人のユーザーに関する監査事前選択の例外を変更する

この例では、すべてのユーザーの監査事前選択マスクは次のとおりです。

# auditconfig -getflags
active user default audit flags = ss,lo(0x11000,0x11000)
configured user default audit flags = ss,lo(0x11000,0x11000)

管理者を除き、どのユーザーもログインしていません。

管理者は、jdoe ユーザーに関する失敗した ss イベントを収集しないことを決定しました。

# usermod -K audit_flags=^-ss:no jdoe

userattr コマンドによって、この例外が表示されます。

# userattr audit_flags jdoe
^-ss:no

ユーザー jdoe がログインしたとき、jdoe の監査事前選択マスクは、audit_flags 値とシステムのデフォルト値の組み合わせになります。289 は、jdoe のログインシェルの PID です。

# auditconfig -getpinfo 289
audit id = jdoe(1234)
process preselection mask = +ss,lo(0x11000,0x1000)
terminal id (maj,min,host) = 242,511,example1(192.168.160.171)
audit session id = 103203403

例 28-3 選択されたユーザーを監査する (システム全体の監査はなし)

この例では、選択された 4 人のユーザーのシステム上でのログインと役割活動が監査されます。システムに対して監査クラスは事前選択されていません。

最初に、管理者は、システム全体のフラグをすべて削除します。

# auditconfig -setflags no
user default audit flags = no(0x0,0x0)

次に、管理者は、4 人のユーザーに対して 2 つの監査クラスを事前選択します。pf クラスは、例 28-10 で作成されます。

# usermod -K audit_flags=lo,pf:no jdoe
# usermod -K audit_flags=lo,pf:no kdoe
# usermod -K audit_flags=lo,pf:no pdoe
# usermod -K audit_flags=lo,pf:no zdoe

次に、管理者は、root 役割に対して pf クラスを事前選択します。

# userattr audit_flags root
# rolemod -K audit_flags=lo,pf:no root
# userattr audit_flags root
lo,pf:no

不当な侵入を記録し続けるために、管理者は、ユーザーに起因しないログインの監査を変更しません。

# auditconfig -getnaflags
active non-attributable audit flags = lo(0x1000,0x1000)
configured non-attributable audit flags = lo(0x1000,0x1000)

例 28-4 ユーザーの監査フラグを削除する

次の例では、管理者がユーザー固有の監査フラグをすべて削除します。現在ログインしているユーザーの既存のプロセスが引き続き監査されます。

管理者は、audit_flags キーワードに値を設定せずに usermod コマンドを実行します。

# usermod -K audit_flags= jdoe
# usermod -K audit_flags= kdoe
# usermod -K audit_flags= ldoe

次に、管理者はこの削除を確認します。

# userattr audit_flags jdoe
# userattr audit_flags kdoe
# userattr audit_flags ldoe

例 28-5 ユーザーのグループに対する権利プロファイルを作成する

管理者は、サイトにある管理上の権利プロファイルのすべてで pf クラスが明示的に監査されるようにしたいと考えています。割り当てを予定している権利プロファイルごとに、管理者は、監査フラグを含むサイト固有のバージョンを LDAP 内に作成します。

最初に、管理者は既存の権利プロファイルを複製し、次に、名前を変更して監査フラグを追加します。

# profiles -p "Network Wifi Management" -S ldap
profiles: Network Wifi Management> set name="Wifi Management"
profiles: Wifi Management> set desc="Audited wifi management"
profiles: Wifi Management> set audit_always=pf
profiles: Wifi Management> exit

使用を予定している権利プロファイルごとにこの手順を繰り返したあと、管理者は、Wifi Management プロファイル内の情報を一覧表示します。

# profiles -p "Wifi Management" -S ldap info
name=Wifi Management
desc=Audited wifi management
auths=solaris.network.wifi.config
help=RtNetWifiMngmnt.html
always_audit=pf

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

監査ポリシーを使用して、ローカルシステムの監査レコードの特性を決定します。監査ポリシーを変更することで、監査されるコマンドに関する詳細情報を記録したり、すべてのレコードにゾーン名を追加したり、サイトのほかのセキュリティー要件を満たしたりできます。

始める前に

Audit Configuration 権利プロファイルが割り当てられている必要があります。

  1. 必要なセキュリティー属性を持つ管理者になります。

    詳細は、「管理権限を取得する方法」を参照してください。

  2. 現在の監査ポリシーを表示します。
    $ auditconfig -getpolicy
    ...

    出力の説明については、「監査サービスのデフォルトを表示する方法」を参照してください。

  3. 使用可能なポリシーオプションを表示します。
    $ auditconfig -lspolicy
    policy string    description:
    ahlt             halt machine if it can not record an async event
    all              all policies for the zone
    arge             include exec environment args in audit recs
    argv             include exec command line args in audit recs
    cnt              when no more space, drop recs and keep a cnt
    group            include supplementary groups in audit recs
    none             no policies
    path             allow multiple paths per event
    perzone          use a separate queue and auditd per zone
    public           audit public files
    seq              include a sequence number in audit recs
    trail            include trailer token in audit recs
    windata_down     include downgraded window information in audit recs
    windata_up       include upgraded window information in audit recs
    zonename         include zonename token in audit recs

    注 - perzone および ahlt ポリシーオプションは、大域ゾーンでのみ設定できます。特定のポリシーオプションを使用した場合のトレードオフについては、「監査ポリシーについて」を参照してください。


  4. 選択した監査ポリシーオプションを有効または無効にします。
    # auditconfig [ -t ] -setpolicy [prefix]policy[,policy...]
    -t

    省略可能。一時的な (アクティブな) ポリシーを作成します。一時的なポリシーは、デバッグまたはテストの目的で設定できます。

    一時的なポリシーは、監査サービスが更新されるか、または auditconfig -setpolicy コマンドによってポリシーが変更されるまで有効です。

    prefix

    prefix の値が + のときは、ポリシーのリストが現在のポリシーに追加されます。prefix の値が - のときは、ポリシーのリストが現在のポリシーから削除されます。接頭辞を指定しない場合は、監査ポリシーがリセットされます。このオプションを使用すると、現在の監査ポリシーを保持できます。

    policy

    有効または無効にするポリシーを選択します。

例 28-6 ahlt 監査ポリシーオプションを設定する

この例では、cnt ポリシーが無効になり、ahlt ポリシーが有効になります。この構成では、監査キューがいっぱいになるとシステムの使用が停止され、非同期イベントが発生します。同期イベントが発生すると、スレッドを作成したプロセスがハングアップします。この構成は、可用性よりセキュリティーの方が重要な場合に適しています。詳細は、「非同期イベントおよび同期イベントの監査ポリシー」を参照してください。

# auditconfig -setpolicy -cnt
# auditconfig -setpolicy +ahlt

ahlt ポリシーの前にあるプラス記号 (+) により、このポリシーが現在のポリシー設定に追加されます。プラス記号がない場合は、ahlt ポリシーによって現在のポリシー設定が置き換えられます。

例 28-7 一時的な監査ポリシーを設定する

この例では、監査サービスが有効になり、ahlt 監査ポリシーが構成されます。管理者は、trail 監査ポリシーをアクティブなポリシーに追加しますが (+trail)、trail 監査ポリシーを永続的に使用するように監査サービスを構成してはいません (-t)。trail ポリシーは、破損した監査トレールの回復に役立ちます。

$ auditconfig -setpolicy ahlt
$ auditconfig -getpolicy
  configured audit policies = ahlt
  active audit policies = ahlt
$ auditconfig -t -setpolicy +trail
  configured audit policies = ahlt
  active audit policies = ahlt,trail

管理者は、デバッグが完了すると trail ポリシーを無効にします。

$ auditconfig -setpolicy -trail
$ auditconfig -getpolicy
  configured audit policies = ahlt
  active audit policies = ahlt

また、audit -s コマンドを実行して監査サービスを更新した場合も、この一時的なポリシーに加え、監査サービス内のほかの一時的な値がすべて削除されます。ほかの一時的な値の例については、「監査キュー制御を変更する方法」を参照してください。

例 28-8 perzone 監査ポリシーを設定する

この例では、perzone 監査ポリシーが大域ゾーン内の既存のポリシーに追加されます。perzone ポリシー設定は永続的なプロパティーとして格納されるため、perzone ポリシーはセッション中と、監査サービスが再開されたときに有効になります。

$ auditconfig -getpolicy
  configured audit policies = cnt
  active audit policies = cnt
$ auditconfig -setpolicy +perzone
$ auditconfig -getpolicy
  configured audit policies = perzone,cnt
  active audit policies = perzone,cnt

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

監査サービスは、監査キューパラメータのデフォルト値を提供します。auditconfig コマンドを使用すると、これらの値を検査、変更、および一時的に変更することができます。

始める前に

Audit Configuration 権利プロファイルが割り当てられている必要があります。

  1. 必要なセキュリティー属性を持つ管理者になります。

    詳細は、「管理権限を取得する方法」を参照してください。

  2. 監査キュー制御の現在の値を表示します。
    $ auditconfig -getqctrl
    ...

    出力の説明については、「監査サービスのデフォルトを表示する方法」を参照してください。

  3. 選択された監査キュー制御を変更します。

    監査キュー制御の例と説明については、auditconfig(1M) のマニュアルページを参照してください。

    • 一部またはすべての監査キュー制御を変更するには、-setqctrl オプションを使用します。

      # auditconfig [ -t ] -setqctrl hiwater lowater bufsz interval

      たとえば、ほかの制御を設定することなく interval 値を 10 に設定します。

      # auditconfig -setqctrl 0 0 0 10
    • 特定の監査キュー制御を変更するには、そのオプションを指定します。-setqdelay オプションは、# auditconfig -setqdelay 10 のように、-setqctrl 0 0 0 interval と同等です。

      # auditconfig [ -t ] -setqhiwater value
      # auditconfig [ -t ] -setqlowater value
      # auditconfig [ -t ] -setqbufsz value
      # auditconfig [ -t ] -setqdelay value

例 28-9 監査キュー制御をデフォルトにリセットする

管理者は、すべての監査キュー制御を設定したあと、リポジトリ内の lowater 値を元のデフォルトに変更します。

# auditconfig -setqctrl 200 5 10216 10
# auditconfig -setqctrl 200 0 10216 10
configured audit queue hiwater mark (records) = 200
no configured audit queue lowater mark
configured audit queue buffer size (bytes) = 10216
configured audit queue delay (ticks) = 10
active audit queue hiwater mark (records) = 200
active audit queue lowater mark (records) = 5
active audit queue buffer size (bytes) = 10216
active audit queue delay (ticks) = 10

あとで、管理者は lowater 値を現在のセッションのデフォルトに設定します。

# auditconfig -setqlowater 10
# auditconfig -getqlowater
configured audit queue lowater mark (records) = 10
active audit queue lowater mark (records) = 10

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

/etc/security/audit_warn スクリプトは、注意を要する可能性のある監査インシデントを管理者に通知するためのメールを生成します。このスクリプトをカスタマイズしたり、root 以外のアカウントにメールを送信したりできます。

perzone ポリシーが設定されている場合、非大域ゾーン管理者は、非大域ゾーンで audit_warn 電子メールエイリアスを構成する必要があります。

始める前に

root 役割になっている必要があります。

監査クラスの追加方法

独自の監査クラスを作成すると、サイトで監視する監査イベントだけをそのクラスに入れることができます。

1 つのシステム上でクラスを追加した場合は、監査されているすべてのシステムにその変更をコピーします。ベストプラクティスは、監査サービスを有効にする前に監査クラスを作成することです。


注意

注意 - Oracle Solaris OS の新しいリリースにアップグレードした場合は、カスタマイズされた audit_class ファイルを audit_class.new ファイルに手動でマージする必要があります。この新しいファイルには、重要な変更が含まれている可能性があります。アップグレードでの preserve=renamenew ファイルアクションについては、pkg(5) のマニュアルページを参照してください。


始める前に

このエントリは一意である必要があります。使用していないビットを選択する必要があります。顧客が使用できるビットは、/etc/security/audit_class ファイルで説明されています。

root 役割になっている必要があります。

  1. (省略可能) audit_class ファイルのバックアップコピーを保存します。
    # cp /etc/security/audit_class /etc/security/audit_class.orig
  2. audit_class ファイルに新しいエントリを追加します。

    各エントリの書式は次のとおりです。

    0x64bitnumber:flag:description

    各フィールドについては、audit_class(4) のマニュアルページを参照してください。既存のクラスの一覧については、/etc/security/audit_class ファイルを参照してください。

例 28-10 新しい監査クラスを作成する

この例では、ある役割で実行される管理コマンドを保持するためのクラスを作成します。audit_class ファイルに追加されるエントリは次のとおりです。

0x0100000000000000:pf:profile command

このエントリによって、新しい pf 監査クラスが作成されます。例 28-11 で、この新しい監査クラスにデータを割り当てます。

注意事項

audit_class ファイルをカスタマイズした場合は、システムの監査事前選択マスクに対するユーザー例外がすべて、新しい監査クラスと整合性がとれていることを確認してください。audit_flags 値が audit_class ファイルのサブセットでない場合は、エラーが発生します。

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

既存の監査クラスのサイズを減らしたり、独自のクラスにイベントを入れたりするために、監査イベントのクラスメンバーシップを変更できます。


注意

注意 - audit_event ファイルではイベントをコメントにしないでください。このファイルは、praudit コマンドがバイナリ監査ファイルを読み取るときに使用します。また、このファイルに一覧表示されたイベントが、保管された監査ファイルに含まれることがあります。


1 つのシステム上で監査イベントからクラスへのマッピングを再構成した場合は、その変更を、監査されているすべてのシステムにコピーします。ベストプラクティスは、ユーザーがログインする前にイベントからクラスへのマッピングを変更することです。


注意

注意 - Oracle Solaris OS の新しいリリースにアップグレードした場合は、カスタマイズされた audit_event ファイルを audit_event.new ファイルに手動でマージする必要があります。この新しいファイルには、重要な変更が含まれている可能性があります。アップグレードでの preserve=renamenew ファイルアクションについては、pkg(5) のマニュアルページを参照してください。


始める前に

root 役割になっている必要があります。

  1. (省略可能) audit_event ファイルのバックアップコピーを保存します。
    # cp /etc/security/audit_event /etc/security/audit_event.orig
  2. 特定のイベントがどのクラスに属するかを変更するには、イベントの class-list を変更します。

    各エントリの書式は次のとおりです。

    number:name:description:class-list
    number

    監査イベント ID です。

    name

    監査イベントの名前です。

    description

    通常、監査レコードの作成を発生させるシステムコールまたは実行可能プログラム。

    class-list

    コンマ区切りの監査クラスの一覧です。

例 28-11 既存の監査イベントを新しいクラスにマッピングする

この例では、既存の監査イベントを例 28-10 で作成された新しいクラスにマップします。デフォルトでは、AUE_PFEXEC 監査イベントは、psexua、および as の 4 つのクラスにマップされます。新しいクラスを作成することによって、管理者は、ほかの 4 つのどのクラスに含まれるイベントも監査することなく AUE_PFEXEC イベントを監査できます。

# grep pf /etc/security/audit_class
0x0100000000000000:pf:profile command
# vi /etc/security/audit_event
116:AUE_PFEXEC:execve(2) with pfexec enabled:pf
# auditconfig -setflags lo,pf
user default audit flags = pf,lo(0x0100000000001000,0x0100000000001000)