Zusätzlich zum Postfix Header anonymisieren Beitragm öchte ich „kurz und knackig“ beschreiben, wie ihr DKIM für Postfix und SPF einrichtet.
Inspiriert wurde ich durch diese beiden Artikel:
https://www.debinux.de/…/dkim-verstaendnis-konfiguration-und-installation-von-opendkim/
https://kofler.info/dkim-konfiguration-fuer-postfix/
… vielen Dank !
Weitere Informationen zu den Themen findet ihr wie immer auf Wikipedia: DKIM / SPF
Warum sind SPF und DKIM wichtig? Klar jeder Spammer kann sich diese ebenfalls einrichten. Der Hauptgrund ist und bleibt, dass die „Großen“ wie GMX und Web.de die Mails von unserem Mailserver nicht als Spam flaggen.
Punkt 1: SPF im Nameserver hinterlegen
Mit dem SPF Generator kannst du dir einfach und schnell den passenden TXT-Record für deine Domain generieren.
Dieses Beispiel sagt dem Mailserver auf der anderen Seite, dass der Computer mit der IP-Adresse aus dem A-Record und dem MX-Record berechtigt ist diese Mail der Domain zu schicken.
Setze in den Nameservereinstellungen deiner Domain folgenden TXT-Record Eintrag:
v=spf1 a mx ~all
Weitere Domains und IP-Adressen kannst du in den Erweiterten Optionen des Generators hinzufügen.
Sollte es Probleme bei Formularen oder Weiterleitungen geben, empfiehlt es sich ~all in ?all abzuändern. Mehr dazu im Wikipedia Beitrag.
Punkt 2: Installation von DKIM
Wir installieren die folgenden Pakete. In diesem Beispiel unter Debian Jessie.
apt-get install opendkim opendkim-tools
Nun legen wir die nötigen Ordner an und vergeben Rechte.
mkdir -p /etc/opendkim/keys
chown -R opendkim. /etc/opendkim
chmod go-rw /etc/opendkim/keys
Punkt 3: Postfix main.cf erweitern
Der Postfix erhält ein paar Milter Zeilen um OpenDKIM einzubinden.
# OpenDKIM
milter_protocol = 6
milter_default_action = accept
non_smtpd_milters=inet:127.0.0.1:12345
smtpd_milters=inet:127.0.0.1:12345
Punkt 4: OpenDKIM Config anpassen
Die Konfigurationsdatei kann unter Debian so übernommen werden. Wie gesagt „kurz und knackig“ – mehr Infos unter den oben genannten Links.
# OpenDKIM agiert als Mail Filter (= Milter) in den
# Modi signer (s) und verifier (v) und verwendet eine
# Socket-Datei zur Kommunikation (alternativ: lokaler Port)
Mode sv
#Socket local:/var/run/opendkim/opendkim.sock
Socket inet:12345@localhost
# OpenDKIM verwendet diesen Benutzer bzw.
# diese Gruppe
UserID opendkim:opendkim
UMask 002
PidFile /var/run/opendkim/opendkim.pid
# OpenDKIM bei Problemen neustarten,
# aber max. 10 mal pro Stunde
AutoRestart yes
AutoRestartRate 10/1h
# Logging (wenn alles funktioniert eventuell reduzieren)
Syslog yes
SyslogSuccess yes
LogWhy yes
# Verfahren, wie Header und Body durch
# OpenDKIM verarbeitet werden sollen.
Canonicalization relaxed/relaxed
# interne Mails nicht mit OpenDKIM verarbeiten
ExternalIgnoreList refile:/etc/opendkim/trusted
InternalHosts refile:/etc/opendkim/trusted
# welche Verschlüsselungs-Keys sollen für welche
# Domains verwendet werden
# (refile: für Dateien mit regulären Ausdrücke)
SigningTable refile:/etc/opendkim/signing.table
KeyTable /etc/opendkim/key.table
# diesen Signatur-Algorithmus verwenden
SignatureAlgorithm rsa-sha256
# Always oversign From (sign using actual From and a null From to prevent
# malicious signatures header fields (From and/or others) between the signer
# and the verifier. From is oversigned by default in the Debian pacakge
# because it is often the identity key used by reputation systems and thus
# somewhat security sensitive.
OversignHeaders From
Punkt 5: Interne Mails ohne Signatur
In der trusted Config tragen wir IP-Adressen und Domainnamen der von uns vertrauten Server ein. Denn diese Server benötigen keine DKIM Signatur.
127.0.0.1
::1
localhost
mail
mail.adminforge.de
Punkt 6: Schlüsselzuordnung der einzelnen Domains
Es lohnt sich auch bei nur einer Domain direkt eine Tabelle anzulegen die sagt welcher Key zu welcher Domain gehört. Postfix könnte ja Jederzeit eine neue Domain vom Admin erhalten 🙂
# Domain Schlüssel
*@adminforge.de adminforge
*@weiteredomain.de weiteredomain
# Schlüssel Domain:Selektor:Private Key Pfad
adminforge adminforge.de:201705:/etc/opendkim/keys/adminforge.private
weiteredomain weiteredomain.de:201705:/etc/opendkim/keys/weiteredomain.private
Punkt 7: DKIM Schlüssel generieren
Für die Erstellung eines neuen Key-Paares geben wir bei -d die Domain, -b die Bitrate (mehr als 2048 könnte zu Problemen führen) und -s den Selektor (dieser steht im DNS-TXT Feld) an.
opendkim-genkey -d adminforge.de -b 2048 -r -s 201705
Wir erhalten die beiden Dateien mit Public-Key und Private-Key.
201705.txt
201705.private
Wir verschieben und benennen diese um.
mv 201705.txt keys/adminforge.txt
mv 201705.private keys/adminforge.private
chown -R opendkim. /etc/opendkim
Punkt 8: DNS-TXT Eintrag hinzufügen
Wir fügen den erstellten Public-Key in unserem Nameserver als TXT-Eintrag hinzu.
201705._domainkey IN TXT "v=DKIM1; k=rsa; s=email; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtA5Hg8C1AesLJeCdhX0Y6sVH1Tkc2QHHkqUaxrMTkU7rJ3OCsimP3QhmTR3j8DS4o7NW3Sc5HEfxzVGHznSChYF+jhulJV5BX9Qo9McRtNLxeUB5M0+PXi8ylfuwRoc8aX82ly1MnA0HkaUYOgWWYIM4i6ixi6BazHlu39A2zPUe427G5vCl54rI06K9n1QMdOWWPx9WRE275h"
"spMYKq0NymSncjWoQAOhPC2GW7imxG0rJfQGaxKrx/IlRuVnsYgDF+kSuOQ86ZO6ZiqkNrlhrdrgDAenxdSFPLyepkE3F40caHrimNdogwLYRVVMd3vjQYyPo855yDC7jDAPftPQIDAQAB"
Die ‚ “ ‚ könnt ihr entfernen und eine lange Zeile draus machen.
201705._domainkey IN TXT v=DKIM1; k=rsa; s=email; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtA5Hg8C1AesLJeCdhX0Y6sVH1Tkc2QHHkqUaxrMTkU7rJ3OCsimP3QhmTR3j8DS4o7NW3Sc5HEfxzVGHznSChYF+jhulJV5BX9Qo9McRtNLxeUB5M0+PXi8ylfuwRoc8aX82ly1MnA0HkaUYOgWWYIM4i6ixi6BazHlu39A2zPUe427G5vCl54rI06K9n1QMdOWWPx9WRE275hspMYKq0NymSncjWoQAOhPC2GW7imxG0rJfQGaxKrx/IlRuVnsYgDF+kSuOQ86ZO6ZiqkNrlhrdrgDAenxdSFPLyepkE3F40caHrimNdogwLYRVVMd3vjQYyPo855yDC7jDAPftPQIDAQAB
Punkt 9: Dienste Neustarten & Prüfen
Dienste Neustarten.
systemctl restart opendkim.service
systemctl restart postfix.service
Wir prüfen ob der DNS-TXT Eintrag korrekt hinterlegt ist. Wenn ein „key OK“ erscheint passt alles. Ein „key not secure“ ist ok und erscheint wenn kein DNSSEC verwendet wird.
opendkim-testkey -d adminforge.de -s 201705 -vvv
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key '201705._domainkey.adminforge.de'
opendkim-testkey: key not secure
opendkim-testkey: key OK
Einen sehr guter Test ist ein Senden einer Testmail an die angegebene Mail-Adresse auf mail-tester.com.
Das Betreiben der Dienste, Webseite und Server machen wir gerne, kostet aber leider auch Geld.Unterstütze unsere Arbeit mit einer Spende. |

