Show Table of Contents
8.3.6. Raw 監査メッセージ
Raw 監査メッセージは
/var/log/audit/audit.log に記録されます。以下の例は、Apache HTTP Server (httpd_t ドメインで稼働中) が /var/www/html/file1 ファイル (samba_share_t タイプでラベル付け) にアクセスしようとした際に発生したAVC 拒否 (および関連のシステムコール) です。
type=AVC msg=audit(1226874073.147:96): avc: denied { getattr } for pid=2465 comm="httpd" path="/var/www/html/file1" dev=dm-0 ino=284133 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:samba_share_t:s0 tclass=file
type=SYSCALL msg=audit(1226874073.147:96): arch=40000003 syscall=196 success=no exit=-13 a0=b98df198 a1=bfec85dc a2=54dff4 a3=2008171 items=0 ppid=2463 pid=2465 auid=502 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=6 comm="httpd" exe="/usr/sbin/httpd" subj=unconfined_u:system_r:httpd_t:s0 key=(null)
- { getattr }
- 括弧内のこのアイテムは、拒否されたパーミッションを示します。
getattrは、ソースプロセスがターゲットファイルのステータス情報の読み取りを試みたことを示します。これは、ファイルの読み取り前に起こります。このアクションが拒否されたのは、アクセスされたファイルに間違ったラベル付けがされていたためです。よく見られるパーミッションは、getattr、read、writeなどです。 - comm="httpd"
- プロセスを開始した実行可能ファイルです。このファイルの完全パスは、システムコール (
SYSCALL) メッセージのexe=セクションにあります。このケースでは、exe="/usr/sbin/httpd"になります。 - path="/var/www/html/file1"
- プロセスがアクセスを試みたオブジェクト (ターゲット) へのパスです。
- scontext="unconfined_u:system_r:httpd_t:s0"
- 拒否されたアクションを試みたプロセスの SELinux コンテキストです。このケースでは、Apache HTTP Server のSELinux コンテキストで、これは
httpd_tドメインで実行中です。 - tcontext="unconfined_u:object_r:samba_share_t:s0"
- プロセスがアクセスを試みたオブジェクト (ターゲット) のSELinux コンテキストです。このケースでは、
file1のコンテキストです。注記:samba_share_tタイプは、httpd_tドメインで実行中のプロセスにはアクセスできません。状況によっては、tcontextがscontextと一致する場合もあります。例えば、プロセスがユーザー ID など、その実行中のプロセスの特徴を変更することになるシステムサービスの実行を試みる場合などです。また、プロセスが通常の制限で許されているリソース (メモリーなど) 以上のものを使おうをして、そのプロセスが制限超過を許されているかどうかのセキュリティーチェックにつながる場合、tcontextがscontextと一致する可能性があります。
システムコール (
SYSCALL) メッセージでは、2 つの点に注目します。
success=noは、拒否 (AVC) が強制されたかどうかを示します。success=noは、システムコールが成功しなかったことを示します (SELinux がアクセスを拒否)。success=yesは、システムコールが成功したことを示します。これは、initrc_tやkernel_tなどの permissive ドメインや制限のないドメインで見られます。exe="/usr/sbin/httpd"は、プロセスを開始した実行可能ファイルへの完全パスです。このケースでは、exe="/usr/sbin/httpd"です。
SELinux がアクセスを拒否する場合のよくある原因は、ファイルタイプが間違っていることです。トラブルシューティングを開始するには、ソースコンテキスト (
scontext) とターゲットコンテキスト (tcontext) を比べます。プロセス (scontext) がそのようなオブジェクト (tcontext) にアクセスしてもよいかどうかを確認します。例えば、Apache HTTP Server (httpd_t) は特定の設定がない限り、httpd_sys_content_t や public_content_t など、httpd_selinux(8) man ページで指定されたタイプ以外にはアクセスすべきではありません。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.