Posted at

Postfixのメールサーバ間通信でTLSを有効にする


背景

独自サーバからGmail宛てにメールを送信してみた所、「このメールは~で暗号化されませんでした」との警告が出ていました。

調べてみた所、今時はメールサーバ間の通信でもTLSを行うようで、TLS対応していない通信だとこの警告が出るとのこと。

それほど難しい設定でもないので、導入してみました。


設定

以下の設定を main.cf に追加するだけです。(もちろん、postfixのreloadは行いましょう。)

smtp_tls_CAfile = /etc/pki/tls/cert.pem

smtp_tls_security_level = may
smtp_tls_loglevel = 1


設定内容

設定そのものは他の方のドキュメントを参照させて頂きましたが、念のため、公式のドキュメントも参照しました。


smtp_tls_security_level

この設定でメールサーバ間の通信でTLSを有効にします。

値にはmayかencryptを選択できるようですが、encryptはTLS強制なので専用サーバ間のみ使用しましょうという感じの様子。mayの場合には、送信先のSMTPサーバーが TLSに対応している場合にはTLSを使い、未対応の場合は通常のSMTPで送信するようですね。


smtp_tls_CAfile

接続先の証明書を検証するためのルート証明書とのこと。

CentOSデフォルトのルート証明書を参照していたのでそのまま利用しました。


smtp_tls_loglevel

1はTLS接続のサマリーのみログに出力する設定です。

全く出さないのも問題ではありますが、大量に出しても追跡しにくくなるので、これもこのまま利用しました。


確認

Gmailのメールアドレス宛てにメールを送信してみて、赤い鍵のアイコンや警告が出ていないことを確認しました。

また、メールログにサマリーが出ていることも確認しています。