Zuvor habe ich Ihnen gezeigt, wie Sie SPF und DKIM auf dem CentOS/RHEL-Mailserver einrichten. Zwei gängige Softwareteile, die DKIM-Signaturen und -Verifizierungen unter Linux durchführen können, sind OpenDKIM und Amavis. In diesem Tutorial habe ich Amavis verwendet, da OpenDKIM derzeit in keinem CentOS 8/RHEL 8-Repository enthalten ist. Ab sofort ist OpenDKIM im EPEL-Repository enthalten. Einige Leute ziehen es vor, OpenDKIM zu verwenden, also werde ich Ihnen in diesem Tutorial zeigen, wie.
Was ist DKIM?
DKIM (DomainKeys Identified Mail) ist eine Art von TXT-Einträgen im DNS, die dabei helfen können, E-Mail-Spoofing zu verhindern und legitime E-Mails in den Posteingang des Empfängers statt in den Spam-Ordner zuzustellen. DKIM verwendet einen privaten Schlüssel zum Hinzufügen einer Signatur zu E-Mails, die von Ihrer Domain gesendet werden . Empfangende SMTP-Server verifizieren die Signatur mithilfe des entsprechenden öffentlichen Schlüssels, der in den DNS-Einträgen Ihrer Domain veröffentlicht wird.
DKIM in Amavis deaktivieren
Wenn Sie meinem vorherigen Amavis-Tutorial gefolgt sind, aber jetzt OpenDKIM verwenden möchten, müssen Sie DKIM in Amavis deaktivieren. Bearbeiten Sie die Hauptkonfigurationsdatei.
sudo nano /etc/amavisd/amavisd.conf
Suchen Sie die folgenden Zeilen.
$enable_dkim_verification = 1; # enable DKIM signatures verification $enable_dkim_signing = 1; # load DKIM signing code, keys defined by dkim_key
Fügen Sie ein #
hinzu Zeichen am Anfang jeder Zeile, um sie auszukommentieren.
#$enable_dkim_verification = 1; # enable DKIM signatures verification #$enable_dkim_signing = 1; # load DKIM signing code, keys defined by dkim_key
Speichern und schließen Sie die Datei. Starten Sie dann Amavis neu.
sudo systemctl restart amavisd
Schritt 1:OpenDKIM auf CentOS 8/RHEL8 installieren und konfigurieren
Aktivieren Sie zuerst das EPEL-Repository (Extra Packages for Enterprise Linux) und installieren Sie OpenDKIM.
sudo dnf install epel-release sudo dnf install opendkim
Bearbeiten Sie die Hauptkonfigurationsdatei von OpenDKIM.
sudo nano /etc/opendkim.conf
Suchen Sie die folgende Zeile.
Mode v
Standardmäßig läuft OpenDKIM im Verifizierungsmodus (v), der die DKIM-Signatur eingehender E-Mail-Nachrichten überprüft. Wir müssen ausgehende E-Mails signieren, also ändern Sie diese Zeile wie folgt, um den Signiermodus zu aktivieren.
Mode sv
Suchen Sie dann die folgenden Zeilen.
## Specifies whether or not the filter should generate report mail back ## to senders when verification fails and an address for such a purpose ## is provided. See opendkim.conf(5) for details. SendReports yes ## Specifies the sending address to be used on From: headers of outgoing ## failure reports. By default, the e-mail address of the user executing ## the filter is used ([email protected]). # ReportAddress "Example.com Postmaster" <[email protected]>
Wenn eine Signaturüberprüfung fehlschlägt und die Signatur eine Berichtsanforderung („r=y“) enthielt und die signierende Domain eine Berichtsadresse (d. h. ra=Benutzer) in einem Berichtsdatensatz im DNS ankündigt, sendet OpenDKIM einen strukturierten Bericht an diese Adresse mit Details, die zum Reproduzieren des Problems erforderlich sind. Möglicherweise möchten Sie eine bestimmte Absender-E-Mail-Adresse verwenden, um den Bericht zu senden. Kommentieren Sie ReportAddress
aus Parameter und E-Mail-Adresse ändern. Beachten Sie, dass dies nicht zu dem Backscatter-Problem führt, da Berichts-E-Mails an eine E-Mail-Adresse gesendet werden, die im DNS-Eintrag der Absenderdomäne angegeben ist.
Suchen Sie die folgende Zeile und kommentieren Sie sie aus, da wir separate Schlüssel für jeden Domainnamen verwenden werden.
KeyFile /etc/opendkim/keys/default.private
Suchen Sie als Nächstes die folgenden 4 Zeilen und kommentieren Sie sie aus.
# KeyTable /etc/opendkim/KeyTable # SigningTable refile:/etc/opendkim/SigningTable # ExternalIgnoreList refile:/etc/opendkim/TrustedHosts # InternalHosts refile:/etc/opendkim/TrustedHosts
Speichern und schließen Sie die Datei.
Schritt 2:Signaturtabelle, Schlüsseltabelle und Trusted-Hosts-Datei erstellen
Bearbeiten Sie die Unterzeichnungstabelle Datei.
sudo nano /etc/opendkim/SigningTable
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu. Dies teilt OpenDKIM mit, dass ein Absender auf Ihrem Server einen @your-domain.com
verwendet -Adresse, dann sollte sie mit dem privaten Schlüssel signiert werden, der durch 20200308._domainkey.your-domain.com
identifiziert wird .
*@your-domain.com 20200308._domainkey.your-domain.com
20200308 ist der DKIM-Selektor. Ein Domänenname kann mehrere DKIM-Schlüssel haben. Mit dem DKIM-Selektor können Sie einen bestimmten DKIM-Schlüssel auswählen. Sie können einen beliebigen Namen für den DKIM-Selektor verwenden, aber ich fand es praktisch, das aktuelle Datum (8. März 2020) als DKIM-Selektor zu verwenden. Speichern und schließen Sie die Datei. Bearbeiten Sie dann die Schlüsseltabelle Datei.
sudo nano /etc/opendkim/KeyTable
Fügen Sie die folgende Zeile hinzu, die den Speicherort des privaten DKIM-Schlüssels angibt.
20200308._domainkey.your-domain.com your-domain.com:20200308:/etc/opendkim/keys/your-domain.com/20200308.private
Speichern und schließen Sie die Datei. Bearbeiten Sie als Nächstes die Datei für vertrauenswürdige Hosts.
sudo nano /etc/opendkim/TrustedHosts
127.0.0.0.1 und ::1 sind standardmäßig in dieser Datei enthalten. Fügen Sie nun die folgende Zeile hinzu. Dies teilt OpenDKIM mit, dass OpenDKIM keine DKIM-Verifizierung für die E-Mail durchführen sollte, wenn eine E-Mail von Ihrem eigenen Domänennamen stammt.
*.your-domain.com
Speichern und schließen Sie die Datei.
Schritt 3:Privates/öffentliches Schlüsselpaar generieren
Da DKIM verwendet wird, um ausgehende Nachrichten zu signieren und eingehende Nachrichten zu verifizieren, müssen wir einen privaten Schlüssel zum Signieren und einen öffentlichen Schlüssel für die Remote-Verifizierung generieren. Der öffentliche Schlüssel wird im DNS veröffentlicht.
Erstellen Sie einen separaten Ordner für die Domain.
sudo mkdir /etc/opendkim/keys/your-domain.com
Generieren Sie Schlüssel mit opendkim-genkey
Werkzeug.
sudo opendkim-genkey -b 2048 -d your-domain.com -D /etc/opendkim/keys/your-domain.com -s 20200308 -v
Der obige Befehl erstellt 2048-Bit-Schlüssel. -d (domain)
gibt die Domäne an. -D (directory)
gibt das Verzeichnis an, in dem die Schlüssel gespeichert werden. Ich verwende 20200308
als DKIM-Selektor. Sobald der Befehl ausgeführt wird, wird der private Schlüssel in 20200308.private
geschrieben Datei und der öffentliche Schlüssel wird in 20200308.txt
geschrieben Datei.
Standardmäßig kann nur root die Schlüsseldateien lesen und schreiben. Machen Sie opendkim
als Eigentümer des privaten Schlüssels.
sudo chown opendkim:opendkim /etc/opendkim/keys/ -R
Schritt 4:Veröffentlichen Sie Ihren öffentlichen Schlüssel in DNS-Einträgen
Anzeige des öffentlichen Schlüssels
sudo cat /etc/opendkim/keys/your-domain.com/20200308.txt
Die Zeichenfolge nach dem p
Parameter ist der öffentliche Schlüssel.
Erstellen Sie in Ihrem DNS-Manager einen TXT-Eintrag, geben Sie 20200308._domainkey
ein im Namensfeld. (Sie müssen 20200308 durch Ihren eigenen DKIM-Selektor ersetzen.) Gehen Sie dann zurück zum Terminalfenster, kopieren Sie alles in den Klammern und fügen Sie es in das Wertfeld des DNS-Eintrags ein. Sie müssen alle doppelten Anführungszeichen und Zeilenumbrüche im Wertfeld löschen. Wenn Sie sie nicht löschen, wird der Schlüsseltest im nächsten Schritt wahrscheinlich fehlschlagen.
Schritt 5:DKIM-Schlüssel testen
Geben Sie den folgenden Befehl auf Ihrem CentOS 8/RHEL 8-Server ein, um Ihren Schlüssel zu testen.
sudo opendkim-testkey -d your-domain.com -s 20200308 -vvv
Wenn alles in Ordnung ist, sehen Sie die key OK
Nachricht.
opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key '20200308._domainkey.linuxbabe.com' opendkim-testkey: key OK
Beachten Sie, dass Ihr DKIM-Eintrag möglicherweise einige Zeit benötigt, um im Internet verbreitet zu werden. Abhängig von der von Ihnen verwendeten Domänenregistrierungsstelle wird Ihr DNS-Eintrag möglicherweise sofort weitergegeben oder es kann bis zu 24 Stunden dauern, bis er weitergegeben wird. Sie können zu https://www.dmarcanalyzer.com/dkim/dkim-check/ gehen und 20200308
eingeben als Selektor und geben Sie Ihren Domänennamen ein, um die DKIM-Eintragsweitergabe zu überprüfen.
Wenn Sie „Schlüssel nicht sicher“ sehen, geraten Sie nicht in Panik. Dies liegt daran, dass DNSSEC für Ihren Domainnamen nicht aktiviert ist. DNSSEC ist ein Sicherheitsstandard für sichere DNS-Abfragen. Die meisten Domainnamen haben DNSSEC nicht aktiviert. Sie können dieser Anleitung weiterhin folgen.
Jetzt können wir den opendkim-Dienst starten.
sudo systemctl start opendkim
Und aktivieren Sie den automatischen Start beim Booten.
sudo systemctl enable opendkim
OpenDKIM lauscht auf 127.0.0.1:8891
.
Schritt 6:Verbinden Sie Postfix mit OpenDKIM
Postfix-Hauptkonfigurationsdatei bearbeiten.
sudo nano /etc/postfix/main.cf
Fügen Sie am Ende dieser Datei die folgenden Zeilen hinzu, damit Postfix OpenDKIM über das Milter-Protokoll aufrufen kann. Beachten Sie, dass Sie 127.0.0.1
verwenden sollten als Adresse. Verwenden Sie nicht localhost
.
# Milter configuration milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $smtpd_milters
Speichern und schließen Sie die Datei. Fügen Sie dann postfix
hinzu Benutzer zu opendkim
Gruppe.
sudo gpasswd -a postfix opendkim
Starten Sie postfix
neu Dienst.
sudo systemctl restart postfix
Schritt 7:SPF- und DKIM-Prüfung
Jetzt können Sie Ihren Desktop-E-Mail-Client oder Webmail-Client verwenden, um eine Test-E-Mail an [email protected]
zu senden und erhalten Sie einen kostenlosen E-Mail-Authentifizierungsbericht. Hier ist der Bericht, den ich von port25.com erhalten habe.
Sie können auch eine Test-E-Mail von Ihrem Mailserver an Ihr Google Mail-Konto senden, um zu sehen, ob die SPF- und DKIM-Prüfungen bestanden werden. Auf der rechten Seite einer geöffneten E-Mail-Nachricht in Gmail, wenn Sie auf show original
klicken Schaltfläche aus dem Dropdown-Menü können Sie die Authentifizierungsergebnisse sehen.
Wenn Ihre Nachricht nicht signiert ist und die DKIM-Prüfung fehlgeschlagen ist, sollten Sie das Postfix-Protokoll überprüfen (/var/log/maillog
), um zu sehen, was in Ihrer Konfiguration falsch ist.
Ihr E-Mail-Server führt auch eine DKIM-Verifizierung für eingehende E-Mails durch. Sie können die Ergebnisse in den E-Mail-Kopfzeilen sehen. Das Folgende ist eine SPF- und DKIM-Prüfung eines Absenders, der Gmail verwendet.
Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::c2d; helo=mail-yw1-xc2d.google.com; [email protected]; receiver=<UNKNOWN> Authentication-Results: email.linuxbabe.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com [email protected] header.b="XWMRd2co"; dkim-atps=neutral
So konfigurieren Sie OpenDKIM für mehrere Domains
Ich habe eine Anleitung zum Hosten mehrerer Domains auf CentOS 8/RHEL 8-Mailservern mit PostfixAdmin geschrieben. In diesem Artikel habe ich Amavis zum Signieren und Verifizieren von DKIM verwendet. Wenn Sie OpenDKIM verwenden, müssen Sie Schritt 3 in diesem Artikel überspringen.
Um OpenDKIM für mehrere Domänen zu konfigurieren, müssen Sie die anderen Domänen in der Signaturtabelle, der Schlüsseltabelle und der Datei für vertrauenswürdige Hosts wie unten beschrieben hinzufügen.
Signiertabelle:
*@domain1.com 20200308._domainkey.domain1.com *@domain2.com 20200308._domainkey.domain2.com
Schlüsseltabelle:
20200308._domainkey.domain1.com domain1.com:20200308:/etc/opendkim/keys/domain1.com/20200308.private 20200308._domainkey.domain2.com domain2.com:20200308:/etc/opendkim/keys/domain2.com/20200308.private
Vertrauenswürdige Hosts:
127.0.0.1 localhost *.domain1.com *.domain2.com
Generieren Sie dann das private/öffentliche DKIM-Schlüsselpaar und fügen Sie den öffentlichen DKIM-Schlüssel in DNS hinzu, wie in Schritt 3, Schritt 4 und Schritt 5 für andere Domains erwähnt. Starten Sie OpenDKIM neu und Sie sind fertig.
sudo systemctl restart opendkim
Nächster Schritt
Ich hoffe, dieses Tutorial hat Ihnen geholfen, OpenDKIM auf dem Mailserver CentOS 8/RHEL 8 zu installieren und zu konfigurieren. Jetzt möchten Sie vielleicht das folgende Tutorial lesen, um OpenDMARC zum Blockieren von E-Mail-Spoofing einzurichten.
- Richten Sie OpenDMARC mit Postfix auf CentOS/RHEL ein, um E-Mail-Spoofing zu blockieren
Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten. Pass auf dich auf 🙂