SSL 인증서를 사용하여 릴레이를 통해 외부 메일을 보내도록 postfix를 설치하고 구성했습니다. 이 설정은 다른 여러 Ubuntu/Centos 시스템에서 작동했습니다. 내 인증서는 다음 위치에 있습니다.
/etc/ssl/certs/
내 접미사 설정은 평소와 같습니다.
/etc/postfix
main.cf의 주요 라인은 다음과 같습니다:
smtp_tls_CAfile = /etc/ssl/certs/AddTrustExternalCARoot.crt
postfix를 시작하면 메일 로그에 다음과 같은 오류가 표시됩니다.
3월 17일 11:55:36 명확성 postfix/smtp[14878]: 인증 기관 데이터를 로드할 수 없습니다: TLS 지원이 비활성화되었습니다.
3월 17일 11:55:36 명확성 postfix/smtp[14878]: 경고: TLS 라이브러리 문제: 14878: 오류: 0200100D: 시스템 라이브러리: fopen: 권한 거부됨: bss_file.c:169: fopen('/etc /ssl/certs /AddTrustExternalCARoot.crt','r'):
3월 17일 11:55:36 명확성 postfix/smtp[14878]: 경고: TLS 라이브러리 문제: 14878: 오류: 2006D002: BIO 루틴: BIO_new_file: 시스템 lib: bss_file.c: 174:
3월 17일 11:55:36 명확성 postfix/smtp[14878]: 경고: TLS 라이브러리 문제: 14878: 오류: 0B084002: x509 인증서 루틴: X509_load_cert_crl_file: 시스템 lib: by_file.c: 279:
이로 인해 SELinux 감사 로그가 표시되었으며, 여기에서 다음을 확인했습니다.
type=AVC msg=audit(1489751736.280:1341): avc: denied { read } for pid=14878 comm="smtp" name="AddTrustExternalCARoot.crt" dev=dm-0 ino=2228876 scontext=unconfined_u:system_r:postfix_smtp_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file
그래서 지시 사항을 따르려고 노력했습니다.여기기본 위치에서 인증서를 읽을 수 있도록 허용하는 새 정책을 만듭니다. 불행히도 여전히 작동하지 않습니다. 동일한 오류입니다. 인증서를 postfix 구성 디렉터리로 이동하고 /etc/postfix
, main.cf를 업데이트하고, postfix를 다시 시작했는데 이제 모든 것이 정상입니다. 제 질문은 postfix가 구성 디렉터리 외부에 설치된 인증서를 읽을 수 있도록 SELinux 정책을 어떻게 만들어야 합니까?입니다.
감사해요
답변1
restorecon -Rv /etc/ssl/
컴퓨터에서 실행하는 것이 좋습니다 .
거부에서 볼 수 있듯이 파일 컨텍스트를 복원하지 않고 홈 디렉터리에서 파일을 이동한 것 같습니다.