由於 CentOS 6.7 上的 SELinux 策略,Postfix 無法在預設位置讀取 ssl 證書
我已安裝並配置後綴以使用 ssl 證書通過中繼發送外部郵件。此設置已在其他幾台 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:error:0200100D:system library:fopen:Permission denied:bss_file.c:169:fopen(’/etc/ssl/certs/AddTrustExternalCARoot.crt’,‘r’): 3 月 17 日 11:55:36 清晰度 postfix/smtp
$$ 14878 $$: 警告: TLS 庫問題: 14878:error:2006D002:BIOroutines:BIO_new_file:system lib:bss_file.c:174: 3 月 17 日 11:55:36 清晰度 postfix/smtp
$$ 14878 $$: 警告: TLS 庫問題: 14878:error:0B084002:x509 證書常式:X509_load_cert_crl_file:system 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
因此,我嘗試按照此處的說明創建一個新策略,允許在其預設位置讀取證書。不幸的是,它仍然沒有工作,同樣的錯誤。我將證書移動到後綴配置目錄
/etc/postfix
,更新了 main.cf,重新啟動後綴,現在一切都很好。我的問題是我應該如何創建一個 SELinux 策略以允許 postfix 讀取安裝在其配置目錄之外的證書?謝謝
我建議你
restorecon -Rv /etc/ssl/
在機器上執行。正如您在拒絕中看到的那樣,您似乎已經從主目錄中移動了文件而沒有恢復文件上下文