OpenDKIM auf MTA signiert keine E-Mails von Remote-Mailservern

OpenDKIM auf MTA signiert keine E-Mails von Remote-Mailservern

Ich habe eine Konfiguration, bei der ein MTA für das Senden von E-Mails von mehreren internen Servern verantwortlich ist.

Auf den internen Servern wird Postfix auf einer Reihe verschiedener Domänen ausgeführt. Sie sind alle so konfiguriert, dass sie über den MTA weitergeleitet werden. Ich versuche, DKIM so einzurichten, dass ausgehende E-Mails von allen internen Servern signiert werden.

Ich habe Opendkim installiert und der Server kann lokal generierte ausgehende E-Mails signieren.

Die MTA-Konfiguration ist wie folgt:

opendkim.conf:

Syslog          yes
Logwhy          yes

UMask           002

Canonicalization    relaxed/simple
Mode            s
SubDomains      no

AutoRestart         yes
AutoRestartRate     10/1M
Background          yes
DNSTimeout          5
SignatureAlgorithm  rsa-sha256

OversignHeaders     From

UserID             opendkim

KeyTable           refile:/etc/opendkim/key.table
SigningTable       refile:/etc/opendkim/signing.table
ExternalIgnoreList  refile:/etc/opendkim/trusted.hosts

InternalHosts       refile:/etc/opendkim/trusted.hosts
Socket    inet:8891@localhost

main.cf:

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

append_dot_mydomain = no
readme_directory = no

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mta.mydomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mta.mydomain.com localhost
relayhost =
mynetworks = 127.0.0.0/8 1.1.1.0/24 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

canonical_maps = hash:/etc/postfix/canonical

milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891

non_smtpd_milters = $smtpd_milters

Signaturtabelle:

*@domain1.com    default._domainkey.domain1.com
*@*.domain1.com    default._domainkey.domain1.com
*@domain1.co.uk    default._domainkey.domain1.co.uk
*@*.domain1.co.uk    default._domainkey.domain1.co.uk
*@domain2.co.uk    default._domainkey.domain2.co.uk
*@*.domain2.co.uk    default._domainkey.domain2.co.uk
*@domain3.co.uk    default._domainkey.domain3.co.uk
*@*.domain3.co.uk    default._domainkey.domain3.co.uk

vertrauenswürdige Hosts:

127.0.0.1
localhost
1.2.3.50
1.2.3.52
1.2.3.53
1.2.3.54
1.2.3.29
service2.domain2.co.uk
host2.domain2.co.uk

Ich habe /etc/opendkim/trusted.hosts mit einer Liste der internen Hosts konfiguriert, deren E-Mails ich signieren möchte. Ich habe auch Schlüssel hinzugefügt und sie den entsprechenden DNS-Einträgen hinzugefügt.

Ich habe das Generieren von E-Mails auf dem MTA selbst mit sendmail getestet und die E-Mails sind korrekt signiert. Beim Testen des Generierens von E-Mails von den anderen, entfernten internen Servern war jedoch keine der E-Mails signiert. Ich sehe auch nichts, was den Grund dafür angeht, obwohl ich mit tcpdump sehen kann, dass der Datenverkehr über Port 8891 auf localhost läuft.

Der Host, von dem aus ich teste, identifiziert sich gegenüber Postfix als host2.domain2.co.uk:

Dec 20 16:28:32 mta postfix/smtpd[3765]: connect from host2.domain2.co.uk[1.2.3.50]
Dec 20 16:28:32 mta postfix/smtpd[3765]: 1B4BB439BD: client=host2.domain2.co.uk[1.2.3.50]
Dec 20 16:28:32 mta postfix/cleanup[3768]: 1B4BB439BD: message-id=<[email protected]>
Dec 20 16:28:32 mta postfix/qmgr[1494]: 1B4BB439BD: from=<[email protected]>, size=109206, nrcpt=1 (queue active)
Dec 20 16:28:32 mta postfix/smtpd[3765]: disconnect from host2.domain2.co.uk[1.2.3.50]
Dec 20 16:28:32 mta postfix/smtp[3759]: 1B4BB439BD: enabling PIX workarounds: disable_esmtp delay_dotcrlf for somecompany-co-uk.mail.protection.outlook.com[104.47.0.36]:25
Dec 20 16:28:33 mta postfix/smtp[3759]: 1B4BB439BD: to=<[email protected]>, relay=somecompany-co-uk.mail.protection.outlook.com[104.47.0.36]:25, delay=1.3, delays=0.14/0/0.18/1, dsn=2.6.0, status=sent (250 2.6.0 <[email protected]> [InternalId=73138998102968, Hostname=AS8PR05MB8037.eurprd05.prod.outlook.com] 119126 bytes in 0.104, 1115.744 KB/sec Queued mail for delivery)
Dec 20 16:28:33 mta postfix/qmgr[1494]: 1B4BB439BD: removed

BEARBEITEN: Weitere Untersuchungen der Header zweier Testnachrichten (eine wurde direkt vom Host mithilfe von Sendmail gesendet, die andere von einem Host hinter dem MTA) und weitere Untersuchungen der OpenDKIM-Protokolle haben ergeben, dass DKIM beide Nachrichten anscheinend erfolgreich signiert, die DKIM-Signatur für Nachrichten von den anderen Hosts jedoch abgelehnt wird.

Dies ist das DKIM-Protokoll für zwei solcher Nachrichten (die erste war erfolgreich, die zweite schlug fehl):

Dec 22 12:06:16 mta opendkim[8130]: 65EB043A13: DKIM-Signature field added (s=default, d=domain3.co.uk)
Dec 22 12:06:52 mta opendkim[8130]: E723543AF0: DKIM-Signature field added (s=default, d=domain3.co.uk)

Bei der Betrachtung der DKIM-Ergebnisse in Gmail sind sie jedoch unterschiedlich:

ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass [email protected] header.s=default header.b=MVo7iz6A;

und zum zweiten:

ARC-Authentication-Results: i=1; mx.google.com;
       dkim=neutral (body hash did not verify) [email protected] header.s=default header.b=TktWbhpC;

Ich verstehe nicht, warum das anders ist, aber es muss die Ursache für die Probleme sein, die ich sehe.

verwandte Informationen