Zimbra Collaboration SuiteでDKIM、SPF、およびDMARCを構成する

Gmailメールサーバーにメッセージを送信しようとすると、突然「このメッセージは550-5.7.1未承諾メールである可能性があることをシステムが検出しました。 Gmailに送信されるスパムの量を減らすため、550-5.7.1このメッセージはブロックされました。」、これは、ほとんどの場合、メールサーバーでDKIM、SFP、およびDMARCが構成されていないことを意味します。 大規模なメールサーバー(Gmail、mail.ru、Yandex)では、これらのレコードの存在が必要です。 今日は、Zimbra Collaboration Suiteでそれを行う方法を紹介します。



画像







ZimbraでDKIMを構成する



DKIM(DomainKeys Identified Mail)は、デジタル署名認証に基づく電子メール認証方法です。 DKIMは、メールサービスが送信者を確認し、送信者のアドレスを置き換えて実行される不正なメール送信から手紙の受信者を保護するために必要です。



この方法では、送信メッセージのヘッダーをドメインの秘密キーで暗号化し、公開バージョンのキーをドメインのDNSレコードに追加して、誰でもアクセスできるようにします。 受信者サーバーMTAは、送信者のDNSサーバーに公開キーを要求して、受信メッセージヘッダーを解読し、要求されたソースからメッセージが実際に送信されているかどうかを確認します。



画像



DKIMはZimbra 8.0以降で利用可能です。 署名のセットアップは2つのステップで構成されます。



ステージ1:キーとセレクターの生成



既存のDKIM構成がまだないドメインにDKIMデータを追加します。



# su zimbra

$ /opt/zimbra/libexec/zmdkimkeyutil -a -d example.com









取得するもの:



DKIM Data added to LDAP for domain example.com with selector ECAC22D2-DCA2-11E6-BA30-B554729FE32A

Public signature to enter into DNS:

ECAC22D2-DCA2-11E6-BA30-B554729FE32B._domainkey IN TXT ( "v=DKIM1; k=rsa; "

"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5OCY0sX04ziF+sOHt/1kq3A7iAzAjBjb4JteaoFzu1q2uBOiQS0uyaFeY6CgSgRRbvPnq8cWLG/XMU0tM9gSGtgtWDmHOs6/+QgKp6zRmetfsyABA2Y2U+XJlVURUE5ai3KIA/njt7IGZ5yeFsdZIKmhOCAOPGCovq10xkZXHdjRwiqxbCYGXv2m3o74BcWtOLPfEvexD5PYx"

"aTWFbelJpGlDN7WdBCE+ObpLGkJ9co/1sVOcd3c9SHfPq3jcBAFm7oPX2ak7Fb7cslVK77lA2hBgMYqI2Sh+T64o6R33dU++Ej7CuImmv7PAqVUn5MjYr05t3LK9dwWM8Cm6aJ/QIDAQAA" ) ; ----- DKIM key ECAC22D2-DCA2-11E6-BA30-B554729FE32A for example.com








ドメインのDKIMデータを更新することもできます。



$ /opt/zimbra/libexec/zmdkimkeyutil -u -d example.com







ドメインのDKIMデータを削除します。



$ /opt/zimbra/libexec/zmdkimkeyutil -r -d example.com







ドメインの保存されたDKIMデータを取得します。



$ /opt/zimbra/libexec/zmdkimkeyutil -q -d example.com







2番目のステップ:DNSレコードを更新する



公開鍵は、TXTレコードとしてドメインに追加する必要があります。



$ORIGIN example.com.

ECAC22D2-DCA2-11E6-BA30-B554729FE32B._domainkey IN TXT ( "v=DKIM1; k=rsa; "

"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5OCY0sX04ziF+sOHt/1kq3A7iAzAjBjb4JteaoFzu1q2uBOiQS0uyaFeY6CgSgRRbvPnq8cWLG/XMU0tM9gSGtgtWDmHOs6/+QgKp6zRmetfsyABA2Y2U+XJlVURUE5ai3KIA/njt7IGZ5yeFsdZIKmhOCAOPGCovq10xkZXHdjRwiqxbCYGXv2m3o74BcWtOLPfEvexD5PYx"

"aTWFbelJpGlDN7WdBCE+ObpLGkJ9co/1sVOcd3c9SHfPq3jcBAFm7oPX2ak7Fb7cslVK77lA2hBgMYqI2Sh+T64o6R33dU++Ej7CuImmv7PAqVUn5MjYr05t3LK9dwWM8Cm6aJ/QIDAQAA" ) ; ----- DKIM key ECAC22D2-DCA2-11E6-BA30-B554729FE32A for example.com








DNSを更新し、コマンドの結果を確認します。



# host -t txt SELECTOR._domainkey.DOMAIN







例:



# host -t txt ECAC22D2-DCA2-11E6-BA30-B554729FE32B._domainkey.example.com ns1.example.com







キーが取得された場合、 /opt/zimbra/common/sbin/opendkim-testkey



を使用して、公開キーが秘密キーと一致することを確認します。



$ opendkim-testkey -d example.com -s ECAC22D2-DCA2-11E6-BA30-B554729FE32B -x /opt/zimbra/conf/opendkim.conf







エラーが発生した場合:



opendkim-testkey: /opt/zimbra/conf/opendkim.conf: configuration error at line 0







これは、ファイル/opt/zimbra/conf/opendkim.confが存在しないことを意味します。次のコマンドで作成できます。



$ zmprov ms `zmhostname` +zimbraServiceEnabled opendkim ./libexec/configrewrite opendkim







DKIM署名キーを取り消す必要がある場合は、TXTレコードに空の "p ="タグを設定します。



デフォルトでは、1024ビットキーが作成されます(ZCSのバージョンによって異なります)。-bオプションを使用してサイズを変更できます。



送信者ポリシーフレームワーク(SPF)



SPF(Sender Policy Framework)-SMTP経由で電子メールを送信するためのプロトコルの拡張。 SPFはRFC 7208で定義されています。SPFレコードはドメインの偽造を防ぎ、アドレスから送信されるスパムメールを防ぐことができます。 SPFは、エンベロープ送信元(SMTPエンベロープ)で使用されるアドレスに対して構成されます。







spfレコードを使用して、ドメイン所有者は、ドメインの電子メールメッセージを送信する権限を持つサーバーのリストを指定できます。 一般的に、順序は次のとおりです。



[バージョン] [メカニズム] [-all | 〜すべて| リダイレクト]

バージョンは常にspf1で、修飾子は誰がメールを送信できるかを示します。





パラメータ:





以下の例を検討してください。



例1

example.com。 IN TXT "v = spf1 ip4:62.220.58.72 a mx -all"

example.comドメインの場合、IPアドレス62.220.58.72から送信された文字を受け入れ、AおよびMXレコードで指定されたサーバーからのメッセージも受け入れます。他のサーバーからのメッセージは拒否する必要があります。



例2

example.com。 IN TXT "v = spf1リダイレクト:example.org"

example.comドメインからルールを取得します。



例3

example.com。 IN TXT "v = spf1 include:_spf.google.com -all"

Googleのsmtpサーバーからのみメールを受信します。



DMARCセットアップ



ドメインベースのメッセージ認証、レポートおよび適合性、またはDMARCは、送信者アドレスを偽るスパマーと戦うために組織のグループによって作成された技術仕様です。 これは、受信者のメールサーバーに設定されたルールと機能に基づいて、送信者のメールドメインの識別に基づいています。



したがって、メールサーバーは、メッセージが良いか悪いかを判断し、DMARCレコードに従って動作します。 DMARCのセットアップにより、ドメイン所有者は認証されていないドメインから受信したメールを処理するためのルールを作成できます。







SPFおよびDKIMレコードを作成した後、TXTレコードをDNSに追加してDMARCチェックを構成する必要があります(SPFと同様)。 パラメータは次のとおりです。







詳細については、 DMARC Tag Registryを参照してください。



ドメインのルール(spfとdkimのチェックが失敗した場合の受信者サーバーに対する処理)は、次の3つのいずれかです。





レポートを受信する場合は、ruaタグでメールアドレスを指定することを忘れないでください。



_dmarc.example.com IN TXT "v=DMARC1; p=none; rua=mailto:postmaster@example.com"







DNSレコードを追加した結果



次に、example.comゾーンのdnsエントリの例を示します。



$ORIGIN .

$TTL 3600

example.com IN SOA example.com. hostmaster.example.com. (

2017011011 ; serial

3600 ; refresh [1h]

600; retry [10m]

1209600 ; expire [14d]

3600 ; min TTL [1h]

)

NS ns1.example.com.

MX 10 ns1.example.com.

A 62.220.58.71

IN TXT "v=spf1 a mx ip4:62.220.58.71 ~all"



$ORIGIN example.com.

ECAC22D2-DCA2-11E6-BA30-B554729FE32B._domainkey IN TXT ( "v=DKIM1; k=rsa; "

"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs5OCY0sX04ziF+sOHt/1kq3A7iAzAjBjb4JteaoFzu1q2uBOiQS0uyaFeY6CgSgRRbvPnq8cWLG/XMU0tM9gSGtgtWDmHOs6/+QgKp6zRmetfsyABA2Y2U+XJlVURUE5ai3KIA/njt7IGZ5yeFsdZIKmhOCAOPGCovq10xkZXHdjRwiqxbCYGXv2m3o74BcWtOLPfEvexD5PYx"

"aTWFbelJpGlDN7WdBCE+ObpLGkJ9co/1sVOcd3c9SHfPq3jcBAFm7oPX2ak7Fb7cslVK77lA2hBgMYqI2Sh+T64o6R33dU++Ej7CuImmv7PAqVUn5MjYr05t3LK9dwWM8Cm6aJ/QIDAQAB" ) ; ----- DKIM key ECAC22D2-DCA2-11E6-BA30-B554729FE32B for example.com

_dmarc IN TXT "v=DMARC1; p=none; rua=mailto:postmaster@example.com"

ns1 IN A 62.220.58.71

www 86400 IN CNAME example.com.








Zextras Suiteに関連するすべての質問については、katerina @ zextras.comにメールで会社の代表者「Zextras」Katerina Triandafilidiに連絡することができます。



All Articles