メールサーバのSSL対応

2021年9月24日

動作確認済みシステムDebian 11

メールサーバに、SSL証明書の作成(Let’s Encrypt)で取得した証明書を設定して、SSLをサポートするようにします。

PostfixでSSLの設定を行います。

vi /etc/postfix/main.cf

最後のところに、以下を追記します。

smtpd_use_tls = yes
smtp_tls_security_level = may
smtpd_tls_cert_file = /etc/letsencrypt/live/example.com/cert.pem
smtpd_tls_key_file = /etc/letsencrypt/live/example.com/privkey.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/example.com/chain.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_protocols = !SSLv2, !SSLv3

master.cfでSMTPSポートの設定を行います。

# コメント解除もしくは追記
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

DovecotでSSLの設定を行います。

vi /etc/dovecot/conf.d/10-ssl.conf
# 変更
ssl_cert = </etc/letsencrypt/live/example.com/cert.pem
ssl_key = </etc/letsencrypt/live/example.com/privkey.pem

# 変更
ssl_ca = </etc/letsencrypt/live/example.com/chain.pem

# 追記
ssl_min_protocol = TLSv1.2
vi /etc/dovecot/conf.d/10-master.conf
service imap-login {
inet_listener imaps {
# コメント解除
port = 993
ssl = yes
}
}

各種サービスを再起動します。

systemctl restart postfix.service
systemctl restart dovecot.service

ファイアウォールの設定を行い、必要なポートを許可するようにします。

ufw allow 'Dovecot Secure IMAP'
ufw allow 'Postfix SMTPS'
ufw reload

メーラーでSSLを使って送受信ができていることが確認できればOKです。