SiteKensa

Null MXとは?メールを受信しないドメインの設定値となりすまし対策

公開日 メールDNSSPFDMARC独自ドメイン
受信を担うNull MX、送信元の宣言を担うSPFの-all、認証失敗時の扱いを指示するDMARCのp=rejectが、それぞれ別の対象を守ることを示す図

結論 — Null MXは「このドメインでメールを受信しない」という宣言です

Null MXは、MXレコードの優先度に 0、ホスト名に .(ドット1つ)を指定した設定です。RFC 7505が定めています。

example.jp.  IN  MX  0 .

この設定は「このドメイン宛のメールを受け取るサーバーは存在しません」という意味を持ちます。送る側は、最初の配送の試みでその事実を知ることができます。

先に、よくある誤解を1つ解いておきます。Null MXを設定しても、第三者があなたのドメイン名を差出人(From)に書いてメールを送ることは止められません。Null MXが扱うのは受信側の話で、差出人のなりすましは別の設定で対処します。この2つは目的が違うため、片方を設定したからもう片方が要らなくなる、という関係にはありません。

この記事では、次の3つを分けて説明します。

設定 何を対象にするか 言えること
Null MX 受信 このドメイン宛のメールを受け取らないと示す
SPFの -all エンベロープの送信元、HELO 正規の送信元が存在しないと宣言する
DMARCの p=reject Fromに書かれたドメイン 認証に失敗したメールを拒否するよう受信側に求める

設定してよいドメインと、設定してはいけないドメイン

Null MXは、誤って設定すると受信を止めてしまいます。設定値を見る前に、こちらを先に確認してください。

設定してよいのは、次のすべてに当てはまる場合です

  • 問い合わせ先や転送先として、このドメインでメールを受け取っていない
  • Webサイトの問い合わせフォーム、パスワード再設定、監視の通知などから、このドメインを差出人にしてメールを送っていない
  • 外部のサービス(メール配信サービス、SaaSの通知、決済サービスなど)が、このドメインを差出人に使っていない
  • 将来的にもこのドメインでメールを使う予定がない

購入したまま使っていないドメイン、Webサイトのリダイレクト専用に持っているドメイン、商標防衛のために押さえているドメインなどが、典型的な対象です。

設定してはいけない場合

メールを送っているドメインには設定しないでください。 これはRFC 7505 §4.2が明示的に書いています。

Hence, mail systems SHOULD NOT publish a null MX record for domains that they use in RFC5321.MailFrom or RFC5322.From addresses. If a system nonetheless does so, it risks having its mail rejected. (したがってメールシステムは、RFC5321.MailFromまたはRFC5322.Fromのアドレスに使うドメインについて、Null MXレコードを公開すべきではありません。それでも公開した場合、そのメールが拒否される危険を負うことになります)

理由は、多くの受信システムが「返信先として使えないアドレスからのメール」を迷惑メールの兆候として扱うためです。差出人のドメインがメールを受け取れないと分かると、拒否される可能性があります。

見落としやすいのは、自分でメールソフトを使っていなくても送信している場合です。問い合わせフォームの自動返信、サーバーの障害通知、会員登録の確認メールなどは、いずれも送信にあたります。

受信はするが送信はしない場合

受信しているなら、Null MXは設定できません。受信用のMXレコードはそのまま残してください。

このドメインから一切メールを送っていないことが確実であれば、SPFに -all を設定できます。DMARCについては、受信したメールに返信する運用があるかどうかで判断が変わるため、別途検討してください。

MXが未設定の状態とは違います

「MXレコードを設定しなければ、メールは届かないのでは」と考えるかもしれません。実際には違います。

MXレコードが無い場合、送る側はドメインのAレコード(Webサーバーのアドレス)宛にメールを届けようとします。これはRFC 5321 §5.1が定めている動作で、暗黙のMXと呼ばれます。Webサイトを公開しているドメインでは、Aレコードが存在するため、この経路が使えてしまいます。

つまり、MXを設定していない状態は「受け取らない」ではなく「Webサーバーが受け取る先として扱われる」状態です。Null MXは、この暗黙のフォールバックを明示的に打ち消します。

SiteKensaの診断でも、この2つを分けて表示します。MXが無くAレコードがある場合は「MXレコードが無く、Webサーバー宛にメールが配送されます」という要確認の所見が出ます。Aレコードも無い場合は「MXレコードが設定されていません」という参考情報の扱いになります。

設定値と確認方法

前の節の確認が済んだ方向けに、設定値を示します。

Null MXのレコード

項目
ホスト名(名前) 空欄、または @(ドメイン本体を意味します)
種別 MX
優先度 0
値(宛先) .(ドット1つ)

管理画面によっては、値の欄にドット1つだけを入力すると弾かれることがあります。その場合は、事業者のサポートに「RFC 7505のNull MXを設定したい」と問い合わせてください。

既存のMXレコードがある場合は、すべて削除してからNull MXを追加してください。RFC 7505 §3は次のように定めています。

A domain that advertises a null MX MUST NOT advertise any other MX RR. (Null MXを公開するドメインは、他のMXリソースレコードを公開してはなりません)

digで確認する

設定後、次のコマンドで確認できます。

$ dig +short MX example.jp
0 .

0 . と表示されればNull MXです。この末尾のドットは、DNSの表記としての「ルートを示すドット」ではなく、ホスト名の部分が空であることを表しています。通常のMXレコードは 10 mail.example.jp. のように表示されるため、見比べれば区別できます。

送信元のなりすまし対策は別に必要です

ここまでで、受信についての宣言は完成しています。Null MXは、受信しないという目的に対しては単体で成立する設定です。

不足するのは、別の目的である「差出人のなりすまし対策」です。第三者が info@example.jp という差出人でメールを送ることは、あなたのDNSの設定とは無関係に可能です。これを止めるには、受信する側に「このドメインからのメールは正規のものではない」と判断させる材料を与える必要があります。

SPFの -all — 正規の送信元が存在しないと宣言する

SPFは、そのドメインからメールを送ってよいサーバーを列挙する仕組みです。送信元が1つも無いことを宣言する場合、レコードは次のようになります。

項目
ホスト名(名前) 空欄、または @
種別 TXT
v=spf1 -all

RFC 7505 §4.2も、この組み合わせに触れています。

Operators of domains that do not send mail can publish Sender Policy Framework (SPF) "-all" policies to make an explicit declaration that the domains send no mail. (メールを送らないドメインの運用者は、そのドメインがメールを送らないという明示的な宣言をするために、SPFの "-all" ポリシーを公開できます)

ただし、SPFが検査するのはエンベロープの送信元(RFC5321.MailFrom)とHELOであり、受信者がメールソフトの画面で見るFromとは別の欄です。SPFは「認証が失敗した」という結果を出しますが、その結果を受けてメールをどう扱うかまでは指示しません。

DMARCの p=reject — 認証に失敗したメールの扱いを指示する

DMARCは、Fromに書かれたドメインを対象に、認証結果をどう扱うかを受信側に伝えます。メールを送らないドメインでは、認証を通るべき正規のメールが存在しないため、最も強いポリシーを最初から指定できます。

項目
ホスト名(名前) _dmarc
種別 TXT
v=DMARC1; p=reject

通常、DMARCは p=none から始めて、レポートを見ながら段階的に強化します。これは、認証の設定漏れによって正規のメールが誤って止まることを避けるためです。メールを送らないドメインには止まって困る正規のメールが存在しないため、この段取りは必要ありません。

SiteKensaの診断も、この違いに応じて案内を変えています。メールを送っているドメインには p=none からの段階的な強化を勧め、Null MXやSPFの -all で送らないと宣言済みのドメインには p=reject を直接勧めます。

なお、p=reject は受信側への要請であり、強制ではありません。RFC 7489 §6.7は、受信側がポリシーとは別の判断でメールを扱うことを認めています。設定すれば必ず拒否されるとは限らない点にご留意ください。

レポート(rua)を受け取る場合の注意

DMARCには、認証結果の集計レポートを受け取る rua というタグがあります。これはRFC 7489 §6.3で任意(OPTIONAL)とされており、無くても保護は成立します。上に示した v=DMARC1; p=reject だけで、なりすまし対策としては完結します。

なりすましの試行を把握したい場合は rua を追加できますが、Null MXを設定したドメインでは注意が必要です。

1つ目に、そのドメイン宛のアドレスは指定できません。 Null MXを設定した時点で、そのドメインではメールを受け取れなくなっています。dmarc@example.jp のようなアドレスを書いても、レポートは届きません。

2つ目に、他のドメインのアドレスを指定する場合、受け取る側のドメインに許可の設定が必要です。 RFC 7489 §7.1が定めている仕組みで、受け取る側に次のようなTXTレコードを追加します。

example.jp._report._dmarc.受け取る側のドメイン.  IN  TXT  "v=DMARC1"

この設定が無いと、レポートを送る側はそのアドレスへの送信を許可されていないと判断し、レポートは届きません。設定したのに何も届かない、という状態になりがちなので、rua を付ける場合は必ず併せて設定してください。

診断結果の読み方

SiteKensaでは、Null MXが設定されているドメインに次のように表示します。

問題なし  [mx] このドメインはメールを受信しない設定です (Null MX)

MX・SPF・DMARCがいずれも未設定のドメインには、まとめて次の所見を出します。

要確認  メールを使わないドメインとして保護されていません
        MX     : 0 .
        TXT    : v=spf1 -all
        TXT (_dmarc) : v=DMARC1; p=reject

この所見は、3つとも設定されていない状態を拾うためのものです。どれか1つでも設定されていれば表示されません。したがって、この所見が出ていないことは「3つとも揃っている」ことを意味しません。個々の項目の結果をあわせて確認してください。

また、SPFで送らないと宣言済みのドメインでは、DKIMに関する所見を取り下げ、「DKIMの設定は不要です」と表示します。署名する対象のメールが存在しないためです。正しく閉じたドメインに、まだ直すところがあるかのように見せないための処理です。

まとめ

  • Null MXは受信についての宣言です。優先度 0、ホスト名 . を設定します
  • メールを送っているドメインには設定しないでください。RFC 7505 §4.2が、拒否される危険があると書いています
  • 差出人のなりすまし対策は別の設定です。SPFの -all とDMARCの p=reject が担います
  • rua は任意です。付ける場合は、受け取れる別ドメインのアドレスと、受け取る側での許可設定が必要です

設定後は、MXレコードの診断で確認できます。変更直後に古い値が表示される場合は、DNSが反映されないときの確認方法をご覧ください。

まずは全体を診断してみましょう

専門知識がなくても、いまの設定状況と具体的な対処方法をわかりやすく確認できます。

ドメイン設定を診断する