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
Read More