apache가 rsyslogd(selinux)로 작성된 파일을 제공하도록 허용하는 방법

apache가 rsyslogd(selinux)로 작성된 파일을 제공하도록 허용하는 방법

RHEL7에서 systemd 서비스로 실행되는 애플리케이션이 있고 로깅을 위해 syslog를 사용합니다. 이 애플리케이션의 모니터링을 단순화하기 위해 rsyslogd이 서비스의 로그를 전용 로그 파일에 쓰도록(만) 구성했습니다 .

httpd이제 이 로그 파일을 사용하여 사용자가 애플리케이션을 쉽게 모니터링할 수 있도록 서비스를 제공하고 싶습니다 .

내가 직면하고 있는 문제는 파일 컨텍스트를 어떻게 설정하더라도 selinux내가 원하는 것을 할 수 없다는 것입니다.

  • rsyslog쓰기 허용var_log_t
  • httpd읽기 허용httpd_sys_content_t

rsyslogd내가 아는 한, 를 통해 쓰기 및 읽기를 허용하는 컨텍스트는 없습니다 httpd.

이 문제를 해결하려면 어떻게 해야 합니까? 결국에는 사용자 지정 정책 모듈을 만들어야 합니까?

답변1

사용을 허용하는 부울이 있는지 확인할 수 있습니다.audit2why, 이 경우 사용자 지정 정책 모듈을 만들 필요가 없습니다.

해당 부울이 없는 경우 Apache가 로그를 읽을 수 있도록 하려면 정책을 연결해야 합니다. 그리고audit2allow정책 모듈을 직접 생성하거나 모듈 템플릿으로 사용할 수 있는 필수 규칙을 생성할 수 있습니다.

먼저 액세스 위반이 포함된 로그를 생성해야 합니다. 정상적인 사용 중에 모든 액세스 위반을 얻으려면 다음을 설정하십시오.httpd_t허용 모드로. 허용 모드에서는 SELinux 정책이 지정된 유형에 대해 시행되지 않습니다(httpd_t), 그러나 로그는 평소와 같이 생성됩니다.

semanage permissive -a httpd_t

구성이 유효하고 Apache를 사용하여 로그에 액세스할 수 있는지 확인한 후 적용 모드를 다시 켜십시오.

semanage permissive -d httpd_t

이제 audit2allow새 모듈을 생성하고 삽입해 보겠습니다.

audit2allow -a -M apache_logs
semodule -i apache_logs.pp

감사 메시지가 다음에만 관련되도록 하려는 경우httpd_t모듈 생성을 위해,grep감사 로그의 관련 줄은 audit2allow에 대한 입력으로 사용됩니다. 예를 들어:

grep "httpd_t" /var/log/audit/audit.log | audit2allow -M apache_logs

생성된 규칙을 수동으로 확인하거나 수정하려는 경우리뷰 2가 허용됨, 소스 형식으로 모듈을 생성하는 옵션을 사용하십시오 -m. 원하는 경우 생성된 모듈 소스를 확인하고 편집할 수 있습니다. 완료되면 모듈을 빌드해야 합니다. 단계는 다음과 같습니다매뉴얼 페이지예.

관련 정보