DKIM und SPF für Dovecot und Postfix mit SpamAssassin

Excontinuum Administration, Updates DKIM und SPF für Dovecot und Postfix mit SpamAssassin
DKIM und SPF für Dovecot und Postfix mit SpamAssassin

Administration Updates

DKIM und SPF für Dovecot und Postfix mit SpamAssassin

Posted By temeraire

Etwas, was ich noch machen muss, damit Google aufhört zu nerven und generell Sender Policies und weitere Schutzmaßnahmen für den Server und die Benutzer zu schaffen. Gerade diesen Beitrag im Netz gefunden, werde ich ihn schnellstmöglich durcharbeiten und übersetzen. Die Pointer und DNS-Anpassungen habe ich in weiser Voraussicht bereits getätigt.

Schritt 1: Sender Policy Framework installieren und einrichten

Installiert wird das Postfix-Derivat von SPF hiermit:

<code>sudo apt-get install postfix-policyd-spf-python</code> Nachdem das Postfix-Plugin herunter geladen und mit den aufgelösten Abhängigkeiten installiert wurde, können wir die Postfix master.cf, die unter /etc/postfix/master.cf liegt, anpassen und folgendes hinzufügen:

policy-spf  unix  -       n       n       -       -       spawn
     user=nobody argv=/usr/bin/policyd-spf

Dafür benutzt einfach den Texteditor eures Vertrauens. Ich werde nicht auf die unterschiedlichen Varianten eingehen 😉

Speichert die master.cf und öffnet die main.cf, die im selben Ordner liegt. Wir müssen den Konfigurationspunkt check_policy_service unix:private/policy-spf noch dem smtpd_recipient_restrictions-Block in ebendieser Datei hinzufügen.

Meine smtpd_recipient_restrictions sieht so aus:

smtpd_recipient_restrictions =
    permit_sasl_authenticated,
    reject_invalid_hostname,
    reject_unknown_recipient_domain,
    reject_unauth_destination,
    reject_rbl_client sbl.spamhaus.org,
    check_policy_service unix:private/policy-spf,
    permit

Die SPF-Überprüfung sollte immer nach der allgemeinen Abweisung von unauthentifizierten Benutzern stattfinden, da es sonst zu false positives führen kann, die aus dem Mailserver ein open relay machen.

Zu guter Letzt muss für SPF noch ein TXT-Pointer auf eure Domain in den DNS-Einstellungen eures Providers vorgenommen werden.

"v=spf1 a mx ip4:<IPv4-Adresse> ip6:<IPv6-Adresse> ~all"

Die Angabe der IP-Adressen ist nicht notwendig, sollte aber vorgenommen werden, damit Google eure Mails nicht mit einem Softfail versieht.

Sollte es zu Timeouts während der Aushandlung kommen, könnt ihr noch ein

policy-spf_time_limit = 3600s

in die main.cf schreiben.

Schritt 2: Installation und Einrichtung der DomainKeys Identified Mail Signatures

Der zweite Schritt darin, nicht (mehr) als Spammer von großen E-Mail-Anbietern gekennzeichnet zu werden, sind die DKIM Signaturen. Diese verbinden euren Mail-Server mit eurem Hostname. Somit kann nach vollzogen werden, ob die Mail auch wirklich von diesem Server kommt.

Starten kann man die Installation mit

apt-get install opendkim opendkim-tools

Damit DKIM korrekt angeboten wird, müssen wir ein Schlüsselpaar erzeugen (DKIM verwendet zur Autorisation assymetrische Verschlüsselungen). Den öffentlichen Schlüssel legen wir in den DNS-Eintrag des Servers. Nach der Installation editieren wir die /etc/opendkim.conf und stellen sicher, dass sie folgende Werte enthält:

KeyTable            /etc/opendkim/KeyTable
SigningTable       /etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts      /etc/opendkim/TrustedHosts
LogWhy yes

Erstellt das Verzeichnis /etc/opendkim wenn es noch nicht existiert. In diesem Verzeichnes erstellt die Datei TrustedHosts und tragt alle Domains oder die IP-Adressen ein. Das Ganze sieht dann in etwa so aus:

127.0.0.1
 localhost
 example.com
 123.123.123.123
 231.231.231.23

Danach editiert ihr folgende Zeile

SOCKET="inet:12345@localhost" # listen on loopback on port 12345

in der Datei /etc/default/opendkim.

Um openDKIM nun mit eurem Postfix-Server sprechen zu lassen, fügen wir folgenden Block in die /etc/postfix/main.cf an:

# DKIM
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12345
non_smtpd_milters = inet:localhost:12345

Nun müssen wir ein Schlüsselpaar für den Mail-Server erstellen. Dazu verwenden wir den mitgelieferten Keygenerator von openDKIM. Diese Befehle sind ebenso selbsterklärend.

root@excontinuum:~# mkdir -p /etc/opendkim/keys/excontinuum.de
root@excontinuum:~# cd /etc/opendkim/keys/excontinuum.de/
root@excontinuum:/etc/opendkim/keys/excontinuum.de# opendkim-genkey -s default -d excontinuum.de
root@excontinuum:/etc/opendkim/keys/excontinuum.de# chown opendkim:opendkim default.private 

Danach müssen die erstellten Keys der Datei /etc/opendkim/KeyTable hinzugefügt werden. Im Folgenden für die Domain dieses Servers:

default._domainkey.excontinuum.de excontinuum.de:default:/etc/opendkim/keys/excontinuum.de/default.private

 

Und der folgende Teil in die /etc/opendkim/SigningTable:

excontinuum.de default._domainkey.excontinuum.de

Eure erstellten Keys könnt ihr mit

cat /etc/opendkim/keys/mydomain.com/default.txt

einsehen. Den String, den ihr durch den Befehl zurück kommt, müsst ihr als TXT Record eurer Domain hinzufügen. Mit dem langen Hash, etc.
Mit Dig könnt ihr überprüfen, ob der Record korrekt gesetzt wurde. Die Suche von Dig müsste einen „Answer“-Bereich enthalten, der den selben Inhalt hat, wie die default.txt.

Schritt 3: DKIM-Konfiguration testen

Zum einen kann man an check-auth@verifier.port25.com eine leere E-Mail schreiben, in der man einen SPF/DKIM-Report zurückbekommen soll. Das hat bei mir nicht funktioniert. Zum Anderen kann man mail-tester.com verwenden. Das funktioniert ziemlich gut!

DMARC konfigurieren:

Wenn SPF und DKIM konfiguriert sind, sollte man den einfachen und von vielen E-Mail-Providern bevorzugten DMARC-Eintrag dem DNS-Eintrag hinzufügen.

Erstellt dafür einfach einen neuen TXT-Eintrag mit

_dmarc IN TXT "v=DMARC1; p=none"

als Inhalt.

Reverse DNS:

Zu guter Letzt überprüfen wir, ob es bereits einen rDNS-Eintrag für die IP-Adresse gibt, auf der euer Mail-Server hört. (dig -x +short <IP-Adresse>)

Sollte das nicht der Fall sein, fügt einen PTR-Record eurer DNS-Konfiguration mit der gedrehten IP hinzu.

Schritt 4: SpamAssassin

Da der SpammAssassin bereits installiert und konfiguriert war, entfällt dieser Teil.

 

 

Das wars. Wenn alles funktioniert hat, müsstet ihr nun per SPF und DKIM authentifizierte E-Mails versenden können!

— Temeraire

Tagged , , , , ,

Schreibe einen Kommentar

Zur Werkzeugleiste springen