Gmailのクライアントサイド暗号化(CSE)により、送信者と受信者の間だけでメール内容が保護され、サーバ上でも解読不能になるエンドツーエンド暗号化の概念図

SPFレコードをnslookup、dig、PowerShellで確認する方法

2025年4月4日
著者: Ahona Rudra
翻訳: 古川 綾乃

この記事はPowerDMARCのブログ記事 How to Check SPF Records Using nslookup, dig or PowerShell?の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。


SPFレコードを定期的に確認することは、第三者によるドメインの不正利用や悪意あるメール送信を防ぐために重要です。
nslookupやdigを使用すれば、SPFレコードを簡単に確認できます。
ここでは、各オペレーティングシステムごとの確認方法を説明します。

重要なポイント

  1. SPFレコードを定期的に確認することは、ドメインの不正利用やフィッシング攻撃を防ぐうえで重要です。
  2. SPFレコードとは、特定のドメインからのメール送信を許可する送信元IPアドレスを定義したDNSのTXTレコードです。
  3. SPFを正しく設定することで、メールの到達率が向上し、スパムとして判定される可能性を低減できます。
  4. DMARCに準拠することで、メール認証が強化され、SPFやDKIMの検証に失敗したメールを適切に処理できるようになります。
  5. nslookupを使えば、オペレーティングシステムを問わずSPFレコードの確認や検証を簡単に行えます。

SPFレコードとは?

SPFレコードとは、特定のドメインからメール送信を行うことを許可された送信元IPアドレスを定義する、DNS上のTXTレコードです。
ドメイン所有者はDNSにSPF用のレコードを設定することで、許可された送信元を明示できます。

SPFは、SMTPが標準ではメールヘッダーの「From」アドレスを認証しない点を悪用した、なりすましメールを防ぐために導入されました。
これにより、攻撃者が送信者を偽装して受信者を騙し、機密情報を取得するリスクを軽減できます。

SPFレコードはどのように機能するのか?

受信側のメールサーバは、メールのエンベロープFrom(Return-Path)に含まれるドメインを基にSPFレコードを参照します。
その際、受信側メールサーバは送信元ドメインのDNSサーバに問い合わせを行い、SPFが設定されたTXTレコードを取得します。
SPFを利用することで、企業は自社ドメインからメール送信を許可する正規の送信元サーバを明確に定義できます。

nslookupでSPFレコードの確認に失敗する場合、送信元IPアドレスがSPFレコードに含まれていない可能性があります。
このような場合、受信側のポリシーに応じて、メールは拒否されたり、スパムとして処理されたりします。

なぜSPFレコードを確認すべきなのか?

SPFレコードはDNSに保存されており、メール認証やドメイン管理において重要な役割を果たします。

フィッシング攻撃対策
メール認証の仕組みを導入していない場合、攻撃者にドメインを悪用されるリスクが高まります。
攻撃者は、あなたや従業員になりすまして偽のメールを送信し、機密情報を要求したり、関係者に誤った情報を拡散したりする可能性があります。
認証プロトコルの導入と、nslookupを用いた定期的なSPFレコードの確認により、こうしたなりすまし攻撃の実行を困難にできます。
メールの配信成功率向上
SPFを適切に設定することで、バウンス率の低下や、スパムフォルダに振り分けられるリスクの軽減が期待できます。
SPFが未設定、または不適切な場合、メールの到達率が下がり、本来届けたい相手の受信箱に届かなくなる可能性があります。
その結果、顧客や見込み客、株主、メディア、従業員との重要なコミュニケーションに悪影響を及ぼすことがあります。
DMARC準拠
DMARCは、SPFおよびDKIMの結果をもとにメールの取り扱い方針を定める、追加のメール認証プロトコルです。
DMARCでは、SPFやDKIMの検証に失敗したメールを「隔離」「拒否」「通常配信」のいずれで処理するかをポリシーとして定義します。
DMARCレコードを定期的に確認することで、設定に不備がないか、改善が必要かどうかを分析できます。
DNSにDMARCレコードを公開すると、ドメインなりすましの試行状況に関する日次レポートを受信できるようになります。

nslookup、dig、PowerShellとは?

nslookup、dig、PowerShellを使ってSPFレコードを確認する方法を説明する前に、まずこれらのツールの概要を説明します。
nslookup、dig、そしてPowerShellのResolve-DnsNameコマンドは、ホスト名に対応するIPアドレスやDNSレコードを確認するためのツールです。
これらのツールを使えば、正引きだけでなく、既知のIPアドレスからホスト名を調べる逆引きDNSルックアップも実行できます。

nslookupは、サーバ接続に関するトラブルシューティングや、DNS設定の確認などに広く利用されています。
例えば、正規ドメインに酷似した偽ドメインが設定されていないかを確認することで、フィッシング対策の一助とすることができます。
たとえば、「amazon.com」に似せた「amaz0n.com」のように、アルファベットの「O」を数字の「0」に置き換えた偽ドメインが使われることがあります。

受信者はこうしたわずかな違いに気づかず、正規の送信元からのメールだと誤認してしまう可能性があります。
また、DNSの応答が不正に書き換えられる「DNSキャッシュポイズニング」の有無を確認する際にも、nslookupや digは有用です。

nslookup、dig、PowerShellを使用したSPFレコードの確認方法

SPFレコードはDNSにTXTレコードとして設定されます。
以下では、Windows、Linux、macOS環境で nslookup、dig、PowerShell(Resolve-DnsName)を使用してSPFレコードを確認する手順を示します。

Windows
  1. スタートメニューからコマンドプロンプトを開きます。
  2. 検索ボックス」に「cmd」と入力し、「開く」をクリックします。
  3. nslookup -q=txt example.com」と入力してEnterキーを押すと、目的のSPFレコードが表示されます。
  4. SPFレコードは「Non-authoritative answer」の項目内に表示されます。
Linux
  1. 「[Super] → terminal → [Enter]」で端末を開きます。
  2. dig example.com txt」と入力し、Enterキーを押すと、example.comのSPFレコードが取得できます。
  3. SPFレコードは「ANSWER SECTION」に表示されます。
macOS
  1. command + space」でターミナルを開きます。
  2. dig example.com txt」と入力し、Enterキーを押すと、SPFレコードが表示されます。
  3. SPFレコードは、「ANSWER SECTION」という見出しの下に表示されます。
PowerShell
  1. スタートメニューの検索バーに「PowerShell」と入力し、「Windows PowerShell」を開きます。
  2. Resolve-DnsName -Type TXT example.com」と入力してEnterキーを押すと、目的のSPFレコードが表示されます。