メールサーバーを構築したら必ず設定すべきなのがSPF・DKIM・DMARCです。この3つを設定することで、自分のサーバーから送るメールがスパム扱いされにくくなります。
SPF・DKIM・DMARCとは?
| 技術 | 役割 |
|---|---|
| SPF | 送信元IPを認証(なりすまし防止) |
| DKIM | メールに電子署名を付ける(改ざん防止) |
| DMARC | SPF・DKIM失敗時の処理ポリシーを定義 |
SPFの設定
DNSのTXTレコードに以下を追加します。
v=spf1 ip4:あなたのサーバーIP ~all
DKIMの設定(OpenDKIM使用)
sudo apt install -y opendkim opendkim-tools
sudo opendkim-genkey -t -s mail -d your-domain.com
生成されたmail.txtの内容をDNSのTXTレコード(mail._domainkey)に設定します。
DMARCの設定
DNSの_dmarc TXTレコードに追加します。
v=DMARC1; p=quarantine; rua=mailto:admin@your-domain.com
まとめ
- SPFは送信元IPの認証、DKIMは署名による改ざん検知、DMARCはポリシー管理を担う
- 3つとも設定することでメールの信頼性が大幅に向上する
- すべてDNSのTXTレコードで設定する
各技術の詳細解説
SPF(Sender Policy Framework)
SPFはメールの送信元IPアドレスを認証する仕組みです。ドメインのDNSにそのドメインからメールを送信してよいIPアドレスを列挙したTXTレコードを追加します。受信側のメールサーバーがDNSを照会してメールの送信元IPがSPFレコードに含まれているか確認します。
SPFレコードの末尾の~allはソフトフェイル(SPF失敗でも拒否しない・スパム扱いの可能性あり)、-allはハードフェイル(SPF失敗で拒否)を意味します。最初は~allで様子を見て問題なければ-allに変更するのが安全です。
DKIM(DomainKeys Identified Mail)
DKIMはメールの送信時に秘密鍵で電子署名を付け、受信者が公開鍵(DNSのTXTレコードに公開)で署名を検証することでメールの改ざんを検出する仕組みです。OpenDKIMが生成する鍵ペアのうち、秘密鍵はメールサーバーに保管し、公開鍵のみDNSに登録します。
DMARC(Domain-based Message Authentication Reporting and Conformance)
DMARCはSPFとDKIMの認証結果に基づいて、認証失敗メールの扱いをポリシーとして定義し、かつ認証失敗の集計レポートを受け取る仕組みです。p=noneはレポートのみ収集・処理なし、p=quarantineは迷惑メールフォルダに振り分け、p=rejectは受信拒否を意味します。
設定後の確認方法
DNS設定後は以下の方法で確認できます。SPFはdig TXT your-domain.comで設定内容を確認します。DKIMはdig TXT mail._domainkey.your-domain.comで公開鍵が返ってくることを確認します。実際の認証状態はGmailなどに送信したメールの「メッセージのソースを表示」でAuthentication-Resultsヘッダーを確認するのが最も簡単です。
まとめ
- SPF・DKIM・DMARCの3つはメールサーバー構築時に必ずセットで設定する
- SPFは送信元IPの認証、DKIMは電子署名による改ざん検知、DMARCは認証失敗時のポリシー定義
- SPFの
-all(ハードフェイル)は設定が確認できてから変更するのが安全 - 設定後はGmailへのテスト送信でAuthentication-Resultsヘッダーを確認する
- 3つすべて設定することでメールの到達率とドメイン信頼性が大幅に向上する



コメント