GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Installieren und konfigurieren Sie OpenDKIM auf dem Mailserver CentOS 8/RHEL 8

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 🙂


Cent OS
  1. So installieren Sie den Postfix-Mailserver auf RHEL 8 / CentOS 8

  2. Installieren und konfigurieren Sie HAProxy unter RHEL 8 / CentOS 8 Linux

  3. FTP-Server unter CentOS 7 / RHEL 7 installieren und konfigurieren – (vsftpfd)

  4. CentOS / RHEL 7:So installieren und konfigurieren Sie den FTP-Server (vsftpd)

  5. CentOS / RHEL 5 :So installieren und konfigurieren Sie den vsftpd-Server

So installieren und konfigurieren Sie den VNC-Server in CentOS 7 / RHEL 7

Check_MK Server auf CentOS 7 installieren und konfigurieren

Teil 4:SPF und DKIM mit Postfix auf CentOS 8/RHEL 8 Mailserver einrichten

So installieren und konfigurieren Sie den OpenVPN-Server in CentOS 8/7

So installieren und konfigurieren Sie den VNC (TigerVNC)-Server in CentOS / RHEL 7

So installieren und konfigurieren Sie VNC Server unter CentOS/RHEL 8