
Ich versuche, die beste Vorgehensweise für die Implementierung von DKIM auf einem einzelnen EC2 herauszufinden, das über mehrere elastische IPS verfügen wird.
# /etc/opendkim.conf
...
Mode sv
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
SignatureAlgorithm rsa-sha256
...
# /etc/opendkim/KeyTable
default._domainkey.example.com example.com:hp-hv-1:/etc/opendkim/keys/default.private
default._domainkey.example.com example.com:hp-hv-2:/etc/opendkim/keys/default.private
# /etc/opendkim/SigningTable
*@example.com default._domainkey.example.com
Dann habe ich zwei DNS-Einträge:
hp-hv-1._domainkey.example.com TXT "v=DKIM1;k=rsa;p=default.txt_key_goes_here"
hp-hv-2._domainkey.example.com TXT "v=DKIM1;k=rsa;p=default.txt_key_goes_here"
Für beide Postfix-Instanzen auf derselben EC2-Instanz gilt jeweils der folgende $myhostname:
# postfixmulti instance #1
myhostname = hp-hv-1
# postfixmulti instance #2
myhostname = hp-hv-2
Beide Postfix-Instanzen befinden sich auf derselben EC2-Instanz, sodass sie beide dasselbe private/öffentliche Schlüsselpaar default.private/default.txt verwenden. Es ist also nicht nötig, weitere Zeilen zu KeyTable und SigningTable hinzuzufügen. Soweit ich das beurteilen kann, muss ich nur dann zusätzliche Zeilen zu KeyTable und SigningTable hinzufügen, wenn ich mehrere Domänen implementieren möchte (was ich nicht tue).
Aber wenn ich meine DKIM-Einstellungen teste, erhalte ich immer die Antwort „pass: neutral“, dass die E-Mails nicht signiert seien. Das stimmt aber nicht. Ich kann es in der Protokolldatei sehen:
# snippet from /var/log/maillog
Sep 25 15:15:31 service-a-4 opendkim[27420]: 5B4A3625F0: DKIM-Signature field added (s=hp-hv-1, d=example.com)
Was vermisse ich?
Versionen:
CentOS 6.5
Postfix v2.6.6
Opendkim v2.9
Antwort1
Ok, ich war offensichtlich verwirrt, ich dachte immer, dass "s" im DKIM-Signaturfeld $myhostname aus der Postfix-Konfiguration identifizieren sollte, aber eigentlich tut es das nicht. Nachdem ich mehr darüber gelesen habeDKIM-Schlüsselrotation, mir ist es schließlich klar geworden, dass das „s“ einfach der zu verwendende Selektor aus KeyTable, SigningTable und DNS ist.
Überprüfen Sie dies:
# /etc/opendkim/KeyTable
# Format: selector(1) domain:selector(2):/path/to/key
# selector(1) is used in the /etc/opendkim/SigningTable
# selector(2) is built into the DKIM signature for every email sent, which is used to lookup the DNS TXT entry: mail-1_r-1._domainkey.example.com
mail-1_r-1._domainkey.example.com example.com:mail-1_r-1:/etc/opendkim/keys/mail-1_r-1.private
Und wenn ich jetzt die Schlüssel rotieren möchte, würde ich Folgendes tun:
# /etc/opendkim/KeyTable
# Generate new private/public key pair, and rename accordingly
mail-1_r-1._domainkey.example.com example.com:mail-1_r-1:/etc/opendkim/keys/mail-1_r-1.private
mail-1_r-2._domainkey.example.com example.com:mail-1_r-2:/etc/opendkim/keys/mail-1_r-2.private
Dann im Signiertisch:
# /etc/opendkim/SigningTable
*@shouttag.com mail_r-1._domainkey.example.com
*@shouttag.com mail_r-2._domainkey.example.com
Dann haben Sie für DNS-Einträge Folgendes
mail_r-1.domainkey.example.com "v=DKIM1;k=rsa;p=mail_r-1.txt_key_goes_here"
mail_r-2.domainkey.example.com "v=DKIM1;k=rsa;p=mail_r-2.txt_key_goes_here"
Diese DNS-Einträge werden verwendet, um zu bestätigen, dass die E-Mail tatsächlich von Ihrer Domain gesendet wurde (daher Domain Key Identified Mail). Nach etwa 7 Tagen können Sie dann mail_r-1.domainkey.example.com entfernen.