Product SiteDocumentation Site

7.3.6. Необработанные сообщения аудита

Необработанные сообщения аудита записываются в /var/log/audit/audit.log. Ниже показан пример блокировки AVC (и связанный с этим системный вызов), которые появляются, когда Apache HTTP Server (запущенный в домене httpd_t) запрашивает доступ к файлу /var/www/html/file1 (маркированный типом samba_share_t):
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"
Исполняемый файл, который запускает процесс. Полный путь к исполняемому файлу находится в разделе exe= сообщения системного вызова (SYSCALL), который в этом случае exe="/usr/sbin/httpd".
path="/var/www/html/file1"
Путь к объекту (target) процесс запрашивающий доступ.
scontext="unconfined_u:system_r:httpd_t:s0"
контекст SELinux процесса, который выполняет блокированное действие. В данном случае, это контекст SELinux процесса Apache HTTP Server, запущенный в домене httpd_t.
context="unconfined_u:object_r:samba_share_t:s0"
Контекст SELinux объекта (цели, target) процесса, запрашивающего доступ. В данном случае - это контекст SELinux файла file1. Примечание: тип samba_share_t не доступен процессам, запущенным в httpd_t домене.
В определенных ситуациях, tcontext может совпадать с scontext, например, если процесс пытается выполнить системную службу, которая изменяет характеристики этого, запущенного процесса, такого как ID пользователя. Также tcontext может совпадать с scontext, когда процесс пытается использовать больше ресурсов (например, памяти) чем позволяет лимит, что приводит к проверке безопасности, может ли такой процесс преодолеть данное ограничение.
Из сообщения системного вызова (SYSCALL), интересны два пункта:
An incorrect file type is a common cause for SELinux denying access. To start troubleshooting, compare the source context (scontext) with the target context (tcontext). Should the process (scontext) be accessing such an object (tcontext)? For example, the Apache HTTP Server (httpd_t) should only be accessing types specified in the httpd_selinux(8) manual page, such as httpd_sys_content_t, public_content_t, and so on, unless configured otherwise.