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에서 액세스를 거부하는 일반적인 원인입니다. 문제 해결을 시작하려면 소스 컨텍스트(s
context
)를 대상 컨텍스트(tcontext
)와 비교합니다. 프로세스(scontext
)가 이러한 객체(tcontext
)에 액세스해야 합니까? 예를 들어, Apache HTTP Server(httpd_t
)는 별도로 구성하지 않는 한 httpd_sys_content_t
,public_content_t
등과 같은 httpd_selinux(8) 도움말 페이지에 지정된 유형에만 액세스해야 합니다.