0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SPF, DMARCは何を設定すればいいのかという問題

Last updated at Posted at 2024-06-18

おさらい 〜 メールのポリシーについて 〜

SPFは,メールの送信元IPアドレスを検証する仕組みです。
しかし,SPFはEnvelopeFromのみを確認するため,本文のFromヘッダーがなりすましであっても検知できませんでした。
この問題を解決するため,DKIMが提案されました。DKIMは本文の改ざんを検知できますが,Fromヘッダーのなりすましは防げません。
そこで,SPFとDKIMの検証結果に基づいてポリシーを決められるDMARCが導入されました。

DMARCには以下のポリシーが設定できます。

p=none: 何もしない
p=quarantine: なりすましメールを隔離
p=reject: なりすましメールを拒否

さらに,DMARCではFromヘッダーとEnvelopeFromのアラインメントもチェックできます。

adkim=s: DKIMでFromとEnvelopeFromが完全に一致していること
adkim=r: DKIMでFromの一部とEnvelopeFromが一致していること
aspf=r: SPFでEnvelopeFromが有効であること

DMARCはあくまで送信ドメインの方針を示すものであり,受信側はその方針に従う義務はありませんので,メール受信時の判定が非常に厳格になっています。




ということを,様々なWebサイトで,もっとくやしく書いてあるのですが...

何を設定すればメールは届くのかって話はあんまり書かれていない...

hoge.comを例に何をどう指定するのかを書く

SPFレコードを設定する

まずは,どこから送信することを許可するかを書く。

_spf.hoge.com descriptive text "v=spf1 +ip4:xxx.xxx.xxx.xxx/32 +ip4:yyy.yyy.yyy.yyy/32 ~all"

Gmailから送信する場合

_spf.google.com descriptive text "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"

SPFレコードを設定する

hoge.com TXT "v=spf1 include:_spf.hoge.com include:_spf.google.com ~all"

-allでも良いのですが,SoftFailを採用するのは,レコードにリストが正しくない場合もあるでしょうから,まずは~allにしておくべきだという考えです。

SPFはメールの送信元の認証に役立ちますが,それ自体ではFromヘッダーのなりすましを防ぐことはできません。
DKIMは電子メールが配信経路で改ざんされていないことを確認するため,メールの完全性を提供します。

DKIMを設定する

GmailやAmazonSESなどを利用している場合はメール送信サービスから作るので割愛。
自前のサーバーであればopendkim入れてopendkim.conf設定する。

pkg install opendkim # pkgが何かって?FreeBSD使え
opendkim-genkey -D /usr/local/etc/mail/dkim -d hoge.com -s selector1
chown opendkim:mail /usr/local/etc/mail/dkim/*
chmod u=rw,go=r /usr/local/etc/mail/dkim/*

/usr/local/etc/mail/opendkim.confと/usr/local/etc/postfix/main.cfにOpenDKIMとのマッピングを追加します。(postfix以外は知らない)

service opendkim start
service postfix restart

DKIMを設定する

selector1._domainkey.hoge.com TXT "v=DKIM1; k=rsa; p=[公開鍵]"

DMARCを設定する

DMARCはこれら2つの結果を組み合わせたものとして,送信者ポリシーの遵守を要求します。
DMARCは送信側が自身のポリシーを公開するただの方法であり,受信側がそのポリシーに従わなければならないわけではありません。
多くの大手メールプロバイダーはDMARCを尊重しており,これはドメイン所有者にとって有益な追加の防御措置となります。

_dmarc.hoge.com TXT "v=DMARC1; p=none; rua=mailto:dmarc_rua@hoge.com; ruf=mailto:dmarc_ruf@hoge.com"

初期段階ではレポートモードにして,DMARC違反メールに対して具体的なアクションを行わず,代わりにDMARC違反レポートを収集を行い,DMARCのプロトコルにどの程度準拠しているのか,どんな種類のメールが違反しているのかを理解して,SPFやDKIMの設定を調整をする。
調整後に隔離か拒否の設定を行う。




おわり

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?