Menu Close

Red Hat Training

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

11.3.6. 生の監査メッセージ

未加工の監査メッセージは /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 }
中括弧内の項目は、拒否されたパーミッションを示します。The getattr エントリーは、ソースプロセスがターゲットファイルのステータス情報の読み取りを試行したことを示します。これは、ファイルを読み取る前に発生します。このアクションは、ファイルに誤ったラベルがあるために拒否されます。一般的に表示されるパーミッションには、getattrreadwrite などが含まれます。
comm="httpd"
プロセスを起動した実行ファイル。実行可能ファイルの完全パスは、システムコール(SYSCALL)メッセージの exe= セクションにあります。この場合は exe="/usr/sbin/httpd" になります。
path="/var/www/html/file1"
アクセスを試みたオブジェクト(ターゲット)へのパス。
scontext="unconfined_u:system_r:httpd_t:s0"
拒否されたアクションを試みたプロセスの SELinux コンテキストこの場合、httpd_t ドメインで実行されている Apache HTTP Server の SELinux コンテキストです。
tcontext="unconfined_u:object_r:samba_share_t:s0"
プロセスがアクセスを試みたオブジェクト(ターゲット)の SELinux コンテキストこの例では、これが file1 の SELinux コンテキストです。samba_share_t タイプは、httpd_t ドメインで実行しているプロセスにアクセスできないことに注意してください。
特定の状況では、tcontext が一致することがあります。たとえば プロセスがユーザー ID などの実行中のプロセスの特性を変更するシステムサービスの実行を試みる場合などです。また、tcontext は、プロセスが通常の制限を許可するよりも多くのリソース(メモリーなど)を使用しようとすると scontext と一致する可能性があり、そのプロセスがこれらの制限を壊してしまうかどうかについてセキュリティーチェックが可能になります。
システムコール(SYSCALL)メッセージから、以下の 2 つの項目があります。
  • success=no: 拒否(AVC)が強制されたかどうかを示します。success=no は、システムコールが成功したことを示しています(SELinux がアクセスを拒否した)。success=yes は、システムコールが成功したことを示します。これは、permissive ドメインまたは制限のないドメイン(unconfined _service_t や kernel_t など)で確認できます。
  • 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 ページで指定されたタイプにのみアクセスする必要があります(特に設定されていない限り)。