DMARC

DMARC レコードの追加

ドメインでの不審なメールの処理方法を定義する

ドメインの DNS レコードにポリシーを追加して、DMARC(Domain-based Message Authentication, Reporting, and Conformance)を設定します。ポリシーを使って、ドメインでの不審なメールの処理方法を定義できます。これらのポリシーは TXT レコードの形式で定義します。

不審なメールに対するドメインの対応として、次の 3 つの DMARC ポリシーを使用できます。

  • メールに対して何もせずに日次レポートに記録する。
  • 迷惑メールに分類して保持し、処理(検疫)する。
  • 受信者に送信されないようにメールをキャンセルする。

下記の DMARC TXT レコードでよく使用されるタグの表に記載されているように、TXT レコードで p タグを使って DMARC ポリシーを設定します。

先に SPF と DKIM を設定する

DMARC を設定する前に、SPF(Sender Policy Framework)と DKIM(DomainKeys Identified Mail)を設定することをおすすめします。DMARC は SPF と DKIM を使用してメールの信頼性を検証します。メールが SPF チェックまたは DKIM チェックをパスしなかった場合は、DMARC ポリシーが適用されます。

DMARC レコードを作成する

ドメインで使用するポリシーを定義するタグ名と値を使って、TXT レコードを作成します。

TXT レコード名は次の形式である必要があります(your_domain.com は実際のドメイン名に置き換えてください)。
 _dmarc.your_domain.com 

DMARC TXT レコードの作成に関するヒント

DMARC レコードの作成について詳しくは、次の記事をご覧ください。

DMARC TXT レコードでよく使用されるタグ

注: Gmail では、失敗(フォレンジック)レポートの送信に使用される DMARC ruf タグはサポートされていません。

タグ名 必須 説明と値

v

必須 プロトコルのバージョン。値は DMARC1 にする必要があります。 v=DMARC1

p

必須

ドメインでの不審なメールの処理方法を設定します。

  • none: メールに対して何もせずに、日次レポートに不審なメールを記録する。
  • quarantine: 迷惑メールに分類して保持し、処理する。
  • reject: 受信者に送信されないようにメールをキャンセルする。
p=quarantine

pct

オプション

DMARC ポリシーを適用する不審なメールの割合を設定します。不審なメールとは、DMARC 認証が通らなかったメールのことです。デフォルト値は 100 です。

pct=20

rua

オプション

集計レポートの報告先 URI(Uniform Resource Identifier)。ドメインの DMARC アクティビティに関するレポートを受け取るには、このオプションを使用して独自のメールアドレスを指定します。

rua=mailto:aggrep@example.com

sp

オプション

メインドメインのサブドメインからのメールに関するポリシーを設定します。サブドメインに別の DMARC ポリシーを適用する場合はこのオプションを使用します。使用できる値は p タグと同じです。

 

sp=reject

aspf

オプション

SPF(ASPF)の調整モードを設定して、メールの情報が SPF 署名とどの程度一致する必要があるかを定義します。デフォルトは relaxed です。

r: relaxed は部分一致(ドメイン内のサブドメインなど)を許可します。

s: strict の場合は完全に一致する必要があります。

aspf=r

 

時間をかけて DMARC を導入する

ポリシー(p)オプションと割合(pct)オプションを併用して、DMARC を Gmail に徐々に導入します。

DMARC ポリシーを徐々に導入する方法

ポリシー(p)オプションを使用します。TXT レコードの p タグ値を使用して、ポリシー オプションの設定と変更を行います。まずは quarantine ポリシーを使用して不審なメールを調べます。次に、検疫されたメールと日次レポートの情報をもとにポリシーを段階的に変更します。

  1. p=none: メール トラフィックを監視して日次レポートで問題を探しますが、メールはすべて通過させます。なりすましメールや DKIM または SPF で署名されていないメールを確認します。
  2. p=quarantine: 日次レポートに記載されるメールのパターンがわかっている場合は、ポリシーを quarantine に変更します。引き続き日次レポートをチェックして、迷惑メールとして隔離(検疫)されたメールを確認します。
  3. p=reject: ドメインからのすべてのメールが署名されていることを確認したら、ポリシーを reject に変更して迷惑メールのフィルタリングを開始します。引き続き日次レポートをチェックし、迷惑メールが除外され、有効なメールが受信者に送信されていることを確認します。

割合(pct)オプションを使用します。割合オプションでは、DMARC ポリシーを適用する不審なメールの割合を指定します。不審なメールとは、DMARC 認証が通らなかったメールのことです。デフォルトは 100%(すべての不審なメール)です。最初は少数のメールが対象となるように割合オプションを設定し、数日おきに割合を増やしながら DMARC ポリシーを調整してください。たとえば、まずは割合オプションを 20 に設定して、拒否または検疫されたメールの 20% をフィルタします。翌週には値を 20 から 50 に変更してメールの 50% をフィルタします。

導入例: 次の例では、p オプションと pct オプションを使用して DMARC ポリシーを段階的に導入する方法を示します。以下の値を使って、徐々に DMARC ポリシーを更新します。

  1. p=none pct=100
  2. p=quarantine pct=1
  3. p=quarantine pct=5
  4. p=quarantine pct=10
  5. p=quarantine pct=25
  6. p=quarantine pct=50
  7. p=quarantine pct=100
  8. p=reject pct=1
  9. p=reject pct=5
  10. p=reject pct=10
  11. p=reject pct=25
  12. p=reject pct=50
  13. p=reject pct=100

TXT レコードの例

DMARC TXT レコードの例をいくつかご紹介しますので、用途に合わせて変更してください。これらのレコードをコピーして、「your_domain.com」と「postmaster@your_domain.com」を実際のドメインとメールアドレスに置き換えます。

日次レポートを使用して、必要に応じてポリシーと割合の値を変更してください。

TXT レコードの例: 何もしない

ご利用のドメインが送信元になっていて DMARC チェックをパスしなかったメールに、何も処理を行いません。「postmaster@your_domain.com」宛に日次レポートが送信されます。

"v=DMARC1; p=none; rua=mailto:postmaster@your_domain.com"

TXT レコードの例: メールを検疫する

ご利用のドメインが送信元になっていて DMARC チェックをパスしなかったメールの 5% を検疫します。「postmaster@your_domain.com」宛に日次レポートが送信されます。

"v=DMARC1; p=quarantine; pct=5; rua=mailto:postmaster@your_domain.com"

TXT レコードの例: メールを拒否する

ご利用のドメインが送信元になっていて DMARC チェックをパスしなかったメールをすべて拒否します。「postmaster@your_domain.com」と「dmarc@your_domain.com」宛に日次レポートが送信されます。

"v=DMARC1; p=reject; rua=mailto:postmaster@your_domain.com, mailto:dmarc@your_domain.com"

DMARC の日次レポート

DMARC の日次レポートは XML 形式で、メールフローに関する情報が記載されています。レポートの用途は次のとおりです。

  • 送信メールの送信元が認証されていることを確認する
  • ドメインのメールが正当なメールサーバーから送信されていることを確認する
  • 新しいサーバーがオンラインになった場合、または既存のサーバーに設定の問題が発生した場合に対応する
DMARC レポートの例

以下は、2 つの IP アドレスから送信されたメールの結果を示すレポートの一部です。1 つのメールは直接送信され、もう一方のメールは転送されました。どちらのメールも DMARC チェックをパスしています。


<record>
<row>
<source_ip>207.126.144.129</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
</policy_evaluated>
</row>
<identities>
<header_from>stefanomail.com</header_from>
</identities>
<auth_results>
<dkim>
<domain>stefanomail.com</domain>
<result>pass</result>
<human_result></human_result>
</dkim>
<spf>
<domain>stefanomail.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>207.126.144.131</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<reason>
<type>forwarded</type>
<comment></comment>
</reason>
</policy_evaluated>
</row>
<identities>
<header_from>stefanomail.com</header_from>
</identities>
<auth_results>
<dkim>
<domain>stefanomail.com</domain>
<result>pass</result>
<human_result></human_result>
</dkim>
<spf>
<domain>stefanomail.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>

この記事は役に立ちましたか?
改善できる点がありましたらお聞かせください。