/var/log의 하위 항목이 아닌 파일에 로그를 기록하기 위해 syslog(3)를 사용하는 데몬이 있습니다. 현재 이를 위해서는 SELINUX를 비활성화해야 합니다. 이 로깅을 허용하도록 SELINUX를 활성화하려면 어떻게 구성합니까?
저는 SELINUX 초보자입니다. 어떤 지침이나 조언이라도 대단히 감사하겠습니다.
답변1
/var/log 디렉토리에 설정된 컨텍스트를 보면 다음 사항을 알 수 있습니다.
먼저 디렉터리에는 /var/log
다음과 같은 selinux 컨텍스트가 설정되어 있습니다.
$ ls -Z /var | grep "log$"
drwxr-xr-x. root root system_u:object_r:var_log_t:s0 log
둘째, 로그 파일에는 /var/log/messages
추가 컨텍스트가 없습니다.
$ ls -Z /var/log/messages
-rw------- root root ? /var/log/messages
/var/log
따라서 이 추가 로그 파일을 쓰려는 디렉터리와 유사한 컨텍스트를 설정하기만 하면 되는 것 같습니다 . 이런 일이 가능해야합니다.
방법 #1: selinux 태그 복사
아래에서는 이와 관련된 컨텍스트를 복사하여 /var/log
에 적용합니다 /opt/blah
.
$ mkdir /opt/blah
$ ls -Z /opt | grep blah
drwxr-xr-x root root ? blah
# label directory with context
$ chcon --reference /var/log /opt/blah
# see the newly added context
$ ls -Z /opt/ | grep blah
drwxr-xr-x. root root system_u:object_r:var_log_t:s0 blah
방법 #2: 컨텍스트를 직접 적용
다음과 같이 직접 적용할 수도 있습니다.
$ chcon system_u:object_r:var_log_t:s0 /opt/blah
내가 사용 중인 시스템에서는 이러한 명령을 실행해야 한다는 것을 확인할 수 있지만 SELinux에게 이러한 새로운 앱의 컨텍스트를 파일 시스템으로 가져오도록 지시해야 한다고 생각합니다.
$ semanage fcontext -a -t var_log_t "/opt(/.*)?"
$ restorecon -R -v /opt
변경사항 확인
# confirm identical to /var/log context
$ ls -Z /var/ | grep "log$"
drwxr-xr-x. root root system_u:object_r:var_log_t:s0 log