Gmailの送信者ガイドラインに対応するため、TLS、SPF、DKIM、DMARCの動作確認や設定をしてみた(その1)

コンピュータ
スポンサーリンク

■メール関連の記事
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同様、詳細は次回解説することとする。

概要だけ記載しておく。

  1. OpenDKIMで、対象ドメイン(メールのヘッダFrom)の秘密鍵と公開鍵を作成する
  2. 公開鍵をDNSサーバに登録する
  3. 送信メールに対し秘密鍵で署名をする
  4. 宛先にメールを送信する
  5. 受信したメールを、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)

タイトルとURLをコピーしました