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

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

監査が有効になっているはずだが、1 次監査ディレクトリに監査レコードがない場合、次の手順を試してください。

始める前に

ネームサービスの hosts データベースが正しく構成され、機能しています。ネームサービスの問題をデバッグする場合は、次の情報を参照してください。

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

    • c2audit カーネルモジュールがロード済みであることを確認します。


      # modinfo | grep c2audit
      

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


      40  132ce90  14230 186   1  c2audit (C2 system call)
    • 監査デーモンが動作していることを確認します。

      auditd サービスの状態を確認します。次のリストは、監査が実行中でないことを示しています。


      # svcs -x auditd
      svc:/system/auditd:default (Solaris audit daemon)
       State: disabled since Fri Aug 14 19:02:35 2009
      Reason: Disabled by an administrator.
         See: http://sun.com/msg/SMF-8000-05
         See: auditd(1M)
         See: audit(1M)
      Impact: This service is not running.

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


      # svcs auditd
      STATE          STIME    FMRI
      online         10:10:10 svc:/system/auditd:default
    • 現在の監査の状況を確認します。

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


      # auditconfig -getcond
      auditconfig: auditon(2) failed.
      auditconfig: error = Operation not supported(48)

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


      # auditconfig -getcond
      audit condition = auditing

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

  2. audit_control ファイルの構文を確認します。


    # audit -v /etc/security/audit_control
    audit: audit_control must have either a valid "dir:" entry 
    or a valid "plugin:" entry with "p_dir:" specified.

    エラーを修正します。syntax ok というメッセージは、ファイルの構文が正しいことを示しています。

  3. audit_control ファイルについて、flags キーワードおよび naflags キーワードの値が有効であることを確認します。


    # grep flags /etc/security/audit_control
    flags:lo
    naflags:na,lp
    

    audit_control ファイルに無効な値が含まれている場合、有効な値を指定します。前述の例で、lp は無効なクラスです。

  4. audit_user ファイルについて、すべてのユーザーの値が有効であることを確認します。


    # tail audit_user
    ...
    # User Level Audit User File
    #
    # File Format
    #
    #	username:always:never
    #
    root:lo:no
    admin:lp:no

    audit_user ファイルに無効な値が含まれている場合、有効な値を指定します。前述の例で、lp は無効なクラスです。

  5. カスタマイズ監査クラスを作成した場合、そのクラスにイベントが割り当て済みであることを確認します。

    たとえば、次の audit_control ファイルには、Oracle Solaris ソフトウェアが配信していないクラスが含まれています。


    # grep flags /etc/security/audit_control
    flags:lo,pf
    naflags:na,lo

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

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

      監査クラスマスクは一意である必要があります。


      # grep pf /etc/security/audit_class
      0x10000000:pf:profile command

      クラスが定義されていない場合、定義します。そうでない場合、audit_control ファイルおよび audit_user ファイルからクラスを削除します。

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


      # grep pf /etc/security/audit_event
      6180:AUE_prof_cmd:profile command:ua,as,pf
      

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

  6. 前述の手順で問題が見つからなかった場合、システムログファイル /var/adm/messages および /var/log/syslog を確認します。

    1. 問題を検出して修正します。

    2. 次に、監査サービスが実行中である場合、再起動します。


      # audit -s
      
    3. 監査サービスが実行中でない場合、有効にします。

      手順については、「監査サービスを有効にする方法」を参照してください。