迷惑メールにならない対策

CentOS(7.6)サーバーからmailコマンドで、自分に機械的に送っているメール(ログイン時、yum-cron等)が、Gmail(G Suite無償版※)で迷惑メールとしてはねられないようにする。

※初期ベータ時の登録のまま無償版で使っているが、有償にしないと以下のSMTPリレーが使えない。だんだん無償版の扱いが厳しくなってきたが、できる限り無償で頑張ってみる。

https://support.google.com/a/answer/2956491

迷惑メールに入るだけでなく、最悪送信が受け付けられない。

(Googleサーバーからのメッセージ)

XXXXX@XXXXX.com: host aspmx.l.google.com[2404:6800:4008:c04::1b] said:
550-5.7.1 This message does not have authentication information or fails to
pass 550-5.7.1 authentication checks. To best protect our users from spam,
the 550-5.7.1 message has been blocked. Please visit 550-5.7.1

メッセージが受け付けられないということで、以下サイトを見ろとなる。

https://support.google.com/mail/answer/81126#authentication

その対策として、とりあえず、サーバー追加時にやること。

1.SPFレコードにサーバー登録

対象ドメインDNSのTXTレコードを修正(追記)する。

v=spf1 ip4:XXX.XXX.XXX.XXX include:_spf.google.com ~all 

GSuiteのツールで、DNSをチェックできるので、こちらから設定されたことを確認する。

G Suite Toolbox Check MX )

https://toolbox.googleapps.com/apps/checkmx/

上記設定後に、サーバーからのメールを「メッセージのソース」で見ると、SPFが「PASS」となる。

SPF:  PASS(IP: XXX.XXX.XXX.XXX)。詳細 

2.Postfixの設定

CentOS7から、標準がPostfixになったらしい。

2.1 TLS通信設定

以前はSendmailでTLSが有効だったけど、Postfixでは標準ではTLSは無効になっている。以下を参考にして設定を変更した。

https://qiita.com/tak-onda/items/b585841e03e4619ec367

/etc/postfix/main.cfに以下を追加。

smtp_tls_security_level = may
smtp_tls_CAfile = /etc/pki/tls/cert.pem
smtp_tls_loglevel = 1

ちなみに、CAファイルが無効(あるいはsmtp_tls_CAfileを設定しない場合)でも、送信自体はできた。

 (maillog)
postfix/smtp[11228]: Untrusted TLS connection established to aspmx.l.google.com[64.233.189.27]:25: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)

2.2  DKIMとDMARC設定

とりあえず、TODOということで備忘録