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

用語集

索引

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

このセクションでは、監査のさまざまなエラーメッセージ、設定、およびほかのツールによって提供される監査について説明します。これらの手順は、必要な監査イベントを記録したり、監査の問題をデバッグしたりするのに役立ちます。

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

次のタスクマップは、監査をトラブルシューティングするための手順を示しています。

問題
解決方法
参照先
監査を構成したときに監査レコードがログに記録されないのはなぜでしょうか。
監査サービスをトラブルシューティングします。
収集される監査情報を減らすには、どうすればよいでしょうか。
監査が必要なイベントについてのみ、監査を行います。
システムでのユーザーの動作をすべて監査するには、どうすればよいでしょうか。
すべてのコマンドについて 1 人または複数のユーザーを監査します。
記録される監査イベントを変更して、その変更内容を既存のセッションに適用するには、どうすればよいでしょうか。
ユーザーの事前選択マスクを更新します。
変更内容を特定のファイルに格納するには、どうすればよいでしょうか。
ファイルの変更を監査し、auditreduce コマンドを使用して特定のファイルを検索します。
監査ファイルのサイズを減らすには、どうすればよいでしょうか。
バイナリ監査ファイルのサイズを制限します。
監査ファイルに使用するファイルシステムの容量を減らすには、どうすればよいでしょうか。
ZFS 割り当て制限と圧縮を使用します。
audit_event ファイルから監査イベントを削除するには、どうすればよいでしょうか。
audit_event ファイルを正しく更新します。
Oracle Solaris システムへのすべてのログインを監査するには、どうすればよいでしょうか。
システムからのログインを監査します。
FTP 転送で監査レコードが保持されないのはなぜでしょうか。
ログを生成するユーティリティーに適切な監査ツールを使用します。

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

監査機能はデフォルトで有効になります。監査は無効になっていないと考えられるにもかかわらず、アクティブなプラグインに監査レコードが送信されていない場合は、次の手順を使用して問題を分離します。

始める前に

システムファイルを変更するには、solaris.admin.edit/path-to-system-file 承認が割り当てられている必要があります。デフォルトでは、root 役割がこの承認を持っています。監査を構成するには、Audit Configuration 権利プロファイルが割り当てられている管理者になる必要があります。

  1. 監査が実行中であるかどうかを判定します。

    次のいずれかの方法を使用します。

    • 現在の監査の状況を確認します。

      次のリストは、監査が実行中でないことを示しています。

      # auditconfig -getcond
      audit condition = noaudit

      次のリストは、監査が実行中であることを示しています。

      # auditconfig -getcond
      audit condition = auditing
    • 監査サービスが実行中であることを確認します。

      次のリストは、監査が実行中でないことを示しています。

      # svcs -x auditd
      svc:/system/auditd:default (Solaris audit daemon)
       State: disabled since Sun Oct 10 10:10:10 2010
      Reason: Disabled by an administrator.
         See: http://support.oracle.com/msg/SMF-8000-05
         See: auditd(1M)
         See: audit(1M)
         See: auditconfig(1M)
         See: audit_flags(5)
         See: audit_binfile(5)
         See: audit_syslog(5)
         See: audit_remote(5)
         See: /var/svc/log/system-auditd:default.log
      Impact: This service is not running.

      次のリストは、監査サービスが実行中であることを示しています。

      # svcs auditd
      STATE          STIME    FMRI
      online         10:10:10 svc:/system/auditd:default

    監査サービスが実行中でない場合、有効にします。手順については、「監査サービスを有効にする方法」を参照してください。

  2. 少なくとも 1 つのプラグインがアクティブであることを確認します。
    # audit -v
    audit: no active plugin found

    どのプラグインもアクティブでない場合は、1 つのプラグインをアクティブにします。

    # auditconfig -setplugin audit_binfile active
    # audit -v
    configuration ok
  3. カスタマイズ監査クラスを作成した場合、そのクラスにイベントが割り当て済みであることを確認します。

    たとえば、次のフラグのリストには、Oracle Solaris ソフトウェアでは提供されなかった pf クラスが含まれています。

    # auditconfig -getflags
    active user default audit flags = pf,lo(0x0100000000000000,00x0100000000001000)
    configured user default audit flags = pf,lo(0x0100000000000000,00x0100000000001000)

    pf クラスの作成については、「監査クラスの追加方法」を参照してください。

    1. クラスが audit_class ファイルで定義されていることを確認します。

      監査クラスが定義されている必要があり、そのマスクが一意である必要があります。

      # grep pf /etc/security/audit_classVerify class exists
      0x0100000000000000:pf:profile
      # grep 0x0100000000000000 /etc/security/audit_classEnsure mask is unique
      0x0100000000000000:pf:profile

      一意でないマスクを置き換えます。クラスが定義されていない場合、定義します。それ以外の場合は、有効な値で auditconfig -setflags コマンドを実行して現在のフラグをリセットします。

    2. イベントがクラスに割り当てられていることを確認します。

      次のいずれかの方法を使用します。

      # auditconfig -lsevent | egrep " pf|,pf|pf,"
      AUE_PFEXEC      116 pf execve(2) with pfexec enabled
      # auditrecord -c pf
      List of audit events assigned to pf class

      イベントがクラスに割り当てられていない場合、適切なイベントをこのクラスに割り当てます。

  4. 前の手順で問題が見つからなかった場合は、電子メールとログファイルを確認します。
    1. audit_warn エイリアスに送信された電子メールを読み取ります。

      audit_warn スクリプトは、audit_warn 電子メールエイリアスにアラートメッセージを送信します。正しく構成されたエイリアスが存在しない場合、メッセージは root アカウントに送信されます。

    2. 監査サービスのログファイルを確認します。

      svcs -s auditd コマンドの出力には、監査サービスが生成する監査ログのフルパスが一覧表示されます。例については、手順 1 のリストを参照してください。

    3. システムログファイルを確認します。

      audit_warn スクリプトは、/var/log/syslog ファイルに daemon.alert メッセージを書き込みます。

      /var/adm/messages ファイルに情報が含まれている可能性があります。

  5. 問題を見つけて修正したあと、監査サービスを有効にするか、または再開します。
    # audit -s

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

サイトでどのイベントを監査する必要があるかを決定したあと、推奨される次の方法を使用して、必要な情報のみを含む監査ファイルを作成します。

始める前に

監査クラスを事前選択し、監査ポリシーを設定するには、Audit Configuration 権利プロファイルが割り当てられている必要があります。システムファイルを変更するには、solaris.admin.edit/path-to-system-file 承認が割り当てられている必要があります。デフォルトでは、root 役割がこの承認を持っています。ユーザー、役割、および権利プロファイルに監査フラグを割り当てるには、root 役割になる必要があります。

  1. デフォルトの監査ポリシーを使用します。

    具体的には、監査証跡へのイベントと監査トークンの追加を回避します。次のポリシーによって、監査トレールのサイズが拡大します。

    • arge ポリシー – 環境変数を execv 監査イベントに追加します。execv イベントの監査のコストは高くなることがありますが、監査レコードへの変数の追加のコストは高くありません。

    • argv ポリシー – コマンドパラメータを execv 監査イベントに追加します。execv イベントの監査のコストは高くなることがありますが、監査レコードへのコマンドパラメータの追加のコストは高くありません。

    • public ポリシー – ファイルイベントが監査されている場合は、公開オブジェクトに対して監査可能なイベントが発生するたびに、監査トレールにイベントを追加します。ファイルクラスには、fafcfdfmfrfwcl などがあります。公開ファイルの定義については、「監査の用語と概念」を参照してください。

    • path ポリシー – path トークンを、省略可能な path トークンを含む監査イベントに追加します。

    • group ポリシー – group トークンを、省略可能な newgroups トークンを含む監査イベントに追加します。

    • seq ポリシー – sequence トークンをすべての監査イベントに追加します。

    • trail ポリシー – trailer トークンをすべての監査イベントに追加します。

    • windata_down ポリシー – Trusted Extensions が構成されたシステム上で、ラベル付きウィンドウ内の情報がダウングレードされるとイベントを追加します。

    • windata_up ポリシー – Trusted Extensions が構成されたシステム上で、ラベル付きウィンドウ内の情報がアップグレードされるとイベントを追加します。

    • zonename ポリシー – ゾーン名をすべての監査イベントに追加します。大域ゾーンが唯一の構成されたゾーンである場合は、文字列 zone, global をすべての監査イベントに追加します。

    次の監査レコードは、ls コマンドの使用を示しています。ex クラスが監査対象で、デフォルトのポリシーが使用されています。

    header,129,2,AUE_EXECVE,,mach1,2010-10-14 11:39:22.480 -07:00
    path,/usr/bin/ls
    attribute,100555,root,bin,21,320271,18446744073709551615
    subject,jdoe,root,root,root,root,2404,50036632,82 0 mach1
    return,success,0

    すべてのポリシーがオンの場合、同じレコードが次のようになります。

    header,1578,2,AUE_EXECVE,,mach1,2010-10-14 11:45:46.658 -07:00
    path,/usr/bin/ls
    attribute,100555,root,bin,21,320271,18446744073709551615
    exec_args,2,ls,/etc/security
    exec_env,49,MANPATH=/usr/share/man,USER=jdoe,GDM_KEYBOARD_LAYOUT=us,EDITOR=gedit,
      LANG=en_US.UTF-8,GDM_LANG=en_US.UTF-8,PS1=#,GDMSESSION=gnome,SESSIONTYPE=1,SHLVL=2,
      HOME=/home/jdoe,LOGNAME=jdoe,G_FILENAME_ENCODING=@locale,UTF-8, PRINTER=example-dbl,
    ...
    path,/lib/ld.so.1
    attribute,100755,root,bin,21,393073,18446744073709551615
    subject,jdoe,root,root,root,root,2424,50036632,82 0 mach1
    group,root,other,bin,sys,adm,uucp,mail,tty,lp,nuucp,daemon
    return,success,0
    zone,global
    sequence,197
    trailer,1578
  2. audit_syslog プラグインを使用して、一部の監査イベントを syslog に送信します。

    これらの監査イベントを audit_binfile または audit_remote プラグインには送信しないでください。この方法は、syslog ログに送信する監査イベントのバイナリレコードを保持する必要がない場合にのみ有効です。

  3. 設定するシステム全体の監査フラグの数を減らし、個々のユーザーを監査します。

    システム全体で監査される監査クラスの数を減らすことによって、すべてのユーザーに対する監査の量を削減します。

    特定のユーザーや役割のイベントを監査するには、roleadd rolemoduseradd、および usermod コマンドの audit_flags キーワードを使用します。例については、例 28-21 および usermod(1M) のマニュアルページを参照してください。

    特定の権利プロファイルのイベントを監査するには、profiles コマンドの always_audit および never_audit プロパティーを使用します。詳細は、profiles(1) のマニュアルページを参照してください。


    注 - ほかのセキュリティー属性と同様に、監査フラグは検索順序によって影響を受けます。詳細は、「割り当てられたセキュリティー属性の検索順序」を参照してください。


  4. 独自のカスタマイズ監査クラスを作成します。

    使用しているシステムで監査クラスを作成できます。これらのクラスに、モニターが必要な監査イベントのみを指定します。手順については、「監査クラスの追加方法」を参照してください。


    注 - 監査構成ファイルの変更の影響については、「監査構成ファイルとパッケージ化」を参照してください。


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

サイトのセキュリティーポリシーの一環として、サイトによっては、root アカウントや管理役割によって実行されるすべてのコマンドの監査レコードが必要になります。サイトによっては、すべてのユーザーによるすべてのコマンドの監査レコードが必要な場合があります。さらに、サイトでコマンド引数や環境を記録することが必要になる場合もあります。

始める前に

監査クラスを事前選択し、監査ポリシーを設定するには、Audit Configuration 権利プロファイルが割り当てられている管理者になる必要があります。ユーザー、役割、および権利プロファイルに監査フラグを割り当てるには、root 役割になる必要があります。

  1. lo クラスおよび ex クラスを監査します。

    ex クラスは、exec() 関数および execve() 関数のすべての呼び出しを監査します。

    lo クラスは、ログイン、ログアウト、および画面ロックを監査します。次の出力は、ex および lo クラス内のすべてのイベントを一覧表示しています。

    % auditconfig -lsevent | grep " lo "
    AUE_login                       6152 lo login - local
    AUE_logout                      6153 lo logout
    AUE_telnet                      6154 lo login - telnet
    AUE_rlogin                      6155 lo login - rlogin
    AUE_rshd                        6158 lo rsh access
    AUE_su                          6159 lo su
    AUE_rexecd                      6162 lo rexecd
    AUE_passwd                      6163 lo passwd
    AUE_rexd                        6164 lo rexd
    AUE_ftpd                        6165 lo ftp access
    AUE_ftpd_logout                 6171 lo ftp logout
    AUE_ssh                         6172 lo login - ssh
    AUE_role_login                  6173 lo role login
    AUE_newgrp_login                6212 lo newgrp login
    AUE_admin_authenticate          6213 lo admin login
    AUE_screenlock                  6221 lo screenlock - lock
    AUE_screenunlock                6222 lo screenlock - unlock
    AUE_zlogin                      6227 lo login - zlogin
    AUE_su_logout                   6228 lo su logout
    AUE_role_logout                 6229 lo role logout
    AUE_smbd_session                6244 lo smbd(1m) session setup
    AUE_smbd_logoff                 6245 lo smbd(1m) session logoff
    AUE_ClientConnect               9101 lo client connection to x server
    AUE_ClientDisconnect            9102 lo client disconn. from x server
    % auditconfig -lsevent | egrep " ex |,ex |ex,"
    AUE_EXECVE                        23 ex,ps execve(2)
    • 管理役割に対してこれらのクラスを監査するには、それらの役割のセキュリティー属性を変更します。

      次の例で、root は役割です。このサイトでは、sysadmauditadm、および netadm の 3 つの役割が作成されています。すべての役割で、ex および lo クラス内のイベントの成功と失敗が監査されます。

      # rolemod -K audit_flags=lo,ex:no root
      # rolemod -K audit_flags=lo,ex:no sysadm
      # rolemod -K audit_flags=lo,ex:no auditadm
      # rolemod -K audit_flags=lo,ex:no netadm
    • すべてのユーザーに対してこれらのクラスを監査するには、システム全体のフラグを設定します。
      # auditconfig -setflags lo,ex

      出力は次のようになります。

      header,129,2,AUE_EXECVE,,mach1,2010-10-14 12:17:12.616 -07:00
      path,/usr/bin/ls
      attribute,100555,root,bin,21,320271,18446744073709551615
      subject,jdoe,root,root,root,root,2486,50036632,82 0 mach1
      return,success,0
  2. コマンドへの引数を記録するには、argv ポリシーを追加します。
    # auditconfig -setpolicy +argv

    exec_args トークンは、コマンド引数を記録します。

    header,151,2,AUE_EXECVE,,mach1,2010-10-14 12:26:17.373 -07:00
    path,/usr/bin/ls
    attribute,100555,root,bin,21,320271,18446744073709551615
    exec_args,2,ls,/etc/security
    subject,jdoe,root,root,root,root,2494,50036632,82 0 mach1
    return,success,0
  3. コマンドが実行される環境を記録するには、arge ポリシーを追加します。
    # auditconfig -setpolicy +arge

    exec_env トークンは、コマンド環境を記録します。

    header,1460,2,AUE_EXECVE,,mach1,2010-10-14 12:29:39.679 -07:00
    path,/usr/bin/ls
    attribute,100555,root,bin,21,320271,18446744073709551615
    exec_args,2,ls,/etc/security
    exec_env,49,MANPATH=/usr/share/man,USER=jdoe,GDM_KEYBOARD_LAYOUT=us,EDITOR=gedit,
    LANG=en_US.UTF-8,GDM_LANG=en_US.UTF-8,PS1=#,GDMSESSION=gnome,SESSIONTYPE=1,SHLVL=2,
    HOME=/home/jdoe,LOGNAME=jdoe,G_FILENAME_ENCODING=@locale,UTF-8,
    PRINTER=example-dbl,...,_=/usr/bin/ls
    subject,jdoe,root,root,root,root,2502,50036632,82 0 mach1
    return,success,0

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

目標が、/etc/passwd/etc/default ディレクトリ内のファイルなどの、限られた数のファイルに対するファイル書き込みをログに記録することである場合は、auditreduce コマンドを使用してこれらのファイルを見つけることができます。

始める前に

root 役割は、この手順内のすべてのタスクを実行できます。

管理権限が組織内に分散している場合は、次の点を考慮してください。

詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. fw クラスを監査します。

    このクラスをユーザーまたは役割の監査フラグに追加すると、このクラスをシステム全体の監査事前選択マスクに追加する場合に比べて、生成されるレコードが少なくなります。次の手順のいずれかを実行します。

    • fw クラスを特定の役割に追加します。
      # rolemod -K audit_flags=fw:no root
      # rolemod -K audit_flags=fw:no sysadm
      # rolemod -K audit_flags=fw:no auditadm
      # rolemod -K audit_flags=fw:no netadm
    • fw クラスをシステム全体のフラグに追加します。
      # auditconfig -getflags
      active user default audit flags = lo(0x1000,0x1000)
      configured user default audit flags = lo(0x1000,0x1000)
      # auditconfig -setflags lo,fw
      user default audit flags = lo,fw(0x1002,0x1002)
  2. または、成功したファイル書き込みを監査します。

    成功を監査すると、失敗と成功を監査する場合に比べて、生成されるレコードが少なくなります。次の手順のいずれかを実行します。

    • +fw フラグを特定の役割に追加します。
      # rolemod -K audit_flags=+fw:no root
      # rolemod -K audit_flags=+fw:no sysadm
      # rolemod -K audit_flags=+fw:no auditadm
      # rolemod -K audit_flags=+fw:no netadm
    • +fw フラグをシステム全体のフラグに追加します。
      # auditconfig -getflags
      active user default audit flags = lo(0x1000,0x1000)
      configured user default audit flags = lo(0x1000,0x1000)
      # auditconfig -setflags lo,+fw
      user default audit flags = lo,+fw(0x1002,0x1000)
    • システム全体のフラグで成功と失敗を監査している場合は、特定のユーザーや役割の成功のみを監査します。
      # auditconfig -getflags
      active user default audit flags = lo,fw(0x1002,0x1002)
      configured user default audit flags = lo,fw(0x1002,0x1002)
      # rolemod -K audit_flags=^-fw:no root
      # rolemod -K audit_flags=^-fw:no sysadm
      # rolemod -K audit_flags=^-fw:no auditadm
      # rolemod -K audit_flags=^-fw:no netadm

      システム全体のフラグはそのままで変更されませんが、これらの 4 つの役割の事前選択マスクが変更されます。

      # auditconfig -getflags
      active user default audit flags = lo,fw(0x1002,0x1000)
      configured user default audit flags = lo,fw(0x1002,0x1000)
  3. 特定のファイルの監査レコードを検索するには、auditreduce コマンドを使用します。
    # auditreduce -o file=/etc/passwd,/etc/default -O filechg

    auditreduce コマンドは、file 引数のすべてのインスタンスについて監査証跡を検索します。このコマンドにより、接尾辞 filechg を持つバイナリファイルが作成されます。このファイルには、必要なファイルのパス名を含むすべてのレコードが含まれています。-o file=pathname オプションの構文については、auditreduce(1M) のマニュアルページを参照してください。

  4. filechg ファイルを読み取るには、praudit コマンドを使用します。
    # praudit *filechg

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

すでにログインしているユーザーを、システム全体の監査事前選択マスクの変更について監査するようにしたいとします。

始める前に

Audit Configuration 権利プロファイルが割り当てられている管理者になる必要があります。ユーザーセッションを終了するには、Process Management 権利プロファイルが割り当てられている管理者になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

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

メンテナンスのために、サイトでイベントが監査されないようにする場合があります。

始める前に

root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. イベントのクラスを no クラスに変更します。

    注 - 監査構成ファイルの変更の影響については、「監査構成ファイルとパッケージ化」を参照してください。


    たとえば、イベント 26 および 27 は pm クラスに属しています。

    ## audit_event file
    ...
    25:AUE_VFORK:vfork(2):ps
    26:AUE_SETGROUPS:setgroups(2):pm
    27:AUE_SETPGRP:setpgrp(2):pm
    28:AUE_SWAPON:swapon(2):no
    ...

    これらのイベントを no クラスに変更します。

    ## audit_event file
    ...
    25:AUE_VFORK:vfork(2):ps
    26:AUE_SETGROUPS:setgroups(2):no
    27:AUE_SETPGRP:setpgrp(2):no
    28:AUE_SWAPON:swapon(2):no
    ...

    pm クラスが現在監査中である場合でも、既存のセッションはイベント 26 および 27 を監査します。これらのイベントの監査を停止するには、「ログインしているユーザーの事前選択マスクを更新する方法」の手順に従って、ユーザーの事前選択マスクを更新する必要があります。


    注意

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


  2. カーネルイベントをリフレッシュします。
    # auditconfig -conf
    Configured 283 kernel events.

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

バイナリ監査ファイルは無制限に増大します。保管や検索を容易にするために、サイズの制限が必要となることがあります。元のファイルから小さいバイナリファイルを作成することもできます。

始める前に

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

  1. p_fsize 属性を使用して、個々のバイナリ監査ファイルのサイズを制限します。

    p_fsize 属性については、audit_binfile(5) のマニュアルページの「オブジェクト属性」のセクションを参照してください。

    例については、例 28-14 を参照してください。

  2. auditreduce コマンドを使用してレコードを選択し、これらのレコードを、さらに分析するためにより小さなファイルに書き込みます。

    auditreduce -lowercase オプションは特定のレコードを検索します。

    auditreduce -Uppercase オプションは選択したレコードをファイルに書き込みます。詳細は、auditreduce(1M) のマニュアルページを参照してください。「ローカルシステム上の監査レコードの管理 (タスク)」も参照してください。

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

監査ファイルは拡大する場合があります。例 28-14 に示すように、ファイルのサイズに上限を設定できます。この手順では、圧縮を使用してサイズを削減します。

始める前に

ZFS File System Management および ZFS Storage Management 権利プロファイルが割り当てられている管理者になる必要があります。後者のプロファイルを使用すると、ストレージプールを作成できます。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. ZFS ファイルシステムを監査ファイル専用にします。

    手順については、「監査ファイルのための ZFS ファイルシステムを作成する方法」を参照してください。

  2. 次のオプションのいずれかを使用して ZFS ストレージプールを圧縮します。

    どちらのオプションを使用した場合でも、監査ファイルシステムが圧縮されます。監査サービスがリフレッシュされると、圧縮率が表示されます。

    圧縮を設定するには、zfs set compression=on dataset コマンドを使用します。次の例では、ZFS プール auditp/auditf がデータセットです。

    • デフォルトの圧縮アルゴリズムを使用します。
      # zfs set compression=on auditp/auditf
      # audit -s
      # zfs get compressratio auditp/auditf
      NAME           PROPERTY       VALUE  SOURCE
      auditp/auditf  compressratio  4.54x  -
    • より高い圧縮アルゴリズムを使用します。
      # zfs set compression=gzip-9 auditp/auditf
      # zfs get compression auditp/auditf
      NAME           PROPERTY     VALUE     SOURCE
      auditp/auditf  compression  gzip-9    local
      # audit -s
      # zfs get compressratio auditp/auditf
      NAME           PROPERTY       VALUE  SOURCE
      auditp/auditf  compressratio  16.89x  -

      gzip-9 圧縮アルゴリズムでは、デフォルトの圧縮アルゴリズムである lzjb に比べて、占有する容量が 1/3 少ないファイルが生成されます。詳細は、『Oracle Solaris 11.1 の管理: ZFS ファイルシステム』の第 5 章「Oracle Solaris ZFS ファイルシステムの管理」を参照してください。

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

Oracle Solaris OS は、ソースには関係なく、すべてのログインを監査できます。

始める前に

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

  1. lo クラスを、ユーザーに起因するイベントとユーザーに起因しないイベントについて監査します。

    このクラスは、ログイン、ログアウト、および画面ロックを監査します。これらのクラスは、デフォルトで監査されます。

    # auditconfig -getflags
    active user default audit flags = lo(0x1000,0x1000)
    configured user default audit flags = lo(0x1000,0x1000)
    # auditconfig -getnaflags
    active non-attributable audit flags = lo(0x1000,0x1000)
    configured non-attributable audit flags = lo(0x1000,0x1000)
  2. 値が変更されている場合は、lo フラグを追加します。
    # auditconfig -getflags
    active user default audit flags = as,st(0x20800,0x20800)
    configured user default audit flags = as,st(0x20800,0x20800)
    # auditconfig -setflags lo,as,st
    user default audit flags = as,lo,st(0x21800,0x21800)
    # auditconfig -getnaflags
    active non-attributable audit flags = na(0x400,0x400)
    configured non-attributable audit flags = na(0x400,0x400)
    # auditconfig -setnaflags lo,na
    non-attributable audit flags = lo,na(0x1400,0x1400)

    注 - ssh ログインを監査するには、システムで Oracle Solaris から ssh デーモンが実行されている必要があります。このデーモンは、Oracle Solaris システム上の監査サービスに合わせて変更されています。詳細は、「Secure Shell と OpenSSH プロジェクト」を参照してください。


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

FTP サービスは、ファイル転送のログを作成します。ssh プロトコルの下で実行される SFTP サービスは、ft 監査クラスを事前選択することによって監査できます。これらの両方のサービスへのログインを監査できます。

始める前に

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

  1. FTP サービスのコマンドとファイル転送をログに記録するには、proftpd(8) のマニュアルページを参照してください。

    使用可能なログ作成オプションについては、ProFTPD Logging を参照してください。

  2. sftp のアクセスとファイル転送をログに記録するには、ft クラスを監査します。

    ft クラスには、次の SFTP トランザクションが含まれています。

    % auditrecord -c ft
    file transfer: chmod ...
    file transfer: chown ...
    file transfer: get ...
    file transfer: mkdir ...
    file transfer: put ...
    file transfer: remove ...
    file transfer: rename ...
    file transfer: rmdir ...
    file transfer: session start ...
    file transfer: session end ...
    file transfer: symlink ...
    file transfer: utimes
  3. FTP サーバーへのアクセスを記録するには、lo クラスを監査します。

    次の出力に示すとおり、proftpd デーモンへのログインおよびログアウトで監査レコードが生成されます。

    % auditrecord -c lo | more
    ...
    FTP server login
      program     proftpd              See in.ftpd(1M)
      event ID    6165                 AUE_ftpd
      class       lo                   (0x0000000000001000)
          header
          subject
          [text]                       error message
          return
    
    FTP server logout
      program     proftpd              See in.ftpd(1M)
      event ID    6171                 AUE_ftpd_logout
      class       lo                   (0x0000000000001000)
          header
          subject
          return
    ...