SPF、DKIM、DMARCの設定メモ

1757016142

Kagoyaのメールプランをセキュアにプラン変更した時のメモ。
Gmailにメールが届くようにするためにSPFDKIMDMARCを設定。

 

前提

メールサーバーはカゴヤ。

DNSサーバーは外部。

この条件で送信ドメイン認証設定を行う。

 

MXレコードの設定

カゴヤの場合、外部DNSだとこれ一択らしい。

dmail.kagoya.net

レコードはこうなる

mydomain.com MX dmail.kagoya.net 3600 0

 

確認

nslookup -q=mx ドメイン名

Google

nslookup -q=mx ドメイン名 8.8.8.8

 

SPFの設定

外部DNSの場合、セキュアプランだろうが何だろうがカゴヤのSPFはこれ一択らしい。

専用サーバーにした場合は不明。

v=spf1 include:kagoya.net ~all

外部DNS設定

mydomain.com TXT v=spf1 include:kagoya.net ~all 3600

 

確認

nslookup -q=txt ドメイン名

Google

nslookup -q=txt ドメイン名 8.8.8.8

 

DKIMの設定

まずメールサーバー側でセレクターを指定して秘密鍵と公開鍵を生成する。
セレクターは任意の文字列。

セレクターを決める

セレクターは任意の文字列。

メールヘッダーの DKIM-Signature に s=セレクター名; として入る。

 

秘密鍵と公開鍵の生成

メールサーバー側で、秘密鍵と公開鍵を生成する。

  • 秘密鍵はメールサーバーで保持。
  • 公開鍵はDNSサーバーに登録。

 

メールサーバーで署名を有効化

Postfix, Exim, Sendmail などで「どのドメイン・セレクターを使って署名するか」を設定し、秘密鍵を利用して送信時に署名する。

 

DNSサーバーに公開鍵を登録

TXTレコードに登録。

selector._domainkey.mydomain.com. IN TXT "v=DKIM1; k=rsa; p=公開鍵文字列"

 

Gmail, mail-tester.com, dig/nslookup nなどで公開鍵が正しく引けるか確認する。

nslookup -q=txt セレクター._domainkey.ドメイン名

Google

nslookup -q=txt セレクター._domainkey.ドメイン名 8.8.8.8

 

DMARCの設定

DNSサーバーにポリシーを登録。

_dmarc.ドメイン名. IN TXT "v=DMARC1; p=ポリシー; rua=mailto:レポート宛先"

 

  • v=DMARC1 → バージョン固定
  • p= → ポリシー(none / quarantine / reject)
  • rua= → 集計レポート送付先(任意)
  • ruf= → フォレンジックレポート送付先(任意)

 

例)

_dmarc.mydomain.com. IN TXT "v=DMARC1; p=quarantine; pct=100; ri=86400; adkim=s; aspf=s; sp=none;"

 

  • p=quarantine
    DMARCに失敗したメールを「隔離(Spamフォルダ行き)」扱いにするポリシー
    他の選択肢:
    none(何もしない、レポートのみ)
    reject(受信拒否)
  • pct=100
    適用率。100%のメールに対してポリシーを適用。
    (試験的に一部だけ適用したい場合は50などにする)
  • ri=86400
    レポート送信間隔(秒)。86400秒=1日ごとに集計レポート送信。
  • adkim=s
    DKIMの整合性チェックを strict(厳格一致) にする。
    (r にすると relaxed、一致範囲が緩やか)
  • aspf=s
    SPFの整合性チェックを strict(厳格一致) にする。
    (r にすると relaxed)
  • sp=none

    サブドメインに対するポリシー。

    • none → サブドメインは制御しない

    • quarantine / reject を指定可能

 

 

送信ドメイン認証の流れ
  • メールを送信

  • 送信元のSMTPサーバーへ

  • MTAでDKIM署名を追加

  • DNSで MXレコード を引いてメールサーバーを確認
    送信MTA → 受信MTAへメールを転送

  • 受信メールサーバーで認証チェック
    ・SPFチェック(送信サーバーのIPが SPFレコードで許可されているか確認)
    ・DKIM検証(秘密鍵と公開鍵をチェックして署名が正しいか検証)
    ・DMARCポリシーの適用(SPFとDKIMの結果をもとに判定)

  • SPF / DKIM が PASS → 正常に受信トレイへ

    失敗した場合は、DMARCのポリシーに従って処理

 

 

チェック

設定後に自分のメールアドレスに送信してヘッダー情報を確認。

Gmailのメールアドレスに送信して届くか確認。

 

設定後、Mail-Tester にアクセスして指定のアドレスにメールを送信するとスコアを付けてくれるので簡単にチェックできる。