Mit SysCP 1.4.2 wurde DKIM integriert, was es dem Absender ermöglicht, seine eMails beim versenden mit einer Signatur zu versehen, die der Empfangende Server prüfen kann um festzustellen ob die eMail tatsächlich von diesem Server Versand wurde. Weitere Informationen siehe Post-ID 1212.
So wie es aussieht, ist aber in der SysCP Version 1.4.2 ein Bug bezüglich der dkim Veröffentlichung mittels DNS enthalten, der aber bereits gemeldet wurde.
Schlüssel erstellen
siehe Post 2487
dkim-milter Installation
Da das Paket dkim-filter erst mit Debian Lenny ein fester Bestandteil von Debian wird, muss das Paket aus den Backports installiert werden.
wget http://www.backports.org/debian/pool/main/d/dkim-milter/dkim-filter_2.6.0.dfsg-1~bpo40+2_i386.deb apt-get install libmilter0 dpkg -i dkim-filter_2.6.0.dfsg-1~bpo40+2_i386.deb
Coorperation mit amavisd-new
Da ich als Content-Filter jede eMail durch amavisd-new laufen lasse, musste die Signierung der eMails am Ort der Rückgabe der eMails nach der amavis Prüfung erfolgen. Dazu habe ich die master.cf wie folgt angepasst.
/etc/postfix/master.cf127.0.0.1:10025 inet n - - - - smtpd [...] -o milter_default_action=accept -o milter_macro_daemon_name=ORIGINATING -o smtpd_milters=inet:localhost:8891 -o non_smtpd_milters=inet:localhost:8891 -o content_filter=
anpassen der dkim-filter Konfiguration
Nun muss noch die Konfiguration angepasst werden. Dazu muss über die Datei /etc/default/dkim-filter der Port angegeben werden, über den der Filter erreichbar ist.
[...]SOCKET="inet:8891@127.0.0.1"
Ebenso muss die Datei /etc/dkim-filter.conf an die SysCP Daten angepasst werden.
Syslog yes UMask 002 Canonicalization relaxed/simple Mode s SubDomains yes X-Header yes KeyList /etc/postfix/dkim/dkim-keys.conf Domain /etc/postfix/dkim/domains LogWhy yes # OmitHeaders Return-Path,Received,Comments,Keywords,Bcc,Resent-Bcc,To
Zur Erklärung der Einzelnen Parameter siehe man dkim-filter.conf
[…]
Mode (string)
Selects operating modes. The string is a concatenation of characters which indicate which mode(s) of operation are desired. Valid modes
are s (signer) and v (verifier). The default is sv except in test mode (see the dkim-filter(8) man page) in which case the default is v.
[…]
Canonicalization (string)
Selects the canonicalization method(s) to be used when signing messages. When verifying, the message’s DKIM-Signature: header specifies
the canonicalization method. The recognized values are relaxed and simple as defined by the DKIM specification. The default is simple.
The value may include two different canonicalizations separated by a slash („/“) character, in which case the first will be applied to
the headers and the second to the body.
[…]
OmitHeaders (string)
Specifies a list of headers which should be omitted when generating signatures. The string should be a comma-separated list of header
names. If an entry in the list names any header which is mandated by the DKIM specification, the entry is ignored. A set of headers is
listed in the DKIM specification as „SHOULD NOT“ be signed; the default list for this parameter contains those headers (Return-Path,
Received, Comments, Keywords, Bcc, Resent-Bcc and DKIM-Signature). To omit no headers, simply use the string „-“ (or any string which
will match no headers). Note that specifying a list with this parameter replaces the default entirely.
Sollten Probleme bei der Signierung auftreten, kann man über OmitHeaders speizielle Headerzeilen von der Signierung ausschließen um zu testen, ob diese das Problem verursachen.
SysCP
Sobal für eine Domain DKIM aktiviert wurde, erstellt SysCP automatisch die notwendigen Dateien domains & dkim-keys.conf sowie die entsprechenden Keys für die jeweilige Domain und speicher diese in der SQL-DB.
mysql -u root -p<kennwort> mysql -e "use syscp; select domain, dkim, dkim_id, dkim_privkey, dkim_pubkey from panel_domains;
Um DKIM zu testen, kann man eine eMail an folgende Adressen schicken. I.d.R. bekommt man als Antwort eine Status der DKIM Überprüfung.
- auth-results@verifier.port25.com
- sa-test@sendmail.net
- autorespond+dkim@dk.elandsys.com
- dkim-test@testing.dkim.org
_adsp._domainkey Record
Über einen DNS-Record _adsp._domainkey.domain.tld kann das Verhalten für den Empfang von nicht signierten Nachrichten festgelegt werden. Unter sendmail.org gibt es dafür einen DKIM ADSP Wizard. (siehe auch _asp._domainkey)
_domainkey Record (policy)
Der DNS Record TXT-Record _domainkey ist eine weitere Möglichkeit, das Verhalten bei unsignierten/falsch signierten eMails festzulegen. Mehr dazu siehe: http://stephanmund.de/tech/mail.html/2008-07-16_dkim-domainkeys-policies
DNS Record Abfrage
Um den DKIM Key per DNS abzufragen, kann folgende nslookup Abfrage genutzt werden
nslookup -query=txt dkim_3._domainkey.mails4.me
Links
- http://stephanmund.de/tools/check_dkim.html
- http://www.allmers.de/blog/plugin/tag/server
- http://www.elandsys.com/resources/sendmail/dkim.html
- http://domainkeys.sourceforge.net/policycheck.html
- http://www.dkim.org/specs/draft-ietf-dkim-ssp-03.pdf
Ein Kommentar
Pingback: DKIM/DomainKey Schlüssel erstellen und veröffentlichen @ .: blog.cscholz.io :.