Ubuntu 20.04 LTS サーバ構築 – Postfix Let’s EncryptでTLS化
2022.05.01
この記事は最終更新日から1年以上が経過しています。
前回のUbuntu 20.04 LTS サーバ構築 – Postfix SASL認証の続きです。
今回は、メール送信をLet’s EncryptでTLS化していきます。
メニュー
- Ubuntu 20.04 LTS サーバ構築 – 初期セットアップ
- Ubuntu 20.04 LTS サーバ構築 – Nginxインストール
- Ubuntu 20.04 LTS サーバ構築 – Let’s EncryptでSSL/TLS化
- Ubuntu 20.04 LTS サーバ構築 – Postfixインストール
- Ubuntu 20.04 LTS サーバ構築 – Dovecotインストール
- Ubuntu 20.04 LTS サーバ構築 – Postfix SASL認証
- Ubuntu 20.04 LTS サーバ構築 – Postfix Let’s EncryptでTLS化
- Ubuntu 20.04 LTS サーバ構築 – DKIM、DMARCを設定する
Postfix Let’s EncryptでTLS化
現在取得している証明書の確認
$ sudo certbot certificates
順番でやってきたのであれば、webサーバの方で証明書を取得しているはずなので、新たにメールサーバ用に証明書を取得します。
起動しているnginxをstopしないとエラーとなるので一度止めます。
$ sudo systemctl stop nginx
サブドメインmailの方で証明書を取得します。
$ sudo certbot certonly --standalone -d mail.example.com
既に証明書発行してると、メールアドレスの入力、利用規約の承諾、メーリングリストの登録可否などはスキップされます。証明書は、`/etc/letsencrypt/live/mail.`example.com`/`に作成されます。
成功しましたら、nginxを再起動。
$ sudo systemctl start nginx
PostfixのSSL/TLS設定
/etc/postfix/main.cf を変更します。
$ sudo vim /etc/postfix/main.cf
最後尾に追加
# SSL/TLS smtp_tls_security_level = may smtpd_tls_cert_file = /etc/letsencrypt/live/mail.(ドメイン名)/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/mail.(ドメイン名)/privkey.pem smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache smtpd_tls_session_cache_timeout = 3600s smtpd_tls_received_header = yes smtpd_tls_loglevel = 1
/etc/postfix/master.cf を変更します。
$ sudo vim /etc/postfix/master.cf
# コメント解除 & 変更 smtps inet n - n - - smtpd # コメント解除 -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # コメント解除 & 変更 -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
設定のチェック
$ sudo postfix check
Postfixの再起動、設定内容の反映します。
$ sudo systemctl restart postfix
ステータス確認
$ systemctl status postfix
DovecotのSSL/TLS設定
/etc/dovecot/conf.d/10-ssl.conf を変更します。
$ sudo vim /etc/dovecot/conf.d/10-ssl.conf
# 変更 ssl = required # コメント解除 & 変更 ssl_cert = </etc/letsencrypt/live/mail.(ドメイン名)/fullchain.pem ssl_key = </etc/letsencrypt/live/mail.(ドメイン名)/privkey.pem
/etc/dovecot/conf.d/10-master.conf を変更します。
$ sudo vim /etc/dovecot/conf.d/10-master.conf
非セキュアな通信はport0番として設定を無効化します。(port = 0はコメント解除 & 変更。imapsとpop3sコメント解除)
service imap-login { inet_listener imap { port = 0 } inet_listener imaps { port = 993 ssl = yes } } service pop3-login { inet_listener pop3 { port = 0 } inet_listener pop3s { port = 995 ssl = yes } }
Dovecotの再起動
$ sudo systemctl restart dovecot
ステータス確認
$ systemctl status dovecot
メールクライアントアプリで送受信テスト
前回同様、メールクライアントアプリThunderbird を利用して確認を行っていきます。
接続の保護 SSL/TLSを選択。
送信サーバ smtp(SSL) ポート 465
受信サーバ POP(SSL) ポート 995
受信サーバ IMAP(SSL) ポート 993
それぞれ、送受信テストできるか確認。
送受信 | ポート番号 | 用途 |
---|---|---|
送信 | 25 | smtp |
送信 | 465 | smtp(SSL) |
送信 | 587 | Submissionポート |
受信 | 110 | POP |
受信 | 995 | POP(SSL) |
受信 | 143 | IMAP |
受信 | 993 | IMAP(SSL) |
送信メールがTLS化され、セキュアに使えるようになりました。
最後は、DKIM、DMARCを設定していきます。