Segfault bei dkim-filter und libmilter1.0.1 < 8.14.4-1

Wir hatten ja schon ausführlich über die Einrichtung und die Nutzung von Dkim berichtet. Mit der Zeit zeigten sich jedoch noch kleinere Schwierigkeiten, welche nur in aktuellen Paketen behoben sind.
Hiervon betroffen ist z.B. ein Segfault des dkim-filter bei größerem Mailaufkommen und der damit verbundenen Nutzung. Im Zusammenhang mit Postfix bedarf es der libmilter, damit externe Filter aus dem Postfix heraus angewandt werden können. Und genau diese schafft in dem Szenario in einer Version kleiner der 8.14.4-1 die Problematik, welche zum Absturz des dkim-filter führt.
Unter Debian ist das Paket derzeit noch im Testing-Status. Daher kann man je nach System und Vorgaben den dkim-filter überwachen und im Fehlerfall neu starten, sowie im späteren Verlauf eine freigegebene Version des Pakets updaten. Oder man installiert sich solange das Testing-Paket oder wendet einen Patch auf den Quellcode hierfür an.

Weekly Snap: inGraph release, Gude hardware, IPv6 & DKIM tips

5 – 9 December packed the first advent with the release of InGraph and a Gude plugin, tips on email address verification and automatic IPv6 configuration.
Following the excitement from the preview made at the OSMC, Gunnar released inGraph for download. Aside from generating informative graphs of Nagios/Icinga performance data, inGraph also features a cronk for seamless integration into Icinga Web. This includes a preview graph accessible from the service view, which displays information in line with user rights and permissions. In the standalone version too, graphs can be customized with the help of templates, and graphs from various hosts and services can be combined for comparison. InGraph comes with a check plugin to also offer trending of certain services. For more information see the inGraph project wiki.
On the topic of releases, Birger shared a new check plugin for Gude sensors to go with the new temperature, humidity and current/voltage sensors in store. These include the expert net control 2101/2151 and expert net control 2i2o 2100/2150, with the expert sensor box 7212 and Gude conductors with measurement still to come. The check_gude.pl for Nagios/Icinga can be found in our plugins area.
Per Georg, the same new devices from Gude featured in the hardware exhibition at the OSMC, alongside the Multitech iSMS, Nagios USB traffic light and Starface VoIP appliance for voice alerts.
From Managed Services, Sebastian explained Domain Keys Identified mail for the verification of sender email addresses, contrasting it to the Sender Policy Framework (SPF). The latter creates a record in the DNS zone file with the allowed MTA mail server IP addresses for the receiving server to verify the domain against. Domain Keys Identified mail however, uses a private key generated signature in each email’s header, which can be verified against a corresponding key located in the DNS zone.
Carsten then offered his tip for automatic IPv6 configuration with the help of radvd. Making the most of the IPv6 stateless address auto configuration feature, he gave an example of an radvd configuration on site local addresses. He noted however, that stateless address auto configuration is currently only possible on a DHCPv6 server.
To end the week with some festive cheer, Bernd declared the world’s best shashlik to be found at the Nuremberg Christmas market.

DomainKeys Identified Mail

Dass das SMTP-Protokoll in die Jahre gekommen und vielen Fällen nicht mehr unbedingt zeitgemäß ist, ist eigentlich nichts Neues. Das Fälschen der Absenderadresse bzw. das Verifizieren des Absenders in Kombination mit dem sendenden SMTP-Servers ist alleine mit SMTP nicht möglich.
Ein Beispiel:
Würde man mit einer fremden Mailadresse E-Mails verschicken oder gar Spammen, kann es durchaus vorkommen, dass Bounce-Emails an den vermeindlichen Absender zurückgeschickt werden. D.h die betroffen Person würde in so einem Fall plötzlich mehrere tausende ungewollte Bounce-Emails erhalten, obwohl er eigentlich mit dieser Aktion nichts zu tun hat. Auch Auto-Responder würden der falschen Person antworten.
Um das zu verhindern, wurden Maßnahmen entwickelt mit denen Absenderadresse geprüft werden können: DKIM und SPF.
Das “Sender Policy Framework” funktioniert indem man in seinem DNS-Zone-File einen SPF-Record erstellt und die erlaubten MTA-Mailserver-IP-Adressen hinterlegt. Die Gegenstelle kann somit prüfen, ob die Mail mit der Absenderadresse bzw. Domain auch tatsächlich von einem der gelisteten Mailserver gesendet wurde.
Das “DomainKeys Identified Mail” Verfahren funktioniert etwas anders. Jede Email, die über einen ‘offiziellen’ MTA gesendet wird, wird in ihrem Header signiert. Die Signatur wird anhand eines Private-Key generiert, der auf dem Server abgelegt ist. Im DNS-Zone-File muss zum Prüfen der Signatur der Public-Key als DKIM-Record (TXT) hinterlegt sein. Der empfangende Mailserver prüft somit die Signatur in der Mail gegen den in der DNS-Zone hinterlegten öffentlichen Schlüssel. Handelt es sich um eine gültige Signatur, so ist der Absender und dessen Mailserver verifiziert.
Für den Einsatz von DKIM muss der Mailserver entsprechend konfiguriert werden. Auf einem Debian-System mit Postfix sind folgende Schritte durchzuführen:
Die Schlüssel generieren und den Private-Key entsprechend ablegen.

openssl genrsa -out beispiel.private 1024
openssl rsa -in beispiel.private -out beispiel.public -pubout -outform PEM
mkdir /etc/postfix/dkim
cp beispiel.private /etc/postfix/dkim/beispiel

Das Paket dkim-filter aus den Paketquellen installieren.

aptitude install dkim-filter

Den dkim-filter daemon auf einen Port lauschen lassen, damit sich Postfix später verbinden kann.

/etc/default/dkim-filter
SOCKET="inet:12345@localhost"

Die Datei dkim-filter.conf muss nicht weiter bearbeitet werden, für mehrere Domains mit mehreren Keys ist allerdings der Eintrag einer KeyList notwendig.

/etc/dkim-filter.conf
KeyList /etc/dkim-keys.conf

Die Domains in der KeyList werden nach diesem Schema eingetragen: “Absenderadresse:Domain:Pfad/zum/privatekey”

/etc/dkim-keys.conf
*@beispiel.de:beispiel.de:/etc/postfix/dkim/beispiel

dkim-filter mit neuer Konfiguration neu starten.

/etc/init.d/dkim-filter restart

Postfix muss noch angepasst werden, damit Mails zum Signieren an dkim-filter weitergereicht werden. Das wird mit Hilfe der Option “smtpd_milters” für smtp Verbindungen bzw. “non_smtp_milters” für Mails via local inject.

/etc/postfix/main.cf
smtpd_milters = inet:localhost:12345
non_smtpd_milters = inet:localhost:12345
/etc/init.d/postfix restart

Nachdem Postfix neugestartet wurde, werden die Mails, die für die Signierung mit DKIM konfiguriert wurden, mit einer entsprechenden Signatur versehen. Damit die Arbeit auch Früchte trägt, darf man natürlich den DNS-Zonen-Eintrag nicht vergessen! Für das Ausfiltern von Emails ohne gültigen DKIM-Header muss z.B. Spamassassin konfiguriert werden.
Beide Verfahren haben natürlich ihre Vor- und Nachteile. Die großen Provider bevorzugen teils SPF und teils DKIM oder auch beides. Um die Zustellung von Mails sicherzustellen sollte man beide Verfahren nutzen und unterstützen.

Sebastian Saemann
Sebastian Saemann
Head of Managed Services

Sepp kam von einem großen deutschen Hostingprovider zu NETWAYS, weil ihm dort zu langweilig war. Bei uns kann er sich nun besser verwirklichen, denn er leitet zusammen mit Martin das Managed Services Team. Wenn er nicht gerade Server in MCollective einbindet, versucht er mit seinem Motorrad einen neuen Geschwindigkeitsrekord aufzustellen.