그래서 특정 디렉토리의 모든 파일 액세스 작업을 기록하도록 selinux를 설정했습니다. 다음은 sftp에서 ls를 실행할 때의 몇 가지 샘플 로그 출력입니다.
type=AVC msg=audit(1338465611.221:356): avc: granted { getattr } for pid=5973 comm="sftp-server" path="/polog" dev=dm-0 ino=1966081 scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:polog_t:s0 tclass=dir
이 경우 sftp는 user1로 실행 중입니다. selinux가 이 사용자 이름도 기록하도록 하는 방법이 있습니까, 아니면 다른 접근 방식을 취해야 합니까?
이것은 내 정책 파일입니다.
---polog.te---
policy_module(polog, 1.0.14)
require {
type fs_t;
type unconfined_t;
type sshd_t;
type setfiles_t;
class filesystem associate;
class dir relabelto;
}
type polog_t;
#============= polog_t ==============
allow polog_t fs_t:filesystem associate;
allow unconfined_t polog_t:dir relabelto;
allow setfiles_t polog_t:dir relabelto;
#====================================
auditallow unconfined_t polog_t : file *;
auditallow unconfined_t polog_t : dir *;
allow unconfined_t polog_t : file *;
allow unconfined_t polog_t : dir *;
---polog.fc---
/polog(/.*)? gen_context(system_u:object_r:polog_t)
답변1
SELinux는 기존 DAC 사용자 이름에서는 작동하지 않으므로 이러한 정보를 이런 방식으로 표시할 수 없습니다. 감사 하위 시스템과 데몬을 살펴봐야 합니다 auditd
. 이러한 파일에 대한 액세스를 기록하려면 SELinux와 별개로 특정 규칙 세트를 작성해야 합니다.
시작하는 데 도움이 되는 일부 링크:
- 하위 시스템 감사에 대한 슬라이드;
- 감사 규칙 정의(RHEL 6 문서);
- audit.rules(7) (즉
man 7 audit.rules
).