■メール関連の記事
Postfix(SMTP)とDovecot(POP)で中継メールサーバ、受信サーバの検証環境を準備してみる
Postfixのrelayhost、transport、fallbackに関して
Postfix(SMTPサーバ)のキューの再送間隔に関して
メールサーバのパフォーマンステスト(負荷テスト)で、大量にメールを送る方法
Postfix(SMTPサーバ)でドメイン単位で送信宛先を制限したい
Gmailの送信者ガイドラインに対応するため、TLS、SPF、DKIM、DMARCの動作確認や設定をしてみた(その1)
Google様のGmailが、メール送信者のガイドラインに対応しないと、メールが正常に受信できなくなるよ。というお触れを出したため、下図の構成図をベースに動作確認や設定をしてみた。

各機能の動作確認
各機能が有効になっているか確認するため、Gmail宛へ適当なメールを送ってみる。
TLS(Transport Layer Security)
メールの送信元である「SMTPサーバ」の話である。Gmailへ送信する場合、暗号化して送っくれということだが、古いPostifxなどではデフォルト無効となっている。そのため、明示的に有効化する必要もあるが、詳細は次回で記載する。
下図の部分で、TLS有効化の有無は確認可能だ。

次に、SPF、DKIM、DMARCに関してだが、先に概要を記載しておく。解説が不要の場合、読み飛ばしていただきたい。
SPF(Sender Policy Framework)
メールを送信するサーバは、どのIPアドレスから送ってくるのか? というのを、「DNSサーバ」に設定する必要がある。
DKIM(DomainKeys Identified Mail)
メールを配信する側の「SMTPサーバ」、「DNSサーバ」で設定する内容だ。OpenDKIMが有名だが、TLS同様、詳細は次回解説することとする。
概要だけ記載しておく。
- OpenDKIMで、対象ドメイン(メールのヘッダFrom)の秘密鍵と公開鍵を作成する
- 公開鍵をDNSサーバに登録する
- 送信メールに対し秘密鍵で署名をする
- 宛先にメールを送信する
- 受信したメールを、DNSサーバに登録された公開鍵で検証する
DMARC(Domain-based Message Authentication、Reporting and Conformance)
メールを送信する側、受信する側の双方で考慮が必要だ。
メール送信側は、DMARCレコードを「DNSサーバ」へ登録しておき、受信側はDMARC検証を有効にしておく必要がある(もちろんGmailはすでに有効になっている)。
メールを受信すると、SPF/DKIMのチェック後、DMARCでは更にSPFアライメント、DKIMアライメントを確認する。
SPFアライメントは、ヘッダFromのドメインと「Return-Pathのドメイン(エンベロープFromと記載しているページもあるが、正確にはReturn-Pathのはず?)」。
DKIMアライメントは、ヘッダFromのドメインと、「DKIMのd=”ドメイン”」が合致しているか確認する仕組みだ。
DMARCは、これら4つの結果(SPF認証、DKIM認証、SPFアライメント、DKIMアライメント)からPASS、またはFAILの判断をしている。
では、受信したメールで、SPF、DKIM、DMARCの結果を確認するため、下図「メッセージのソースを表示」を選択してみよう。

表示された内容で、赤枠の部分を確認してみる。
SPF、DKIM、DMARCの設定がされており、かつ正常に認証されれば、’PASS’と表示されているはずだ。

ここで、DNSサーバに登録したDKIMの公開鍵を適当に書き換え、再度メールを送ってみる。
そうすると、DKIMの認証が失敗するため、’FAIL’と表示される。

つまり、SPFやDKIMの認証が通れば’PASS’となり、失敗すると’FAIL’と表示される。
では、SPFやDKIM、DMARC自体の設定をしていない場合はどうなるか。
試しに、DNSサーバで設定したDMARCの設定を消し、再度メールを送信した結果が以下の通りだ。

設定されていない場合は、PASSでもFAILでもなく、表示自体がなくなる。これは、SPFやDKIMが設定されていない場合も同様で、表示されなくなる。
最後に、DAMRCのレコードに登録したRUA宛に送られてきたメールを確認する。

24時間に1回はDMARCレポートを受信しているはずだ。添付ファイルを解凍するとxmlファイルがあるため、本レポートからSPFやDKIMを設定していないメールサーバなどがあるか確認する。
考慮が漏れていたメールサーバがある場合、速やかに設定を修正しよう。
最後にメールサーバの精査が完了したら、DMARCレコードをp=noneから、quarantineやrejectに更新し、メール受信者をフィッシングや、’なりすまし’から保護しよう。
■メール関連の記事
Postfix(SMTP)とDovecot(POP)で中継メールサーバ、受信サーバの検証環境を準備してみる
Postfixのrelayhost、transport、fallbackに関して
Postfix(SMTPサーバ)のキューの再送間隔に関して
メールサーバのパフォーマンステスト(負荷テスト)で、大量にメールを送る方法
Postfix(SMTPサーバ)でドメイン単位で送信宛先を制限したい
Gmailの送信者ガイドラインに対応するため、TLS、SPF、DKIM、DMARCの動作確認や設定をしてみた(その1)