Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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 エントリーは、ターゲットファイルのステータス情報をソースプロセスが読み取ろうとしていることを示します。これは、ファイルを読み取る前に発生します。アクセスしているファイルのラベルが間違っているため、このアクションは拒否されています。一般的に表示されるパーミッションには、getattrreadwrite などが含まれます。
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 など、実行中のプロセスの特性を変更するシステムサービスを実行しようとする場合)。また、プロセスが通常の制限よりも多くのリソース (メモリーなど) を使用しようとすると、tcontextscontext に一致する可能性があります。その結果、そのプロセスがこれらの制限を破ることが許可されているかどうかを確認するためのセキュリティーチェックが行われます。
システムコール (SYSCALL) メッセージでは、以下の 2 つの項目が重要になります。
  • success=no: 拒否 (AVC) が強制されたかどうか。success=no はシステムコールが成功しなかった (SELinux がアクセスを拒否した) ことを示します。success=yes はシステムコールが成功したことを示します。これは、unconfined_service_tkernel_t など、Permissive ドメインまたは制限のないドメインで見ることができます。
  • exe="/usr/sbin/httpd": プロセスを開始した実行ファイルのフルパスです。この例ではexe="/usr/sbin/httpd" です。
ファイルタイプは、SELinux によるアクセスを拒否する一般的な原因です。トラブルシューティングを開始するには、ソースコンテキスト (scontext) をターゲットコンテキスト (tcontext) と比較します。プロセス (scontext) がこのようなオブジェクト (tcontext) にアクセスする必要がありますか ?たとえば、Apache HTTP Server(httpd_t) は、httpd_sys_content_tpublic_content_t など、httpd_selinux(8) man ページで指定されたタイプにのみアクセスする必要があります (特に設定されていない限り)。