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

監査サービスの構成

この節では、監査サービスを構成して有効にするために必要な作業について説明します。

監査サービスの構成 (作業マップ)

次の表は、監査の構成に必要な操作の一覧です。

作業 

説明 

参照先 

1. 監査の計画 

監査を構成する前に、構成上の問題を解決する 

第 24 章「監査の計画」

2. 監査パーティションの作成 

監査ファイルのパーティションを作成する 

監査パーティションの作成方法

3. audit_warn 別名の作成

電子メール警告を送信するユーザーを定義する 

audit_warn 別名の構成方法

4. (省略可能) 監査ポリシーの変更 

追加の監査レコードや監査条件を定義する 

監査ポリシーを有効または無効にする方法

5. (省略可能) 監査構成ファイルの変更 

監査を必要とするイベント、クラス、およびユーザーを選択する 

監査ファイルの構成

6. 監査の有効化 

監査を有効にする 

監査を有効にする方法

7. (省略可能) 監査の無効化 

監査を無効にする 

監査を無効にする方法

8. (省略可能) デバイス割り当ての開始 

より安全にアクセスできるリムーバブルメディアを選択する 

デバイス割り当ての管理

監査パーティションの作成方法

次の手順では、監査用のパーティションの作成方法、および監査に対応するファイルシステムとディレクトリの作成方法について説明します。すでに空のパーティションがある場合、またはすでに空のファイルシステムをマウントしている場合は、必要に応じて手順を省略してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 必要なディスク容量を決定します。

    ホストごとに 200M バイト以上を割り当てます。ただし、ディスク容量の要件は、実行する監査のボリュームによって異なります。つまり、ディスク容量の要件が割り当てる数値を超えることがあります。予備ディレクトリのパーティション領域も含めてください。

  3. 必要に応じて、監査パーティションを作成します。

    この手順は、サーバーのインストール時に実行するのが最も簡単です。サーバーにマウントされていないディスク上にパーティションを作成することもできます。パーティション作成方法の詳細については、『Solaris のシステム管理 (基本編)』の「UFS ファイルシステムの作成」を参照してください。


    # newfs /dev/rdsk/cwtxdysz
    

    /dev/rdsk/cwtxdysz は、パーティションの raw デバイス名です。

    ローカルホストを監査する場合は、予備の監査ディレクトリも作成します。

  4. 新しいパーティションのマウント先を作成します。


    # mkdir /var/audit/server-name.n
    

    server-name.n は、サーバー名と、各パーティションの識別番号です。この識別番号は省略できますが、多数の監査ディレクトリを作成する場合はこの番号を使用すると便利です。

  5. 新しいパーティションを自動的にマウントするエントリを追加します。

    /etc/vfstab ファイルに次のような行を追加します。


    /dev/dsk/cwtxdysz /dev/rdsk/cwtxdysz /var/audit/server-name.n   ufs  2  yes
  6. (省略可能) 各パーティションの最小空き容量のしきい値を削除します。

    デフォルトの構成を使用した場合、ディレクトリの 80% がいっぱいになったときに警告が生成されます。このため、パーティション上に空き容量を予約する必要はありません。


    # tunefs -m 0 /var/audit/server-name.n
    
  7. 新しい監査パーティションをマウントします。


    # mount /var/audit/server-name.n
    
  8. 新しいパーティションに監査ディレクトリを作成します。


    # mkdir /var/audit/server-name.n/files
    
  9. マウント先と新しいディレクトリへのアクセス権を訂正します。


    # chmod -R 750 /var/audit/server-name.n/files
    
  10. (省略可能) ファイルサーバー上で、ほかのホストからアクセスできるファイルシステムを定義します。

    通常は、監査レコードを格納するために、ディスクファームをインストールします。監査ディレクトリを複数のシステムで使用する場合は、そのディレクトリを NFS サービスを通して共有する必要があります。/etc/dfs/dfstab ファイルに対して、次のようなエントリをディレクトリごとに追加します。


    share -F nfs /var/audit/server-name.n/files
  11. (省略可能) ファイルサーバー上で、NFS サービスを起動し直します。

    share コマンドまたは share コマンドセットを初めて実行する場合、NFS デーモンが動作していないことがあります。次のコマンドでデーモンを終了し、再起動してください。NFS サービスの詳細については、『Solaris のシステム管理 (資源管理とネットワークサービス)』の「NFS サービスの設定」 を参照してください。


    # /etc/init.d/nfs.server stop
    # /etc/init.d/nfs.server start
    

例 — 予備の監査ディレクトリを作成する

監査サービスを実行するすべてのシステムには、利用できるファイルシステムがほかにない場合に使用するローカルファイルシステムが必要です。この例では、ファイルシステムが egret という名前のシステムに追加されます。このファイルシステムは、ローカルシステムだけで使用されるため、続いてファイルサーバーの手順は必要ありません。


# newfs /dev/rdsk/c0t2d0
# mkdir /var/audit/egret
# grep egret /etc/vfstab
/dev/dsk/c0t2d0s1  /dev/rdsk/c0t2d0s1  /var/audit/egret ufs  2  yes  -
# tunefs -m 0 /var/audit/egret
# mount /var/audit/egret
# mkdir /var/audit/egret/files
# chmod -R 750 /var/audit/egret/files

例 — 新しい監査パーティションを作成する

この例では、新しいファイルシステムが、2 つの新しいディスクに作成されます。この 2 つのディスクは、ネットワーク上のほかのシステムと共有します。


# newfs /dev/rdsk/c0t2d0
# newfs /dev/rdsk/c0t2d1
# mkdir /var/audit/egret.1
# mkdir /var/audit/egret.2
# grep egret /etc/vfstab
/dev/dsk/c0t2d0s1  /dev/rdsk/c0t2d0s1  /var/audit/egret.1 ufs  2  yes  -
/dev/dsk/c0t2d1s1  /dev/rdsk/c0t2d1s1  /var/audit/egret.2 ufs  2  yes  -
# tunefs -m 0 /var/audit/egret.1
# tunefs -m 0 /var/audit/egret.2
# mount /var/audit/egret.1
# mount /var/audit/egret.2
# mkdir /var/audit/egret.1/files
# mkdir /var/audit/egret.2/files
# chmod -R 750 /var/audit/egret.1/files /var/audit/egret.2/files
# grep egret /etc/dfs/dfstab
 share -F nfs /var/audit/egret.1/files
 share -F nfs /var/audit/egret.2/files
# /etc/init.d/nfs.server stop
# /etc/init.d/nfs.server start

audit_warn 別名の構成方法

audit_warn スクリプトは、audit_warn という別名に対してメールを生成します。このメールを有効な電子メールアドレスに送信するには、次のいずれかの手順を行います。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. (省略可能) audit_warn 別名を他の別名と交換します。

    たとえば、audit_warn スクリプトを編集して、audit_warn をほかの別名に置き換えます。 audit_warnroot と交換すると、電子メールメッセージを送信する行は次のようになります。


        /usr/ucb/mail -s "$SUBJECT" root
    

    スクリプト内の 10 行にこの変更を適用する必要があります。

  3. (省略可能) audit_warn の電子メールをほかの別名にリダイレクトします。

    また、/etc/mail/aliases ファイル内の電子メールをリダイレクトしても指定できます。この場合、次のような別名をローカルの /etc/mail/aliases ファイルか、名前空間の mail_aliases データベースに追加します。電子メールを root 別名に送信する場合、新しいエントリは次のようになります。


        audit_warn: root

監査ポリシーを有効または無効にする方法

監査ポリシーを使用して、ローカルホストの監査レコードの特性を決定します。監査ポリシーでは、特定の構成を有効または無効にします。デフォルトでは、すべての監査ポリシーが無効になっています。使用する監査ポリシーは、有効にする必要があります。各ポリシーについては、監査ポリシーを参照してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. (省略可能) 既存の監査ポリシーを確認します。

    監査ポリシーを変更するときは、現在使用されているポリシーをすべて確認してください。次のコマンドを実行すると、有効なポリシーがすべて表示されます。


    # auditconfig -lspolicy
    
  3. 監査ポリシーを有効または無効にします。


    # auditconfig -setpolicy flagpolicyname
    

    flag

    + を指定すると、ポリシーが有効になる。 を指定すると、ポリシーが無効になる

    policyname

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

    このポリシーは、次回ブートしたとき、または auditconfig -setpolicy コマンドを使ってポリシーを変更したときに有効になります。

例 — cnt ポリシーを設定する

cnt ポリシーを設定すると、監査パーティションがいっぱいになっても、プロセスはブロックされません。パーティションがいっぱいになると、レコードは破棄されます。ただし、監査プロセスがイベントを記録していない場合でも、システムは引き続き動作します。セキュリティを重視する場合は、cnt ポリシーは設定しないでください。ファイルシステムがいっぱいになると、イベントが記録されないことがあるためです。

次のコマンドを実行すると、cnt ポリシーが有効になります。


# auditconfig -setpolicy +cnt

サイトのセキュリティを確保するには、適切な起動ファイルの cnt ポリシーを有効にする必要があります。

監査を有効にする方法

この操作では、監査サービスが開始されます。監査サービスが構成されている場合は、ホストをリブートしたときにもサービスが開始します。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. システムをシングルユーザーモードにします。


    # /etc/telinit 1
    

    詳細は、telinit(1M) のマニュアルページを参照してください。

  3. スクリプトを実行して、システムが監査を実行するように構成します。

    /etc/security ディレクトリに移動し、bsmconv スクリプトを実行します。このスクリプトによって、リブート後に標準 Solaris マシンが設定され、BSM が実行されます。bsmconv(1M) のマニュアルページを参照してください。


    # cd /etc/security
    # ./bsmconv
    
  4. システムをマルチユーザーモードにします。


    # /etc/telinit 6
    

    システムがマルチユーザーモードに移行すると、起動ファイル /etc/security/audit_startup によって監査デーモンが自動的に動作します。


    注 –

    bsmconv スクリプトを実行すると、Stop-A によるシステムの強制終了機能を無効にする行が追加されます。Stop-A によるシステムの強制終了機能を保持するには、/etc/system ファイルの set abort_enable=0 という行をコメントアウトする必要があります。


監査を無効にする方法

BSM が不要になった場合は、bsmunconv コマンドを実行して無効にすることができます。bsmconv(1M) のマニュアルページを参照してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. システムをシングルユーザーモードにします。


    # /etc/telinit 1
    

    詳細は、telinit(1M) のマニュアルページを参照してください。

  3. スクリプトを実行して、監査を無効にします。

    /etc/security ディレクトリに移動し、bsmunconv スクリプトを実行します。


    # cd /etc/security
    # ./bsmunconv
    

  4. システムをマルチユーザーモードにします。


    # /etc/telinit 6
    


    注 –

    bsmunconv スクリプトを実行すると、Stop-A によるシステムの強制終了機能を無効にする行が削除されます。bsmunconv スクリプトを実行したあとで、ユーザーが Stop-A を使用してもシステムが強制終了しないようにする場合は、/etc/system ファイルに set abort_enable=0 という行を入力し直す必要があります。