ネットサービス

使用していないドメインを勝手に名乗ってメールを送信されるのを防ぐためのDNS設定まとめ


メールを送る際、「送信元」欄にはどんな内容でも記入することが可能なため、簡単に他人になりすますことができます。誰かが自分の所有しているドメインになりすましてメールを送った時、受信者にそのメールが「なりすましメール」であることを伝えるためのDNS設定についてエンジニアのヴィヴェク・ガイト氏が解説しています。

DNS settings to avoid email spoofing and phishing for unused domain - nixCraft
https://www.cyberciti.biz/security/dns-settings-to-avoid-email-spoofing-and-phishing-for-unused-domain/


ガイト氏の解説は「メールを使用していないドメイン」を対象に、「そのドメインがメールを送信しないこと」および「もしそのドメインからメールが届いた際は悪意のある人によるなりすましメールであること」を伝えるための設定方法についてです。そのため、実際にメールを送受信しているドメインで設定を行ってしまうとメールが正常に使用できなくなってしまう点に注意が必要です。

◆1:Null MXレコードのセットアップ
DNSのMXレコードはメールを正しいサーバーに配信するためのレコードです。下記のような「host」や「dig」などのコマンドで確認できます。

host -t MX [対象のドメイン]
dig MX [対象のドメイン]
dig +short MX [対象のドメイン]


実際にガイト氏が運営している「cyberciti.biz」というドメインを対象に上記のコマンドを入力した結果は下図の通り。


MXレコードが存在しない場合にはAレコードがMXレコードの代わりとして使用されてしまうため、「メールサーバーが存在しない」ということを伝える事ができません。一方「Null MX」を設定すれば、正しく「メールサーバーが存在しない」ことを伝えられます。

Null MXを設定するには優先度「0」で「.」という内容のMXレコードを設定すればOKです。例えばガイト氏の所有する「opensourceflare.com」というドメインで設定すると下記の通りとなります。


◆2:SPFのセットアップ
SPFはSender Policy Frameworkの略称で、ドメインへのなりすましを防止するための仕組みの一つです。SPFを使うとメールの正しい送信サーバーを受信者に伝えることができ、例えば下記のように設定することで「cyberciti.biz」ドメインを使用して送信されたメールのうち「amazonses.com」および「_spf.google.com」に含まれるIPアドレスから送信されたメールのみが正しいものであるという意味になります。

cyberciti.biz descriptive text "v=spf1 include:amazonses.com include:_spf.google.com ~all"


メールを送信しないドメインではTXTレコードを下記のように設定すればOK。このドメイン名を使用して送信された全てのメールがSPFチェックに失敗するようになり、メールが不審なものであることが受信者に伝わります。

"v=spf1 -all"


ただし、SPFで確認するのはメールの実際の差出人を示した「エンベロープFrom」の正当性であり、ユーザーが一般的に目にする「差出人(from)」フィールドを確認するわけではありません。しかしエンベロープFromのなりすましを防ぐことで「スパムメールの送信元ドメインとしてなりすまされていつの間にかドメインレピュテーションが低下してしまった」というトラブルを防止することが可能です。

◆3:DKIMのセットアップ
DKIMは「そのメールがDKIMヘッダに記載されたドメインから送られてきたメールであること」および「途中でメールが改ざんされていないこと」を証明するための公開鍵暗号方式を使用した仕組みです。秘密鍵をメールサーバーに登録して全てのメールに電子署名を行い、公開鍵をDNSのTXTレコードに登録しておくことで受信者は当該メールの送信元ドメインの公開鍵を使用して電子署名を検証できます。実際のDKIMレコードの例は下記の通り。

google._domainkey.cyberciti.biz descriptive text "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlXtL1tL+0WrwdEldIO0ZED1hmaQJ9AcAA/eN3wMDUd723+MSR+vIqOrp2Bu5rKIPvm3IdADx+Av5UGmQ1UwU/TuJR+T+p5nW9bymUgJGqM8pp+Pg+YPsD4EEu+ClBwt8gExE6BYM/CK17djlrBnv9vbzUkK9IvhGr1UggUaz9N3BDCPRq/0PAhDYiwm18QN+s" "S8j8I3Iuv25oSUz20NYQ2R4PEZFN6dQcPuuwYCC0Ntjip2r/vonwv4LBFgqjEBJfyeuPlGiE+KagxtAI5s1lvIGNGw937vT5FkpmMXe0czJKrKEm0j/RiKb1fgYbjGJndX9x2uNELcqCwP2NQ06PwIDAQAB"


例えばガイト氏の所有するopensourceflare.comのようにメールを送信しないドメインでは下記の通りDKIMレコードを設定することで、そのドメイン名を使用して送信された全てのメールでDKIMチェックに失敗するようになります。

*._domainkey.opensourceflare.com.	1	IN	TXT	"v=DKIM1; p="


DKIM認証の成功はDKIMヘッダに記載されたドメインからの送信であることを保証しますが、SPFと同じく「差出人」フィールドに記載されたドメインを確認するわけではありません。そのためSPFとDKIMだけではなりすましを防げるわけではないものの、この2つの要素を使用して下記のDMARCをセットアップすることが可能です。

◆4:DMARCの設定
DMARCはSPFやDKIMで使用したドメインと「差出人」のドメインが一致しているかどうかをチェックする仕組みです。また、SPFやDKIMのチェック失敗時のメールの扱いを決めたり、チェック失敗時にメールサーバーからレポートを送信するよう依頼したりことができます。例えばopensourceflare.comの場合は下記の通り。

_dmarc.opensourceflare.com.	1	IN	TXT	"v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s;"


「p=reject」はDMARCテストに失敗したメールを「拒否」するよう指示しており、「sp=reject」はサブドメインでDMARCテストに失敗したメールについても拒否するよう指示しています。「adkim=s」および「aspf=s」ではそれぞれDKIMとSPFの検証モードを「strict」に設定しています。

上記4つの設定をGoogleドメインの画面で見ると下図のようになるとのこと。これら4つの設定を行う事で、自分のドメインから送信されたメールを全て受信サーバーで拒否することを推奨し、知らない間にドメインがスパムメールの送信元としてなりすまされるトラブルを防げるわけです。

この記事のタイトルとURLをコピーする

・関連記事
メールを正しく送信するために必要な「SPF」「DKIM」「DMARC」とは一体どんなものなのか? - GIGAZINE

詐欺師はスパムメールにわざと誤字脱字を入れることでカモを選別している - GIGAZINE

Gmailが企業やブランドのメールが本物かどうかわかる青色チェックマークを導入 - GIGAZINE

自分のメールアドレスを使ってスパムかどうか判定するSPF・DKIM・DMARCの仕組みをアニメーションで理解できる「Learn and Test DMARC」レビュー - GIGAZINE

なりすましメールからユーザーを守る「SPFレコード」の基礎知識 - GIGAZINE

メールサーバーへの接続をPOPやIMAPではなく現代風に改善しSMTPも設定不要になるプロトコル「JMAP」、高速に同期可能でスマホの通信量も減らせて効率的 - GIGAZINE

in ネットサービス, Posted by log1d_ts

You can read the machine translated English article here.