2018年6月12日火曜日

postfixのSTARTTLS対応

postfixのSSL/TLSのやり方は複数ありますが、現状ではSTARTTLS一択だと考えます。
なぜか。
SSL/TLSをのみに対応した場合にSSL/TLSに対応していないメールサーバとセッションを確立することができず、メール疎通が不可能となります。
HTTP通信のようにHTTPSへリダイレクトするような仕組みもなく、セッションが確立できなかったらそれでおしまい。
STARTTLSの場合には始めのセッション確立時は平文で通信しますが、相手がSSL/TLS(STARTTLS)に対応していることが判断できればSSL/TLSで暗号化通信が開始されます。
また、専用のPORT587やPORT465を別途開ける必要がなく、SMTPのPORT25をそのまま利用することができるのもメリットです。

main.cfへの設定

今回postfixの/etc/postfix/main.cfへ設定した内容は以下の通り

###### STARTLS ######
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtpd_tls_cert_file = /etc/postfix/cert/test.crt
smtpd_tls_key_file = /etc/postfix/cert/test.key
smtpd_tls_loglevel = 1
smtp_tls_loglevel = 1

受信も送信もSTARTTLS対応した場合は以下の内容で両方設定する。
受信がsmtpd
送信がsmtp

秘密鍵はパスワードなしで設定

keyファイルにパスワードがかかっていることがありますが、パスワードは外す必要があります。

ログは出力量で決める

loglevelでSTARTTLSでSSL/TLSが行えたかを記録します。
最低レベルの「1」として設定していますが、メール量によっては出力されるログも1.5倍程度になるため最初の動作確認が済めばコメント等で出力を止めるのも手だと思われます。