メールを送信しないドメインの防御設定

メールを送信しないドメインの防御設定

作成
著者: 竹洞 陽一郎

メールを送信しないドメイン用に、SPF、DKIM、およびMXレコードを防御的に設定することは、ドメインスプーフィングを防ぎ、ブランドの信頼性を維持するために非常に重要です。
ここでは、これらの設定がなぜ重要かという点と、具体的な設定方法について解説します。

1. SPF (Sender Policy Framework) の設定

SPFは、どのメールサーバーが御社のドメイン名を使用してメールを送信できるかを定義するために使用されるDNS TXTレコードです。
メールを送信しないドメインの場合、SPFレコードを設定して、すべてのメールサーバーからのメール送信を明示的に禁止することが推奨されます。

以下のレコードは、「このドメインからのメール送信は許可されていません」と明示的に宣言しています。
この設定により、他者が不正にあなたのドメインを使用してメールを送ることが困難になります。


v=spf1 -all

2. DKIM (DomainKeys Identified Mail) の設定

DKIMは、送信メールにデジタル署名を追加し、受信者がメールが改竄されていないことを検証できるようにするためのメカニズムです。
メールを送信しないドメインの場合、DKIMの設定は基本的には不要です。
そのドメインからメールが送信されない以上、DKIM-Signatureヘッダー自体が付与されず、検証の対象にならないからです。

明示的に、DKIMの値が存在しないことを示したい場合には、以下の設定を行います。


*._domainkey.yourparkeddomain.com TXT "v=DKIM1; p="

RFC 6376の3.6.1節で、p=タグ(公開鍵データ)について、空の値は、この公開鍵が失効したことを意味すると規定しています。
RFC 4592の3.3節および3.3.1節は、この判定を「closest encloser(最近接の囲い)」という概念で説明しています。
ワイルドカードによる合成は、closest encloserの直下に連なる「*.closest encloser」というノード(source of synthesis)が実在する場合にのみ働き、かつ、クエリ名と一致する実在のノードが他にツリー上に存在しない場合に限られます。
つまり、過去に使われていたセレクタの個別レコードをすべて削除済みであれば、それらのセレクタ名はツリー上に実在するノードとならず、ワイルドカードによる合成(p=を空にした失効扱い)が働き、一括して否定できます。
一方で、意図的に残している実在のセレクタレコードがある場合、そのノード自体がclosest encloserとなるため、ワイルドカードは適用されず、そのレコードの内容がそのまま検証に使われます。
このため、本設定は、過去のセレクタレコードを削除済みであることを前提とした対策である点にご注意ください。

3. MX (Mail Exchange) の設定

MXレコードは、ドメインに対するメールの配送先を指定します。
メールを送受信しないドメインの場合、MXレコードを設定することで、そのドメイン宛のすべてのメールが受け取られないようにすることができます。

RFC7505では、以下のようにNull MXという定義が記載されています。


MX 0 .

4. DMARCでのポリシーとRUA/RUFレポートの受信設定

DMARCでp=rejectに設定し、RUA/RUFレポートの受信設定を行います。
この設定をしないと、メールを配信しないドメインを騙られて、メールを送信されているかどうかの確認ができません。

PowerDMARCでのメールを送信しないドメインの登録

PowerDMARCでは、メールを送信しないドメインについては、無料で登録することが可能です。
そして、RUAレポートやRUFレポートを受信し、万が一、なりすましメールが出された場合には、レポーティングしたり、アラートを出すことが可能となっています。

登録のプロセス

メールを送信しないドメインについては、以下の手順で無料登録が可能です。
なお、DKIMのワイルドカードレコード(セクション2参照)は、過去のセレクタを明示的に否定するための追加的な防御設定として、別途設定することを推奨します。

  1. TXTレコードのSPFで、-allの指定だけにします。
  2. MXレコードを削除するか、Null MXの設定にします。
  3. PowerDMARCでドメインを登録します。もちろんRUA/RUFレポートの受信先をPowerDMARCにするのをお忘れなく。SPFレコードとMXレコードをPowerDMARCは確認して、上述の設定がしてあれば自動で非課金扱いにします。
  4. PowerDMARCのポータルで、登録したドメインが非課金の非アクティブドメインとして認識されていることを確認します。 非アクティブドメイン