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

用語集

索引

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

2 つの監査プラグイン audit_binfileaudit_syslog は、ユーザーが構成できる場所に監査ログを送信します。次のタスクは、これらのログの構成に役立ちます。

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

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

タスク
説明
参照先
audit_binfile プラグインのためのローカルな記憶領域を追加します。
監査ファイルのためのローカルのディスク容量を作成し、それらをファイルアクセス権で保護します。
audit_binfile プラグインに記憶領域を割り当てます。
バイナリ監査レコードのためのディレクトリを識別します。
audit_remote プラグインのための記憶領域を構成します。
保護されたメカニズムを通して監査レコードをリモートリポジトリに送信できるようにします。
audit_syslog プラグインのための記憶領域を構成します。
テキスト形式の監査イベントを syslog にストリーム出力できるようにします。

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

次の手順は、監査ファイルのための ZFS プールや、対応するファイルシステムとマウントポイントを作成する方法を示しています。デフォルトでは、audit_binfile プラグインの監査ファイルは /var/audit ファイルシステムに保持されます。

始める前に

ZFS File System Management および ZFS Storage Management 権利プロファイルが割り当てられている必要があります。後者のプロファイルを使用すると、ストレージプールを作成できます。

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

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

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

    ホストあたり少なくとも 200M バイトのディスク容量を割り当てます。ただし、必要な監査の量によりディスク容量要件が決まります。つまり、要件によっては、この数値を超えることもあります。


    注 - デフォルトのクラスの事前選択によって、ログイン、ログアウト、役割の引き受けなどの、lo クラス内のイベントの記録されたインスタンスごとに約 80 バイトずつ拡大するファイルが /var/audit 内に作成されます。


  3. ミラー化された ZFS ストレージプールを作成します。

    zpool create コマンドは、ZFS ファイルシステムのコンテナであるストレージプールを作成します。詳細は、『Oracle Solaris の管理: ZFS ファイルシステム』の第 1 章「Oracle Solaris ZFS ファイルシステム (概要)」を参照してください。

    # zpool create audit-pool mirror disk1 disk2

    たとえば、c3t1d0c3t2d0 の 2 つのディスクから auditp プールを作成し、それらをミラー化します。

    # zpool create auditp mirror c3t1d0 c3t2d0
  4. 監査ファイルのための ZFS ファイルシステムとマウントポイントを作成します。

    ファイルシステムとマウントポイントは 1 つのコマンドで作成します。作成時に、ファイルシステムがマウントされます。たとえば、次の図は、ホスト名で格納された監査トレールの記憶領域を示しています。


    image:この図は、トップディレクトリの名前がホスト名である監査ルートディレクトリを示しています。

    注 - ファイルシステムの暗号化を予定している場合は、作成時にファイルシステムを暗号化する必要があります。例については、例 28-12 を参照してください。

    暗号化には管理が必要です。たとえば、マウント時にはパスフレーズが必要です。詳細は、『Oracle Solaris の管理: ZFS ファイルシステム』の「ZFS ファイルシステムの暗号化」を参照してください。


    # zfs create -o mountpoint=/mountpoint audit-pool/mountpoint

    たとえば、auditf ファイルシステムの /audit マウントポイントを作成します。

    # zfs create -o mountpoint=/audit auditp/auditf
  5. 監査ファイルのための ZFS ファイルシステムを作成します。
    # zfs create -p auditp/auditf/system

    たとえば、sys1 システムのための暗号化されていない ZFS ファイルシステムを作成します。

    # zfs create -p auditp/auditf/sys1
  6. (省略可能) 監査ファイルのための追加のファイルシステムを作成します。

    追加のファイルシステムを作成する 1 つの理由は、監査のオーバーフローを回避するためです。手順 9 に示すように、ファイルシステムあたりの ZFS 割り当て制限を設定できます。各割り当て制限に達すると、audit_warn 電子メールエイリアスによって通知されます。領域を解放するために、閉じられた監査ファイルをリモートサーバーに移動できます。

    # zfs create -p auditp/auditf/sys1.1
    # zfs create -p auditp/auditf/sys1.2
  7. 親の監査ファイルシステムを保護します。

    プール内のすべてのファイルシステムについて、次の ZFS プロパティーを off に設定します。

    # zfs set devices=off auditp/auditf
    # zfs set exec=off auditp/auditf
    # zfs set setuid=off auditp/auditf
  8. プール内の監査ファイルを圧縮します。

    ZFS では通常、圧縮はファイルシステムのレベルで設定されます。ただし、このプール内のすべてのファイルシステムに監査ファイルが含まれているため、圧縮はプールのトップレベルのデータセットで設定されます。

    # zfs set compression=on auditp

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

  9. 割り当て制限を設定します。

    親のファイルシステム、子孫のファイルシステム、またはその両方で割り当て制限を設定できます。親の監査ファイルシステム上で割り当て制限を設定した場合は、子孫のファイルシステム上の割り当て制限によって追加の制限が課せられます。

    1. 親の監査ファイルシステム上で割り当て制限を設定します。

      次の例では、auditp プール内の両方のディスクが割り当て制限に達すると、audit_warn スクリプトによって監査管理者に通知されます。

      # zfs set quota=510G auditp/auditf
    2. 子孫の監査ファイルシステム上で割り当て制限を設定します。

      次の例では、auditp/auditf/ system ファイルシステムの割り当て制限に達すると、audit_warn スクリプトによって監査管理者に通知されます。

      # zfs set quota=170G auditp/auditf/sys1
      # zfs set quota=170G auditp/auditf/sys1.1
      # zfs set quota=165G auditp/auditf/sys1.2
  10. 大規模なプールの場合は、監査ファイルのサイズを制限します。

    デフォルトでは、監査ファイルはプールのサイズまで拡大できます。管理容易性のために、監査ファイルのサイズを制限します。例 28-14 を参照してください。

例 28-12 監査ファイルのための暗号化されたファイルシステムを作成する

サイトのセキュリティー要件に従うために、管理者は、暗号化を有効にして監査ファイルシステムを作成します。次に、管理者はマウントポイントを設定します。

# zfs create -o encryption=on auditp/auditf
Enter passphrase for auditp/auditf': /** Type 8-character minimum passphrase**/
Enter again: /** Confirm passphrase **/
# zfs set -o mountpoint=/audit auditp/auditf

管理者が auditf ファイルシステムの下に追加のファイルシステムを作成した場合は、これらの子孫のファイルシステムも暗号化されます。

例 28-13 /var/audit ディレクトリに割り当て制限を設定する

この例では、管理者は、デフォルトの監査ファイルシステム上で割り当て制限を設定します。この割り当て制限に達すると、audit_warn スクリプトによって監査管理者に警告が通知されます。

# zfs set quota=252G rpool/var/audit

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

この手順では、audit_binfile プラグインの属性を使用して、監査トレールに追加のディスク容量を割り当てます。

始める前に

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

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

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

  2. audit_binfile プラグインの属性を決定します。

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

    # man audit_binfile
    ...
    OBJECT ATTRIBUTES
         The p_dir attribute specifies where the audit files will be
         created. The directories are listed in the order in which
         they are to be used.
         
         The p_minfree attribute defines the percentage of free space
         that the audit system requires before the audit daemon invokes
         the audit_warn script.
    
         The p_fsize attribute defines the maximum size in bytes that
         an  audit  file can become before it is automatically closed
         and a new audit file  opened.  ...
  3. 監査トレールにディレクトリを追加するには、p_dir 属性を指定します。

    デフォルトのファイルシステムは /var/audit です。

    # auditconfig -setplugin audit_binfile active p_dir=/audit/sys1.1,/var/audit

    前のコマンドは、/audit/sys1.1 ファイルシステムを監査ファイルのプライマリディレクトリとして、またデフォルトの /var/audit ファイルシステムをセカンダリディレクトリとして設定します。このシナリオでは、/var/audit は最後の手段としてのディレクトリです。この構成を成功させるには、/audit/sys1.1 ファイルシステムが存在する必要があります。

    「監査ファイルのための ZFS ファイルシステムを作成する方法」でも同様のファイルシステムを作成しました。

  4. 監査サービスを更新します。

    auditconfig -setplugin コマンドは、構成された値を設定します。この値は監査サービスのプロパティーであるため、このサービスが更新または再開されたときに復元されます。構成された値は、監査サービスが更新または再開されたときにアクティブになります。構成された値とアクティブな値については、auditconfig(1M) のマニュアルページを参照してください。

    # audit -s

例 28-14 audit_binfile プラグインのためのファイルサイズを制限する

次の例では、バイナリ監査ファイルのサイズが特定のサイズに設定されます。このサイズは M バイト単位で指定されます。

# auditconfig -setplugin audit_binfile active p_fsize=4M
# auditconfig -getplugin audit_binfile
Plugin: audit_binfile (active)
    Attributes: p_dir=/var/audit;p_fsize=4M;p_minfree=1;

デフォルトでは、監査ファイルは無制限に拡大できます。作成する監査ファイルを小さくするために、管理者は 4M バイトのファイルサイズ制限を指定します。このサイズ制限に達すると、監査サービスは新しいファイルを作成します。このファイルサイズ制限は、管理者が監査サービスを更新したあとに有効になります。

# audit -s

例 28-15 監査プラグインに対するいくつかの変更を指定する

次の例では、高いスループットと大規模な ZFS プールを備えたシステム上の管理者が、audit_binfile プラグインのキューサイズ、バイナリファイルのサイズ、および弱い制限値の警告を変更します。管理者は、監査ファイルを 4G バイトまで拡大できるようにし、ZFS プールの残りが 2% になったら警告を受信するようにし、許可されるキューサイズを 2 倍にします。デフォルトのキューサイズは、active audit queue hiwater mark (records) = 100 にあるように、カーネル監査キューの高位境界値 100 になります。

# auditconfig -getplugin audit_binfile
Plugin: audit_binfile (active)
    Attributes: p_dir=/var/audit;p_fsize=2G;p_minfree=1;
# auditconfig -setplugin audit_binfile active "p_minfree=2;p_fsize=4G" 200
# auditconfig -getplugin audit_binfile
Plugin: audit_binfile (active)
    Attributes: p_dir=/var/audit;p_fsize=4G;p_minfree=2;
    Queue size: 200

変更した指定は、管理者が監査サービスを更新したあとに有効になります。

# audit -s

例 28-16 監査プラグインのキューサイズを削除する

次の例では、audit_binfile プラグインのキューサイ が削除されます。

# auditconfig -getplugin audit_binfile
Plugin: audit_binfile (active)
    Attributes: p_dir=/var/audit;p_fsize=4G;p_minfree=2;
    Queue size: 200
# auditconfig -setplugin audit_binfile active "" ""
# auditconfig -getplugin audit_binfile
 Plugin: audit_binfile (active)
    Attributes: p_dir=/var/audit;p_fsize=4G;p_minfree=2;

最後の空の引用符 ("") は、プラグインのキューサイズをデフォルトに設定します。

プラグインに対する qsize の指定の変更は、管理者が監査サービスを更新したあとに有効になります。

# audit -s

例 28-17 警告のための弱い制限値を設定する

この例では、ファイルシステムの 2% がまだ使用可能なときに警告が発行されるように、すべての監査ファイルシステムの最小空き容量のレベルが設定されます。

# auditconfig -setplugin audit_binfile active p_minfree=2

デフォルトの割合 (%) は 1 です。大規模な ZFS プールの場合は、適度に低い割合を選択します。たとえば、16T バイトプールの 10% は約 16G バイトであり、これにより、大量のディスク容量が残っているときに監査管理者に警告が通知されます。2 の値を指定すると、約 2G バイトのディスク容量が残っているときに audit_warn メッセージが送信されます。

audit_warn 電子メールエイリアスが警告を受信します。エイリアスを設定するには、audit_warn 電子メールエイリアスの構成方法」を参照してください。

大規模なプールの場合、管理者はファイルサイズも 3G バイトに制限します。

# auditconfig -setplugin audit_binfile active p_fsize=3G

プラグインに対する p_minfreep_fsize の指定は、管理者が監査サービスを更新したあとに有効になります。

# audit -s

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

この手順では、audit_remote プラグインの属性を使用して、監査トレールをリモート監査リポジトリに送信します。

始める前に

リモートリポジトリに監査ファイルの受信者が存在する必要があります。Audit Configuration 権利プロファイルが割り当てられている必要があります。

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

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

  2. audit_remote プラグインの属性を決定します。

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

    # man audit_remote
    ...
    OBJECT ATTRIBUTES
         The p_hosts attribute specifies the remote servers.
         You can also specify the port number and the GSS-API
         mechanism.
         
         The p_retries attribute specifies the number of retries for
         connecting and sending data. The default is 3.
    
         The p_timeout attribute specifies the number of seconds
         in which a connection times out.

    デフォルトポートは、solaris_audit IANA 割り当て済みポート 16162/tcp です。デフォルトのメカニズムは kerberos_v5 です。タイムアウトのデフォルトは 5 秒です。また、プラグインのキューサイズも指定できます。

  3. リモートホストを指定するには、p_hosts 属性を使用します。
    # auditconfig -setplugin audit_remote active p_hosts=rhost1:16088:kerberos_v5
  4. 再試行の数を指定するには、p_retries 属性を使用します。
    # auditconfig -setplugin audit_remote active p_retries=5
  5. 接続タイムアウトの長さを指定するには、p_timeout 属性を使用します。
    # auditconfig -setplugin audit_remote active p_timeout=3
  6. 監査サービスを更新します。

    監査サービスは、更新時に監査プラグインの変更を読み取ります。

    # audit -s

syslog 監査ログの構成方法

監査サービスに、監査キュー内の監査レコードの一部またはすべてを syslog ユーティリティーにコピーするよう指示できます。バイナリ監査データと概要テキストの両方を記録した場合、バイナリデータでは完全な監査レコードが提供されるのに対して、概要ではリアルタイムで確認できるようにデータがフィルタリングされます。

始める前に

audit_syslog プラグインを構成するには、Audit Configuration 権利プロファイルが割り当てられている必要があります。syslog ユーティリティーを構成するには、root 役割になっている必要があります。

  1. audit_syslog プラグインに送信される監査クラスを選択し、このプラグインをアクティブにします。

    注 - p_flags 監査クラスが、システムのデフォルトとして、あるいはユーザーまたは権利プロファイルの監査フラグで事前選択されている必要があります。事前選択されていないクラスについてレコードは収集されません。


    # auditconfig -setplugin audit_syslog active p_flags=lo,+as,-ss
  2. syslog ユーティリティーを構成します。
    1. syslog.conf ファイルに audit.notice エントリを追加します。

      エントリは、ログファイルの場所を含みます。

      # cat /etc/syslog.conf
      …
      audit.notice       /var/adm/auditlog
    2. ログファイルを作成します。
      # touch /var/adm/auditlog
    3. syslog サービスの構成情報を更新します。
      # svcadm refresh system/system-log
  3. 監査サービスを更新します。

    更新時に、監査サービスによって変更が監査プラグインに読み込まれます。

    # audit -s
  4. syslog ログファイルを定期的に保管します。

    監査サービスでは、大量の出力が生成される可能性があります。ログの管理方法については、logadm(1M) のマニュアルページを参照してください。

例 28-18 syslog 出力の監査クラスを指定する

次の例では、syslog ユーティリティーによって、事前選択された監査クラスのサブセットが収集されます。pf クラスは、例 28-10 で作成されます。

# auditconfig -setnaflags lo,na
# auditconfig -setflags lo,ss
# usermod -K audit_flags=pf:no jdoe
# auditconfig -setplugin audit_syslog active p_flags=lo,+na,-ss,+pf

auditconfig コマンドの引数はシステムに、すべてのログイン/ログアウト、ユーザーに起因しないイベント、およびシステム状態監査レコードの変更を収集するよう指示します。audit_syslog プラグインエントリは syslog ユーティリティーに、すべてのログイン、ユーザーに起因しない成功したイベント、およびシステム状態の失敗した変更を収集するよう指示します。

jdoe ユーザーの場合、バイナリ監査レコードには pfexec コマンドの呼び出しの使用がすべて含まれます。これらのイベントを事後選択で使用できるようにするには、audit_binfile または audit_remote プラグインのどちらかがアクティブになっている必要があります。syslog ユーティリティーは、pfexec コマンドの成功した呼び出しを収集します。

例 28-19 syslog 監査レコードをリモートシステムに配置する

syslog.conf ファイル内の audit.notice エントリを変更して、リモートシステムを指定します。この例では、ローカルシステムの名前は sys1.1 です。リモートシステムは、remote1 です。

sys1.1 # cat /etc/syslog.conf
…
audit.notice       @remote1

remote1 システム上の syslog.conf ファイル内にある audit.notice エントリはログファイルを指定します。

remote1 # cat /etc/syslog.conf
…
audit.notice       /var/adm/auditlog