メールサーバー(Postfix+Dovecot)通信暗号化

 

WEBサーバーの暗号化(SSL化)に使ったcertbotのサーバー証明書を利用してメールサーバー(Postfix+Dovecot)の通信も暗号化します。

※certbotを使ったWEBサーバーの暗号化(SSL化)が完了している前提です。

・バーチャルホスト設定ファイルを作成してメールサーバー名(mail.sample.com)でWEBサーバー(sample.com)にアクセス出来るようにする。
# vi /etc/httpd/conf.d/virtualhost-sample.com.conf
<Virtualhost *:80>
ServerName sample.com
ServerAlias mail.sample.com
DocumentRoot /var/www/html
</VirtualHost>

・設定反映
# systemctl reload httpd

・サーバー証明書取得
certbot certonly –webroot -w ドキュメントルート -d メールサーバー名 -m メールアドレス –agree-tos

・Postfix設定
# vi /etc/postfix/main.cf
下記を追記
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.sample.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.sample.com/privkey.pem
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache

# vi /etc/postfix/master.cf
下記4行の行頭の#を削除
smtps inet n – n – – smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
tlsmgr unix – – n 300 1 tlsmgr

・postfix再起動
systemctl restart postfix

※ルーターでTCP465番をサーバーに通すようにする

・Dovecot設定
# vi /etc/dovecot/conf.d/10-ssl.conf
行頭の#を削除
ssl = yes
サーバー証明書+中間証明書と秘密鍵を指定
ssl_cert = </etc/letsencrypt/live/mail.sample.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.sample.com/privkey.pem

・Dovecot再起動
# systemctl restart dovecot

※ルーターで受信メールがPOPの場合はTCP995番を、IMAPの場合はTCP993番をサーバーに通すようにする

※メールソフトの設定で送信メールサーバー・受信メールサーバーともに上記各ポート番号を指定し、「セキュリティで保護された接続」を選択する

※メールサーバーのサーバー証明書の更新
WEBサーバーの証明書の更新「certbot renew」でメールサーバー証明書も自動的に更新されます。

 

カテゴリー: CentOS7 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です