Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| centos:mailserver:dkim [21.07.2009 10:30. ] – key-Erstellung mittels openssl notiert 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: | ||
| + | </ | ||
| + | |||