11.3.6. Raw 監査メッセージ
Raw 監査メッセージは
/var/log/audit/audit.log
にログ記録されます。以下は、Apache HTTP サーバー (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 は
httpd_t
タイプで実行している SELinux コンテキストです。 - tcontext="unconfined_u:object_r:samba_share_t:s0"
- プロセスがアクセスを試みたオブジェクトの SELinux コンテキスト (ターゲット)。この例では、これが
file1
の SELinux コンテキストです。samba_share_t
タイプは、httpd_t
ドメインで実行しているプロセスからアクセスできません。特定の状況では、tcontext
は、scontext
と一致します (例: プロセスが、ユーザー ID など、実行中のプロセスの特性を変更するシステムサービスを実行しようとする場合)。また、プロセスが通常の制限よりも多くのリソース (メモリーなど) を使用しようとすると、tcontext
がscontext
に一致する可能性があります。その結果、そのプロセスがこれらの制限を破ることが許可されているかどうかを確認するためのセキュリティーチェックが行われます。
システムコール (
SYSCALL
) メッセージでは、以下の 2 つの項目が重要になります。
success=no
: 拒否 (AVC) が強制されたかどうか。success=no
はシステムコールが成功しなかった (SELinux がアクセスを拒否した) ことを示します。success=yes
はシステムコールが成功したことを示します。これは、unconfined_service_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 ページで指定されたタイプにのみアクセスする必要があります (特に設定されていない限り)。