Gmail メール送信者のガイドラインとPostfixの送信時TLS接続設定
はじめに
2024年2月以降に適用されるGmailのガイドラインには、
メールの送信に TLS 接続を使用する
と記載されています。
「メールを送るときは、しっかり暗号化してください」
ということですね。
Postfix経由でメールを送信しているサーバーでは、メール送信時のTLS接続が有効になっているかどうか、確認しましょう。
とくに、CentOS 7 と Amazon Linux 2 の Postfix は、デフォルトでは送信時のTLS接続設定が無効となっているようですので、注意しましょう。
Gmail メール送信者のガイドラインと送信時TLS接続の確認
2023年秋ごろ、Googleから、Gmail宛てに送信する場合のガイドラインが発表されました。
詳しくは、Googleの公式サイトや、解説記事などを参照してください。
・メール送信者のガイドライン – Gmailヘルプ
https://support.google.com/mail/answer/81126?hl=ja
・Gmailユーザへメールが届かなくなる?Googleが発表した「新しいメール送信者のガイドライン」とDMARC対応を解説! – NRIセキュアブログ
https://www.nri-secure.co.jp/blog/gmail-guideline-2023
・【解決策】2024年2月よりGmailガイドラインが変更!1日5000件以上の配信は対応必須! – blastmail
https://blastmail.jp/blog/spam/gmail-guideline-202402
Gmailアカウントへのメール送信が、1日あたり5,000通未満か5,000通以上かで内容が異なっています。
※「1日あたり5,000通」の対象が何であるか、については、Googleが、送信者のガイドラインを満たしていることの確認方法として Postmaster Tools の使用を提示しており、Postmaster Tools はドメイン単位での確認ですので、「1ドメインあたり、1日あたり5,000通」ということだと思われます。
僕が運用・管理しているサーバーでは、1日あたり5,000通以上のメールを送信するドメイン・サーバーは存在しないため、最低限、SPFレコードをしっかり設定しておけば問題ないだろうと考えていました。
しかし、調査の過程で以下のXのポストを見かけました。
・Xポスト – DNSはむずかしい
https://twitter.com/beyondDNS/status/1734742093443321937
再度調べると、ガイドラインに以下が追加されていました。
メールの送信に TLS 接続を使用する
「自分が運用・管理しているサーバーのPostfixでは、メール送信時のTLS接続はデフォルトで有効になっているはず」と思いつつ、実際にサーバーからGmailアドレス宛てのメール送信を試してみると、、、
CentOS 7 と Amazon Linux 2 の Postfix から送信した場合は、のGmailメールボックスの受信メールは、以下のように赤い鍵印アイコンが表示されました。
(マスクが多く、見にくくてすみません。)
↑Gmailメールボックスの受信メールに、赤い鍵印アイコンが表示されています。
鍵印の暗号化アイコンの色が
「赤」であれば、暗号化なし
「灰色」であれば、TLSによる暗号化
「緑」であれば、S/MIMEによる暗号化
を表します。
(参考)
・送受信時のメールの暗号化 – Gmailヘルプ
https://support.google.com/mail/answer/6330403
つまり、CentOS 7 と Amazon Linux 2 の Postfix から送信した場合は、TLS接続を使用しておらず、暗号化なしで送信されています。
※Rocky Linux 8, AlmaLinux 8 サーバーから送信した場合は、「TLSで暗号化されている」を意味する灰色の鍵印アイコンが表示されました。
Postfixでメール送信時のTLS接続設定
サーバーのPosftixの、smtp_tls_security_level で、メール送信時のTLS接続設定を有効にします。
(参考)
・Postfix TLSサポート – Postfixドキュメント日本語訳
https://www.postfix-jp.info/trans-2.3/jhtml/TLS_README.html
まず、postconfコマンドで、smtp_tls_security_level の現在の設定値を確認します。
CentOS 7 や Amazon Linux 2 のPostfixのデフォルトでは、空値のはずです。
# postconf | grep smtp_tls_security_level smtp_tls_security_level =
(必要に応じて)mailコマンドでGmailアドレス宛てにメールを送信して、Gmailメールボックスで受信メールの鍵アイコンを確認します。
# echo "This is Test Mail from `hostname`." |\ mail -s "test mail from `hostname`" <Gmailのメールアドレス>
↑鍵印の暗号化アイコンの色が「赤」となっています。
暗号化なしで送信されました。
Postfixの設定で、smtp_tls_security_level の値を may に設定します。
この設定により、送信時にTLS接続を試み、接続先のサーバーがTLSに非対応の場合は、TLSを無効にして再接続を試みます。
※smtpd_tls_security_level パラメータは、メール受信・リレーで接続を受け付ける場合の設定です。送信時の設定は smtp_tls_security_level (smtpd_ ではなく smtp_) ですので間違えないよう注意しましょう。
# vim /etc/postfix/main.cf -- smtp_tls_security_level = may --
Postfixをreloadして、設定を反映します。
# systemctl reload postfix
動作確認のため、mailコマンドでGmailアドレス宛てにメールを送信して、Gmailメールボックスで受信メールの鍵アイコンを確認します。
# echo "This is Test Mail from `hostname`." |\ mail -s "test mail from `hostname`" <Gmailのメールアドレス>
↑鍵印の暗号化アイコンの色が「灰色」となりました。
無事、TLSで暗号化されています。
メールログも確認しておくとよいでしょう。
status=sent となっており、とくにエラーやWarningメッセージがなければOKです。
# less /var/log/maillog Dec 15 18:29:24 <hostname> postfix/smtp[14466]: 83F81187ED25: to=<xxxxxxxx@g mail.com>, relay=gmail-smtp-in.l.google.com[64.233.188.xx]:25, delay=2, delays=0 .02/0.01/1/0.94, dsn=2.0.0, status=sent (250 2.0.0 OK 1702632564 19-20020a63175 3000000b005c61d17e6aasi12900980pgx.122 - gsmtp)
おわりに
Gmail メール送信者のガイドラインに
「メールの送信に TLS 接続を使用する」
という要件が追加されました。
Gmail宛てとか、メール送受信に限らず、Webを含め、あらゆる通信は暗号化することが標準となってきていますね。
メール送信時のTLS接続を有効にすることによるディメリットはないと思いますので、Postfix経由でメールを送信しているサーバーでは、確認のうえ、無効となっていれば、有効に設定してしまいましょう。
また、Gmail メール送信者のガイドラインへの対策・確認方法としては、Googleの Postmaster Tools を使用するとよいでしょう。
(Postmaster Tools の設定には、DNS TXTレコードの追加によるドメイン所有権の証明が必要です。)
(参考)
・Postmaster Tools を使ってみる – Gmailヘルプ
https://support.google.com/mail/answer/9981691
(関連記事)
・SPFレコードは正しく設定しよう~Webフォームの自動返信メールが届かない原因
https://inaba-serverdesign.jp/blog/20230710/mail-spf-web-form.html
・Postfixによるメール送信設定
https://inaba-serverdesign.jp/blog/20160620/postfix_send_mail.html
・SPFレコードの登録を忘れずに
https://inaba-serverdesign.jp/blog/20150909/spf_send_mail.html