[gelöst] Postfix + DKIM: Signature invalid

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

[gelöst] Postfix + DKIM: Signature invalid

Beitrag von heisenberg » 15.05.2024 11:38:10

Hallo zusammen,

ich habe hier postfix für DKIM konfiguriert (Das habe ich noch nicht oft manuell gemacht). Wenn ich dann eine Mail an mich sende, dann ist die DKIM-Signatur ungültig.

Das ist das sendende System:
  • Ubuntu 20.04
  • postfix 3.4.13-0ubuntu1.4
  • opendkim 2.11.0~beta2-1
  • opendkim-tools 2.11.0~beta2-1
Konfiguration

Das sind die postfix milter Einstellungen:

Code: Alles auswählen

postconf |grep -E "(milter_(default_action|protocol)|(non_)?smtpd_milters)" 

milter_default_action = accept
milter_protocol       = 6
non_smtpd_milters     = inet:localhost:12345
smtpd_milters         = inet:localhost:12345
Das ist /etc/opendkim.conf:

Code: Alles auswählen

Syslog                  yes
UMask                   007
Socket                  inet:12345@127.0.0.1
PidFile                 /run/opendkim/opendkim.pid
OversignHeaders         From
TrustAnchorFile         /usr/share/dns/root.key
UserID                  opendkim

SigningTable            refile:/etc/opendkim/signing.table
KeyTable                /etc/opendkim/key.table  
SignatureAlgorithm      rsa-sha256
Tests

Den Key habe ich lokal überprüft:

Code: Alles auswählen

opendkim-testkey -d senderdomain.de -s 202405 -vvv
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key '202405._domainkey.senderdomain.de'
opendkim-testkey: key not secure		# <---- das ist laut Michael Kofler ok, weil sich das auf das optionale 
						#        DNSSEC bezieht. Siehe [1]
opendkim-testkey: key OK
Den publickey hat eine fremde Person im DNS hinterlegt. Der ist identisch. Nur das Splitting des Records ist anders als lokal (im opendkim-Verzeichnis):

Lokaler Pubkey:

Code: Alles auswählen

202405._domainkey       IN      TXT     ( "v=DKIM1; h=sha256; k=rsa; s=email; "
          "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4GTUv0sbQriwbhAdlcAVceAACNIHxK42i1Di3HBN+cSEWNSrMVGX4g5QqkxHcC+cZ5sXr9LrVwE3y6aTguPzoe7+JX09gZdKGbOU1P/C21VhRtZpiPpBKkdPK674OwiMWJSLRqgeZefb6igPY5XCM8X9VNYddpeKGuQ4g6SV9ua+bqhvHpWGrNHhlUOoA1xNpsu++EPs+Llh8X"
          "lgBtrASEVwm4yil+BUaZ1niQ7JoUB/sooA+UcQU25V1EDSvG9vAARPBvt/hDf5CejsU421zBeCnkf/cXTEpfj4BVPdr0OLSKVNeJrGUiV0ol0aML7DTcEX2DDIN4G6edJys2ArxQIDAQAB" )  ; ----- DKIM key 202405 for senderdomain.de
DNS-Abfrage:

Code: Alles auswählen

host -t txt 202405._domainkey.senderdomain.de
202405._domainkey.senderdomain.de descriptive text "v=DKIM1; h=sha256; k=rsa; s=email; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4GTUv0sbQriwbhAdlcAVceAACNIHxK42i1Di3HBN+cSEWNSrMVGX4g5QqkxHcC+cZ5sXr9LrVwE3y6aTguPzoe7+JX09gZdKGbOU1P/C21VhRtZpiPpBKkdPK674OwiMWJSLRqgeZefb6igPY5XCM8X9VNYddpeKGuQ4g6SV9ua+bq" "hvHpWGrNHhlUOoA1xNpsu++EPs+Llh8XlgBtrASEVwm4yil+BUaZ1niQ7JoUB/sooA+UcQU25V1EDSvG9vAARPBvt/hDf5CejsU421zBeCnkf/cXTEpfj4BVPdr0OLSKVNeJrGUiV0ol0aML7DTcEX2DDIN4G6edJys2ArxQIDAQAB"
Inhaltlich habe ich das überprüft. Ist komplett identisch.

Den DNS-DKIM-Record habe ich auch nochmal per mxtoolbox überprüfen lassen. Ist auch einwandfrei:

Code: Alles auswählen

Status Ok	DKIM Record Published 	DKIM Record found
Status Ok	DKIM Syntax Check 	The record is valid
Status Ok	DKIM Public Key Check 	Public key is present
Signaturprüfung

Das DKIM-Verifier-Addon in Thunderbird gibt mir die Meldung: Ungültig (Signatur ist falsch formatiert). Dieses Addon funktioniert üblicherweise. Mit dkimverify (aus Debianpython3-dkim (Bookworm)) bekomme ich nach Prüfung der aus Thunderbird als .EML abgespeicherten Mail: signature verification failed.

Hier ist noch die anonymisierte E-Mail die ich mir selbst geschickt habe: NoPaste-Eintrag42164

Habt Ihr noch eine Idee, was ich falsch gemacht haben könnte, wo der Fehler liegen könnte?

[1] https://kofler.info/dkim-konfiguration-fuer-postfix/
Zuletzt geändert von heisenberg am 15.05.2024 12:29:57, insgesamt 1-mal geändert.

Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Postfix + DKIM: Signature invalid

Beitrag von heisenberg » 15.05.2024 12:27:08

Durch eine weitere Testseite (dkimvalidator.com) bin ich auf den Fehler gekommen:

Hier stand bei den DKIM-Tests:

Code: Alles auswählen

Validating Signature

result = invalid
Details: public key: not available
D. h. irgendwie ist der nicht auf die Senderdomain gekommen. Hier war meine opendkim-key-table falsch:

So ist sie falsch gewesen:

Code: Alles auswählen

senderdomain.tld senderdomainbody-webserver:202405:/etc/opendkim/keys/senderdomainbody-webserver.private
So musste ich sie korrigieren:

Code: Alles auswählen

senderdomain.tld senderdomain.tld:202405:/etc/opendkim/keys/senderdomain.tld.private
Genauer geschrieben müssen beide der folgenden roten Felder also die tatsächliche Senderdomain sein:

senderdomain.tld senderdomain.tld:202405:/etc/opendkim/keys/senderdomain.tld.private

Den Key (/etc/opendkim/keys/senderdomainbody.private) habe ich dann entsprechend auch umbenannt in /etc/opendkim/keys/senderdomain.tld.private. Der Name des Keys ist vermutlich beliebig wählbar.

Problem gelöst.

Nachtrag

Die SigningTable - Datei (bei mir /etc/opendkim/signing.table) muss auch noch angepasst werden:

Code: Alles auswählen

*@senderdomain.tld senderdomain.tld

Antworten