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 }
중괄호의 항목은 거부된 권한을 나타냅니다. 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 컨텍스트입니다. 이 경우 httpd_t 도메인에서 실행 중인 Apache HTTP 서버의 SELinux 컨텍스트입니다.
tcontext="unconfined_u:object_r:samba_share_t:s0"
프로세스가 액세스를 시도한 개체(대상)의 SELinux 컨텍스트입니다. 이 경우 file1 의 SELinux 컨텍스트입니다. samba_share_t 유형은 httpd_t 도메인에서 실행되는 프로세스에 액세스할 수 없습니다.
특정 상황에서 tcontext 는 프로세스가 사용자 ID와 같이 실행 중인 프로세스의 특성을 변경하는 시스템 서비스를 실행하려고 하는 경우와 같이 scontext 와 일치할 수 있습니다. 또한 프로세스가 일반 제한(예: 메모리)에서 허용하는 것보다 더 많은 리소스(예: 메모리)를 사용하려고 할 때 tcontext 가 scontext 와 일치할 수 있으므로 보안 검사를 통해 해당 프로세스가 해당 제한을 중단할 수 있는지 확인합니다.
시스템 호출(SYSCALL)메시지에서 다음 두 가지 항목을 설정해야 합니다.
  • success=no:(AVC)이 강제 적용되었는지 여부를 나타냅니다. success=no 는 시스템 호출이 성공하지 않았음을 나타냅니다(SELinux 거부 액세스). success=yes 는 시스템 호출이 성공했음을 나타냅니다. 이는 허용 도메인 또는 제한되지 않은 도메인(예: 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_t,public_content_t 등과 같은 httpd_selinux(8) 도움말 페이지에 지정된 유형에만 액세스해야 합니다.