ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris の管理: セキュリティーサービス Oracle Solaris 11 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
10. Oracle Solaris のセキュリティー属性 (参照)
22. Kerberos エラーメッセージとトラブルシューティング
2 つの監査プラグイン audit_binfile と audit_syslog は、ユーザーが構成できる場所に監査ログを送信します。次のタスクは、これらのログの構成に役立ちます。
次のタスクマップは、さまざまなプラグインの監査ログを構成するための手順を示しています。すべてのタスクが省略可能です。
|
次の手順は、監査ファイルのための ZFS プールや、対応するファイルシステムとマウントポイントを作成する方法を示しています。デフォルトでは、audit_binfile プラグインの監査ファイルは /var/audit ファイルシステムに保持されます。
始める前に
ZFS File System Management および ZFS Storage Management 権利プロファイルが割り当てられている必要があります。後者のプロファイルを使用すると、ストレージプールを作成できます。
詳細は、「管理権限を取得する方法」を参照してください。
ホストあたり少なくとも 200M バイトのディスク容量を割り当てます。ただし、必要な監査の量によりディスク容量要件が決まります。つまり、要件によっては、この数値を超えることもあります。
注 - デフォルトのクラスの事前選択によって、ログイン、ログアウト、役割の引き受けなどの、lo クラス内のイベントの記録されたインスタンスごとに約 80 バイトずつ拡大するファイルが /var/audit 内に作成されます。
zpool create コマンドは、ZFS ファイルシステムのコンテナであるストレージプールを作成します。詳細は、『Oracle Solaris の管理: ZFS ファイルシステム』の第 1 章「Oracle Solaris ZFS ファイルシステム (概要)」を参照してください。
# zpool create audit-pool mirror disk1 disk2
たとえば、c3t1d0 と c3t2d0 の 2 つのディスクから auditp プールを作成し、それらをミラー化します。
# zpool create auditp mirror c3t1d0 c3t2d0
ファイルシステムとマウントポイントは 1 つのコマンドで作成します。作成時に、ファイルシステムがマウントされます。たとえば、次の図は、ホスト名で格納された監査トレールの記憶領域を示しています。
注 - ファイルシステムの暗号化を予定している場合は、作成時にファイルシステムを暗号化する必要があります。例については、例 28-12 を参照してください。
暗号化には管理が必要です。たとえば、マウント時にはパスフレーズが必要です。詳細は、『Oracle Solaris の管理: ZFS ファイルシステム』の「ZFS ファイルシステムの暗号化」を参照してください。
# zfs create -o mountpoint=/mountpoint audit-pool/mountpoint
たとえば、auditf ファイルシステムの /audit マウントポイントを作成します。
# zfs create -o mountpoint=/audit auditp/auditf
# zfs create -p auditp/auditf/system
たとえば、sys1 システムのための暗号化されていない ZFS ファイルシステムを作成します。
# zfs create -p auditp/auditf/sys1
追加のファイルシステムを作成する 1 つの理由は、監査のオーバーフローを回避するためです。手順 9 に示すように、ファイルシステムあたりの ZFS 割り当て制限を設定できます。各割り当て制限に達すると、audit_warn 電子メールエイリアスによって通知されます。領域を解放するために、閉じられた監査ファイルをリモートサーバーに移動できます。
# zfs create -p auditp/auditf/sys1.1 # zfs create -p auditp/auditf/sys1.2
プール内のすべてのファイルシステムについて、次の ZFS プロパティーを off に設定します。
# zfs set devices=off auditp/auditf # zfs set exec=off auditp/auditf # zfs set setuid=off auditp/auditf
ZFS では通常、圧縮はファイルシステムのレベルで設定されます。ただし、このプール内のすべてのファイルシステムに監査ファイルが含まれているため、圧縮はプールのトップレベルのデータセットで設定されます。
# zfs set compression=on auditp
『Oracle Solaris の管理: ZFS ファイルシステム』の「ZFS の圧縮、重複除去、暗号化のプロパティー間の関連」も参照してください。
親のファイルシステム、子孫のファイルシステム、またはその両方で割り当て制限を設定できます。親の監査ファイルシステム上で割り当て制限を設定した場合は、子孫のファイルシステム上の割り当て制限によって追加の制限が課せられます。
次の例では、auditp プール内の両方のディスクが割り当て制限に達すると、audit_warn スクリプトによって監査管理者に通知されます。
# zfs set quota=510G auditp/auditf
次の例では、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
デフォルトでは、監査ファイルはプールのサイズまで拡大できます。管理容易性のために、監査ファイルのサイズを制限します。例 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 権利プロファイルが割り当てられている必要があります。
詳細は、「管理権限を取得する方法」を参照してください。
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. ...
デフォルトのファイルシステムは /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 ファイルシステムを作成する方法」でも同様のファイルシステムを作成しました。
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_minfree と p_fsize の指定は、管理者が監査サービスを更新したあとに有効になります。
# audit -s
この手順では、audit_remote プラグインの属性を使用して、監査トレールをリモート監査リポジトリに送信します。
始める前に
リモートリポジトリに監査ファイルの受信者が存在する必要があります。Audit Configuration 権利プロファイルが割り当てられている必要があります。
詳細は、「管理権限を取得する方法」を参照してください。
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 秒です。また、プラグインのキューサイズも指定できます。
# auditconfig -setplugin audit_remote active p_hosts=rhost1:16088:kerberos_v5
# auditconfig -setplugin audit_remote active p_retries=5
# auditconfig -setplugin audit_remote active p_timeout=3
監査サービスは、更新時に監査プラグインの変更を読み取ります。
# audit -s
監査サービスに、監査キュー内の監査レコードの一部またはすべてを syslog ユーティリティーにコピーするよう指示できます。バイナリ監査データと概要テキストの両方を記録した場合、バイナリデータでは完全な監査レコードが提供されるのに対して、概要ではリアルタイムで確認できるようにデータがフィルタリングされます。
始める前に
audit_syslog プラグインを構成するには、Audit Configuration 権利プロファイルが割り当てられている必要があります。syslog ユーティリティーを構成するには、root 役割になっている必要があります。
注 - p_flags 監査クラスが、システムのデフォルトとして、あるいはユーザーまたは権利プロファイルの監査フラグで事前選択されている必要があります。事前選択されていないクラスについてレコードは収集されません。
# auditconfig -setplugin audit_syslog active p_flags=lo,+as,-ss
更新時に、監査サービスによって変更が監査プラグインに読み込まれます。
# audit -s
監査サービスでは、大量の出力が生成される可能性があります。ログの管理方法については、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