本サイトは広告(アフィリエイトリンク・Google AdSense)を含みます。

解説

メールを使っていないドメインに「送信しない」と宣言する設定

使っていない旧ドメインやキャンペーン用ドメインは、SPF や DMARC がないと、なりすましメールの差出人に使われます。v=spf1 -all、DMARC の p=reject、Null MX、DKIM の空鍵の4つのレコードで、送信も受信もしないことを宣言する方法を説明します。

使っていないドメインが狙われる理由

会社が持っているドメインは、メインの1つだけとは限りません。社名変更の前の旧ドメイン、終わったキャンペーンのサイト用ドメイン、商品名で取ったドメイン、念のため押さえた .jp と .co.jp の片方。Web サイトは閉じたが、更新料だけ払い続けているドメインは、多くの会社にあります。

こうしたドメインは、メールを送っていないので、SPF も DMARC も設定されていないことがほとんどです。受信側から見ると、「このドメインのメールの正しい送信元が宣言されていない」状態で、誰がそのドメインを名乗って送っても、偽物だと判定する手がかりがありません。

攻撃者がなりすましに使うのは、こうした守りのないドメインです。メインのドメインで DMARC を p=reject にしていても、旧社名のドメインから「請求書の振込先が変わりました」というメールが届けば、昔からの取引先は信じるかもしれません。旧社名を覚えている相手ほど、疑いません。

対策は、DNS にレコードを4つ足すだけです。メールを使わないドメインなら、正規のメールが届かなくなる心配がないので、最初から一番厳しい設定にできます。

設定する4つのレコード

example-old.jp というドメインを例にします。

1. SPF: 送信を許すサーバーはない

example-old.jp.  TXT  "v=spf1 -all"

SPF は送信を許すサーバーを列挙する仕組みです。何も列挙せずに -all だけを書くと、「このドメインからメールを送ってよいサーバーは1台もない」という意味になります。

2. DMARC: 認証に失敗したら拒否

_dmarc.example-old.jp.  TXT  "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s"

p=reject は、SPF と DKIM の認証に失敗したメールを受信側に拒否させる指定です。SPF で送信元を1台も許していないので、このドメインを名乗るメールはすべて失敗し、拒否されます。

sp=reject はサブドメイン(info.example-old.jp など)に対する指定です。省略しても p の値が使われますが、明示しておくと意図が読み取りやすくなります。adkim=s と aspf=s は、ドメインの一致を厳格に判定する指定で、使わないドメインなら付けておいて困ることはありません。

なりすましの状況を知りたい場合は、rua=mailto:... でレポートの送り先を加えます。送り先が別のドメインのアドレスの場合、受け取る側のドメインでレポートの受け取りを許可するレコードが必要になります。レポートを読む予定がなければ、付けなくても防御の効果は変わりません。

3. Null MX: メールを受け取らない

example-old.jp.  MX  0 .

優先度 0、ホスト名がドット1つの MX レコードは、Null MX(RFC 7505)と呼ばれ、「このドメインはメールを受け取らない」という宣言です。送信側のサーバーは、このドメイン宛てのメールを再送を繰り返さずにすぐ不達として扱います。

これが必要な理由は2つあります。MX がないと、送信側は A レコードのサーバーにメールを届けようとするため、Web サーバーに不要な接続が来ます。また、受信側のサーバーの中には、差出人のドメインがメールを受け取れるかを確かめ、受け取れないドメインからのメールを拒否するものがあり、Null MX はその判定にも使われます。

Null MX を置くときは、他の MX レコードを全部消します。Null MX と通常の MX を同時に置いてはいけません。

4. DKIM: 空の公開鍵

*._domainkey.example-old.jp.  TXT  "v=DKIM1; p="

DKIM の公開鍵を空にしたレコードは、「この鍵は失効している」という意味になります。どのセレクタ名を名乗った署名も検証に失敗します。SPF と DMARC だけで防御としては成立していますが、DKIM の署名を偽装した送り方にも、受信側が迷わず失敗と判定できるようにするためのものです。

DNS のワイルドカードは、同じ名前のレコードが別にあるときには使われません。このドメインで過去にメールサービスを使っていて、セレクタのレコード(google._domainkey など)が残っていると、そのセレクタだけは古い鍵で検証できてしまいます。先にそれを消します。

設定する前に確かめること

「使っていないはず」のドメインが、実は何かに使われていることがあります。設定前に次の点を確認します。

  • 現在の MX レコードの有無と、その先のメールボックスに最近のメールが届いていないか
  • 複合機、Web サイトの問い合わせフォーム、予約システムなどの差出人に、そのドメインが使われていないか
  • 社員がそのドメインのメールアドレスを、外部サービスのログインIDとして使っていないか

最後の点は見落としやすい部分です。旧ドメインのアドレスで登録したサービスがあると、受信を止めた後はパスワードの再設定メールが受け取れなくなります。受信を止める前に、ログインIDを今のアドレスに変えておきます。

確認には、DNSレコード確認で現在の MX、SPF、DMARC のレコードを見ます。

ドメインを手放すときの注意

使わないなら更新をやめてしまえばよい、と考えるかもしれません。ただ、期限切れのドメインは、一定の期間が過ぎると誰でも取得できます。第三者が取得すれば、そのドメインでメールを受け取れるようになり、旧ドメインのアドレスで登録されたままの外部サービスのパスワード再設定メールを受け取られます。取引先のアドレス帳に残っている旧アドレス宛てのメールも、その人に届きます。

旧社名のドメインは、取引先からのメールが途絶え、旧アドレスで登録したサービスが残っていないと確認できるまでは、更新を続けて上の4つのレコードを置いておく方が安全です。会社の名前が入ったドメインは、何年たっても手放さない会社も少なくありません。

Web サイトもない場合

ドメインで Web サイトも公開していない場合、A レコードは置かなくても構いません。旧サイトの URL から新しいサイトへ転送したい場合は、A レコードを転送用のサーバーに向け、HTTPS で転送します。メールのレコードと Web のレコードは独立しているので、上の4つは Web サイトの有無と関係なく置けます。

メインのドメインのサブドメイン

キャンペーン用に campaign.example.co.jp のようなサブドメインを使っていた場合、メインのドメインの DMARC が p=reject なら、サブドメインにもその方針が適用されます(sp で別の値を指定していない限り)。一方 SPF はサブドメインに引き継がれないので、メールを送らないサブドメインには、それぞれ v=spf1 -all を置く方が確実です。

メインのドメインの SPF、DKIM、DMARC の設定方法は、SPF・DKIM・DMARCの設定方法で扱っています。

確認に使えるツール

最終更新: 2026-11-02 / 監修: 飛田 宏紀(情報処理安全確保支援士(登録セキスペ))