Rspamd DKIM署名ガイド
ナビゲーションに移動
検索に移動
DKIM署名:設定ガイド完全版
DKIM(DomainKeys Identified Mail)署名により、送信メールを暗号的に署名し、そのメールが自社ドメインから送信されたものであり、改ざんされていないことを証明できます。 このチュートリアルでは、Rspamd を使用した DKIM 署名の導入手順を段階的に説明します。
DKIM って?
DKIMは公開鍵暗号を用いて送信メールにデジタル署名を追加します
- 秘密鍵:メッセージ署名用にメールサーバーで保持
- 公開鍵:検証用にDNSで公開
- セレクター:ドメインごとに複数の鍵を許可
DKIMは以下の点で役立ちます
- メールの認証と配信可能性の向上
- なりすましの防止
- ドメインの信頼性構築
- セキュリティコンプライアンス要件の達成
基本設定
Step 1: DKIM 鍵の生成
ドメインについて DKIM 鍵ペアを生成します
# Generate keys for your main domain sudo mkdir -p /etc/rspamd/dkim cd /etc/rspamd/dkim # Generate a 2048-bit RSA key (recommended) rspamadm dkim_keygen -s mail -d example.com -k mail.key # This creates: # - mail.key (private key) # - mail.txt (DNS record to publish)
だいたいこんな感じで出力が出ます
# DNS record to publish: mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..." # Private key written to mail.key
Step 2: DKIM 署名の設定
DKIM署名設定を作成します:
# /etc/rspamd/local.d/dkim_signing.conf
# Enable DKIM signing
enabled = true;
# Default signing configuration
domain {
example.com {
selector = "mail";
path = "/etc/rspamd/dkim/mail.key";
}
}
# Sign outbound mail only
sign_authenticated = true;
sign_local = true;
sign_inbound = false;
# Default settings
use_esld = true;
check_pubkey = true;
Step 3: ファイルのパーミッションを確認
秘密キーの保護
# Set proper ownership and permissions sudo chown -R _rspamd:_rspamd /etc/rspamd/dkim/ sudo chmod 600 /etc/rspamd/dkim/*.key sudo chmod 644 /etc/rspamd/dkim/*.txt
Step 4: DNSレコードを公開する
生成された .txt ファイルからDNSレコードを追加します:
; Add this to your DNS zone mail._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4f5wg5l2hKdVBqpxdqTqDPbaohNcGI94vs9lxjzHZl9j7u2B..."
Step 5: テストと再起動
# Test configuration sudo rspamadm configtest # Restart Rspamd sudo systemctl restart rspamd # Test DKIM signing echo "Test message" | rspamc -d example.com -f test@example.com
高度な設定
複数ドメインの設定
複数のドメインに対する署名設定を構成します:
# /etc/rspamd/local.d/dkim_signing.conf
enabled = true;
# Multiple domain configuration
domain {
example.com {
selector = "mail";
path = "/etc/rspamd/dkim/example.com/mail.key";
}
subdomain.example.com {
selector = "sub";
path = "/etc/rspamd/dkim/subdomain.example.com/sub.key";
}
anotherdomain.org {
selector = "rspamd";
path = "/etc/rspamd/dkim/anotherdomain.org/rspamd.key";
}
}
# Sign authenticated and local mail
sign_authenticated = true;
sign_local = true;各ドメインのキーを生成する:
# Create directory structure
sudo mkdir -p /etc/rspamd/dkim/{example.com,subdomain.example.com,anotherdomain.org}
# Generate keys for each domain
rspamadm dkim_keygen -s mail -d example.com -k /etc/rspamd/dkim/example.com/mail.key
rspamadm dkim_keygen -s sub -d subdomain.example.com -k /etc/rspamd/dkim/subdomain.example.com/sub.key
rspamadm dkim_keygen -s rspamd -d anotherdomain.org -k /etc/rspamd/dkim/anotherdomain.org/rspamd.key