/var/log 외부의 파일에 대한 로깅을 허용하도록 SELINUX를 구성하십시오.

/var/log 외부의 파일에 대한 로깅을 허용하도록 SELINUX를 구성하십시오.

/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

인용하다

관련 정보