CentOS 6.7のSELinuxポリシーのため、Postfixはデフォルトの場所からSSL証明書を読み取ることができません。

CentOS 6.7のSELinuxポリシーのため、Postfixはデフォルトの場所からSSL証明書を読み取ることができません。

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: 27

これにより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/コンピュータで実行することをお勧めします。

拒否したように、ファイルコンテキストを復元せずにホームディレクトリからファイルを移動したようです。

おすすめ記事