50.3. SELinux のアナリストコントロール
このセクションでは、セキュリティーアナリストが SELinux システムで実行する必要がある可能性のある一般的なタスクについて説明します。
50.3.1. カーネル監査の有効化
SELinux の分析またはトラブルシューティングの演習の一環として、完全なカーネルレベルの監査を有効にすることを選択できます。これは、各 AVC 監査メッセージに対して 1 つ以上の追加の監査メッセージを生成するため、詳細度が非常に高くなります。この監査レベルを有効にするには、
/etc/grub.conf
ファイルまたは起動時に GRUB メニューのいずれかで、カーネルブート行に audit=1
パラメーターを追加します。
これは、ディレクトリーが Web コンテンツとしてラベル付けされていないため、httpd が
~/public_html
へのアクセスが拒否された場合の完全な監査ログエントリーの例です。audit (...)フィールドのタイムスタンプとシリアル番号のタイムスタンプは、それぞれ同一である点に注意してください。これにより、監査ログで特定のイベントを簡単に追跡できます。
Jan 15 08:03:56 hostname kernel: audit(1105805036.075:2392892): \ avc: denied { getattr } for pid=2239 exe=/usr/sbin/httpd \ path=/home/auser/public_html dev=hdb2 ino=921135 \ scontext=user_u:system_r:httpd_t \ tcontext=system_u:object_r:user_home_t tclass=dir
以下の監査メッセージは、関連するシステムコールの種類など、ソースの詳細を示しています。これは、httpd がディレクトリーを表示しようとしたことを示しています。
Jan 15 08:03:56 hostname kernel: audit(1105805036.075:2392892): \ syscall=195 exit=4294967283 a0=9ef88e0 a1=bfecc0d4 a2=a97ff4 \ a3=bfecc0d4 items=1 pid=2239 loginuid=-1 uid=48 gid=48 euid=48 \ suid=48 fsuid=48 egid=48 sgid=48 fsgid=48
以下のメッセージは、ターゲットに関する詳細情報を提供します。
Jan 15 08:03:56 hostname kernel: audit(1105805036.075:2392892): \ item=0 name=/home/auser/public_html inode=921135 dev=00:00
シリアル番号のタイムスタンプは、特定の監査イベントで常に同じです。タイムスタンプは同一である場合とそうでない場合があります。
注記
トラブルシューティングに監査デーモンを使用している場合、デーモンは
/var/log/audit/audit.log
などの /var/log/messages
以外の場所に監査メッセージをキャプチャーできます。