Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:mailserver:dkim [16.07.2009 21:32. ] – DNS-Abfrage ergänzt django | centos:mailserver:dkim [20.04.2018 10:34. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== DKIM - Domain Key Identified Mail ====== | ||
+ | {{: | ||
+ | Ursprünglich wurde DomainKeys unter dem Titel // | ||
+ | |||
+ | DKIM basiert auf asymmetrischer Verschlüsselung, | ||
+ | |||
+ | Für die Erzeugung des Hashwertes für diese Signatur unterstützt DKIM die Hashfunktionen SHA-1 und SHA-256. Die Verschlüsselung des Hashwertes, welche | ||
+ | |||
+ | ===== Installation ===== | ||
+ | Zur Signierung und Überprüfung der empfangenen Daten nutzen wir bei unserem Mailserver-Postfix die Möglichkeiten von AMaViS. Die Grundinstallation von AMaViS ist im Kapitel [[centos: | ||
+ | |||
+ | Bei der nachfolgenden Konfigurationsbeschreibung gehen wir davon aus, dass bereits ein funktionierender [[centos: | ||
+ | |||
+ | ===== Konfiguration ===== | ||
+ | Als erstes legen wir das Zielverzeichnis für unseren privaten Schlüssel an und passen die Berechtigung so an, dass dieses Verzeichnis unserem User amavis " | ||
+ | # mkdir / | ||
+ | # chown amavis: | ||
+ | ==== Keyerstellung ==== | ||
+ | Im nächsten Schritt erstellen wir uns nun unser Schlüsselpaar: | ||
+ | # amavisd genrsa / | ||
+ | | ||
+ | Alternativ können wir auch **openssl** zum Erstellen des Schlüssel verwenden. | ||
+ | # openssl genrsa -out dkim-key.pem 1024 | ||
+ | | ||
+ | | ||
+ | | ||
+ | e is 65537 (0x10001) | ||
+ | Anschließend passen wir die Dateiberechtigungen unseres erstellen keys an. | ||
+ | # chmod 600 dkim-key.pem | ||
+ | In unserem zuvor erstellten Verzeichnis befindet sich nun der erstellte **private** Schlüssel. | ||
+ | # ll / | ||
+ | | ||
+ | Damit später der User **amavis** auf diese Datei auch lesend zugreifen kann, berichtigen wir nun die Dateirechte. | ||
+ | # chown amavis: | ||
+ | In dieser Datei befindet sich nun der **private key**. | ||
+ | < | ||
+ | -----BEGIN RSA PRIVATE KEY----- | ||
+ | MIICXAIBAAKBgQDWypzomx/ | ||
+ | +kyYP+VuoJWMtUX2KSo+kTuWaH4AUgwWSxKq4IBq34MgWsDi3h/ | ||
+ | 16CLtzQUHAEwCUZqouQkDzQUHAEwCUZq2F9qbRFRB4WWJyuCF6GNQLX9jQIDAQAB | ||
+ | AoGAFgSC/ | ||
+ | 5H+YgllJ6Uv97bccY3AFqStc6FMuEnbZBzQUHAEwCUZqMUvln1Hm+pt9nKmc2T1d | ||
+ | 4NZFpm9wdghEolGgdQUJtqaKiClSJGAW28qne4TxQ/ | ||
+ | zHdO+LYDyXGW/ | ||
+ | / | ||
+ | o0FkSK2yUUSyJil44mE68knnZ3JoE1IxMwJAGz0zKmyuANfQr+y2C6ksJ2ULbGyI | ||
+ | 5Kcimm3a1RXTenwsD1lvVM46tmfa83vIKzgM2oI8SnZijjXqOEbMfudf1QJBAIG8 | ||
+ | E261XeN8IRoezRA4fsQqoRmL0vME1LI4+d8kZUyS6h8FxhQ2f3lZqS9ys8h8yqzN | ||
+ | guSfl3OAyWCTvWAwyFMCQFb0t7soo/ | ||
+ | SPfoF9go3M+8jZ2ac/ | ||
+ | -----END RSA PRIVATE KEY-----</ | ||
+ | |||
+ | ==== AMaViS ==== | ||
+ | In unserer AMaViS-Konfiguration hinterlegen wir nun die sowohl die Möglichkeiten der Signierung wie auch Überprüfung der DKIM-Funktionalitäten. Am Anfang unserer Konfigurationsdatei hinterlegen wir demnach folgende Definitionen. | ||
+ | # vim / | ||
+ | <code perl amavisd.conf> | ||
+ | |||
+ | $enable_dkim_verification = 1; # enable DKIM signatures verification | ||
+ | $enable_dkim_signing = 0; # load DKIM signing code, keys defined by dkim_key | ||
+ | dkim_key(' | ||
+ | @dkim_signature_options_bysender_maps = ( | ||
+ | { ' | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Bei diesem Beispiel gehen wir davon aus, dass wir nur eine Domäne auf unserem Mailserver haben und diese Nachrichten signieren wollen. | ||
+ | |||
+ | Haben wir noch weitere [[centos: | ||
+ | <code perl amavisd.conf> | ||
+ | dkim_key(' | ||
+ | dkim_key(' | ||
+ | dkim_key(' | ||
+ | </ | ||
+ | Im ersten Schritt aktivieren wir __nur__ die DKIM-Verifizierung, | ||
+ | |||
+ | Damit AMaVis nun Kenntnis von unseren Änderungen erfährt, starten wir diesen einmal durch. | ||
+ | # service amavisd restart | ||
+ | |||
+ | ==== öffentlichen Schlüssel ==== | ||
+ | Damit wir den unseren öffentlichen Schlüssel via DNS veröffentlichen können, geben wir den Key am Bildschirm aus. | ||
+ | < | ||
+ | ; key#1, domain nausch.org, / | ||
+ | main._domainkey.nausch.org. | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | Auch hier können wir mittels **openssl** den public-key erstellen und auf die Platte schreiben lassen. | ||
+ | # | ||
+ | | ||
+ | Die Dateiberechtigung passen wir entsprechend an: | ||
+ | # chmod 600 / | ||
+ | Die Schlüsseldatei enthält nun den public-key für unsere DKIM-Konfiguration. | ||
+ | # cat / | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Diesen Schlüssel stellen wir nun als TXT über die Subdomain **// | ||
+ | | ||
+ | Nachdem der TXT zur Verfügung steht, können wir mit hilfe von **amavisd** diesen Überprüfen. | ||
+ | # amavisd testkeys | ||
+ | | ||
+ | Wir können natürlich auch direkt den TXT-Record eines Hosts abfragen: | ||
+ | # host -t TXT main._domainkey.nausch.org | ||
+ | | ||
+ | |||
+ | ===== Tests ===== | ||
+ | ==== local ==== | ||
+ | Für die abschließenden Test aktivieren wir nun in der AMaViS-Konfigurationsdatei // | ||
+ | # vim / | ||
+ | | ||
+ | Zur Aktivierung der DKIM-Signaturfunktion starten wir den AMaViS-Dämon 1x durch. | ||
+ | # service amavisd restart | ||
+ | Schicken wir nun eine Test-eMail so finden wir im Mailheader die DKIM-Signatur: | ||
+ | < | ||
+ | user-agent: | ||
+ | : | ||
+ | : | ||
+ | HqS7XrfqnIm115svsJ2CtdB4E8zpd83M=; | ||
+ | mp8TGdon5FvR0RaDqkzPxmRBRaQ3oNL9/ | ||
+ | jY2ogmZO9xNmY1ZNdqf286X72P2RvsKFngX7CwVIF3Ofd0hZy7YlTRPe+CHQ/ | ||
+ | hEhhBGWr+aoZv1pU= | ||
+ | </ | ||
+ | ==== WEB-online ==== | ||
+ | Eine sehr gute und einfache Möglichkeit die DKIM-Konfiguration zu testen, stellt die [[http:// | ||
+ | Die angegebene temporäre eMailadresse kopieren wir uns und schicken an diese eine Testnachricht. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Über die Schaltfläche **//[View Results]// | ||
+ | === Original Message: === | ||
+ | < | ||
+ | X-Original-To: | ||
+ | Delivered-To: | ||
+ | Received: from mx1.nausch.org (mx1.nausch.org [88.217.187.21]) | ||
+ | by www.brandonchecketts.com (Postfix) with ESMTP id 2AB933091E | ||
+ | for < | ||
+ | Received: from localhost (localhost.localdomain [127.0.0.1]) | ||
+ | by mx1.nausch.org (Postfix) with ESMTP id 392E71158615 | ||
+ | for < | ||
+ | DKIM-Signature: | ||
+ | x-mailer: | ||
+ | : | ||
+ | : | ||
+ | t=1247914197; | ||
+ | HS/ | ||
+ | Oap6CURctdOqHqlFhkG4TXJtgDKNNhaAbDqG8wXlYFxhbQ+s1dY+TIBQDhVy445z | ||
+ | D4NWWQ1UtbHocHrCHl0j1yPHVCSgWNIlRR7w4By1LsuNhTbY/ | ||
+ | X-Virus-Scanned: | ||
+ | Received: from mx1.nausch.org ([127.0.0.1]) | ||
+ | by localhost (amavis.nausch.org [127.0.0.1]) (amavisd-new, | ||
+ | with ESMTP id zUoWGqr6KT3G for < | ||
+ | Sat, 18 Jul 2009 12:49:57 +0200 (CEST) | ||
+ | Received: from buero.nausch.org (office.nausch.org [192.168.10.20]) | ||
+ | by mx1.nausch.org (Postfix) with ESMTP | ||
+ | for < | ||
+ | Received: by buero.nausch.org (Postfix, from userid 500) | ||
+ | id 5F1722DC040E; | ||
+ | Subject: Testmessage | ||
+ | From: Michael Nausch < | ||
+ | Reply-To: michael@nausch.org | ||
+ | To: zSQ3lX8C5X@www.brandonchecketts.com | ||
+ | Content-Type: | ||
+ | Content-Transfer-Encoding: | ||
+ | Organization: | ||
+ | Date: Sat, 18 Jul 2009 12:49:57 +0200 | ||
+ | Message-Id: < | ||
+ | Mime-Version: | ||
+ | X-Mailer: Evolution 2.12.3 (2.12.3-8.el5_2.3) | ||
+ | |||
+ | HI, | ||
+ | |||
+ | ist nur ein Test f=C3=BCr' | ||
+ | |||
+ | ttyl, | ||
+ | | ||
+ | </ | ||
+ | === DKIM Information: | ||
+ | < | ||
+ | |||
+ | Message contains this DKIM Signature: | ||
+ | DKIM-Signature: | ||
+ | x-mailer: | ||
+ | : | ||
+ | : | ||
+ | t=1247914197; | ||
+ | HS/ | ||
+ | Oap6CURctdOqHqlFhkG4TXJtgDKNNhaAbDqG8wXlYFxhbQ+s1dY+TIBQDhVy445z | ||
+ | D4NWWQ1UtbHocHrCHl0j1yPHVCSgWNIlRR7w4By1LsuNhTbY/ | ||
+ | |||
+ | |||
+ | Signature Information: | ||
+ | v= Version: | ||
+ | a= Algorithm: | ||
+ | c= Method: | ||
+ | d= Domain: | ||
+ | s= Selector: | ||
+ | q= Protocol: | ||
+ | bh= | ||
+ | HS/ | ||
+ | h= Signed Headers: | ||
+ | : | ||
+ | : | ||
+ | b= Data: EEIoq4COIkREvU+Oil+f0Qg0yrwdYX0mZFEtnlqRR06ck6HV | ||
+ | Oap6CURctdOqHqlFhkG4TXJtgDKNNhaAbDqG8wXlYFxhbQ+s1dY+TIBQDhVy445z | ||
+ | D4NWWQ1UtbHocHrCHl0j1yPHVCSgWNIlRR7w4By1LsuNhTbY/ | ||
+ | Public Key DNS Lookup | ||
+ | |||
+ | Building DNS Query for main._domainkey.nausch.org | ||
+ | Retrieved this publickey from DNS: v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWypzomx/ | ||
+ | Validating Signature | ||
+ | |||
+ | result = pass | ||
+ | Details: </ | ||
+ | === SPF Information: | ||
+ | < | ||
+ | |||
+ | Helo Address = mx1.nausch.org | ||
+ | From Address = michael@nausch.org | ||
+ | From IP = 88.217.187.21 | ||
+ | SPF Record Lookup | ||
+ | |||
+ | Looking up TXT SPF record for nausch.org | ||
+ | Found the following namesevers for nausch.org: ns2.m-online.net ns1.m-online.net | ||
+ | Retrieved this SPF Record: v=spf1 ip4: | ||
+ | Result: Pass (Mechanism ' | ||
+ | |||
+ | Result code: pass | ||
+ | Local Explanation: | ||
+ | spf_header = Received-SPF: | ||
+ | </ | ||
+ | |||