2026年8月28日
2026年8月28日
DKIMを設定してメールの正当性を証明する方法
はじめに
この記事では、ドメインkeys identification message (DKIM) を設定する方法について説明します。メールが正当なものであることを証明するために、サーバーからの送信元を確認することができます。これにより、不正なメールや詐欺メールの流入を防ぐことができます。
症状・背景
DKIMを設定すべき主な場面は以下の通りです:
- あなたのウェブサイトから大量にメールが送信されている。
- 受信者があなたのメールをスパムとして誤認識している。
- メールが受信ボックスのフィルターで漏れている。
手順・設定方法
ステップ1: DKIMキー生成
# DKIMキーを生成します。2048ビットのRSA鍵を使用することが推奨されています。
mkdir -p /etc/dkimkeys/ && cd /etc/dkimkeys/
openssl genrsa -out private.key 2048
ステップ2: DNSレコード追加
# DKIMキーをDNSに登録します。以下は例です。
echo "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2Y7pUd5Xz5FJx6LZm/..."> dkim.txt
# DNS管理画面で以下を追加します。
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023091501 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
@ IN A 1.2.3.4
example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2Y7pUd5Xz5FJx6LZm/..."
ステップ3: メールサーバー設定
# PostfixとDKIMを組み合わせる場合、以下のように設定します。
echo "smtpd_milters = inet:localhost:8891" >> /etc/postfix/main.cf
echo "non_smtpd_milters = $smtpd_milters" >> /etc/postfix/main.cf
# Milterの起動を追加します。
echo "milter_default_action = accept" >> /etc/mail/local.conf
echo "milter_protocol = 2" >> /etc/mail/local.conf
# PostfixとDKIMの整合性を確認するために、以下を実行します。
postmap -f /etc/dkimkeys/dkim.txt /etc/postfix/mailer_map
ステップ4: 実践/トラブルシュート/監視
# メールが正しく送信されていることを確認します。
echo "This is a test email" | mail -s "Test Subject" user@example.com
# Postfixのログをチェックします。
tail -f /var/log/mail.log
注意事項
- DKIMキー生成は最初の一回のみが必要です。その後は定期的に更新することをお勧めします。
- DNSレコードの更新には時間がかかることがありますので、変更後は数時間待ってから確認してください。
- メールサーバーの設定を変更した場合は、一時的にメールが送信されない場合があります。
まとめ
1. DKIMキー生成: DKIMキーを生成し、適切な長さの鍵を使用します。
2. DNSレコード追加: DNSにDKIMキーを登録します。
3. メールサーバー設定: メールサーバーとDKIMの整合性を確認します。
4. 実践/トラブルシュート/監視: メールが正しく送信されていることを確認します。
関連記事: