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

Richten Sie OpenDMARC mit Postfix auf CentOS/RHEL ein, um E-Mail-Spoofing zu blockieren

In früheren Artikeln haben wir mehrere effektive Tipps zum Blockieren von E-Mail-Spam besprochen. Dieses Tutorial zeigt Ihnen, wie Sie OpenDMARC mit Postfix-SMTP-Server auf CentOS/RHEL einrichten, um E-Mail-Spoofing und Spam zu blockieren. OpenDMARC ist ein Open-Source-DMARC-E-Mail-Richtlinienfilter für MTAs (Message Transport Agent, auch bekannt als SMTP-Server).

Was ist DMARC

DMARC (Domain-based Message Authentication, Reporting and Conformance) ist ein Internetstandard (RFC 7489), der es Domainbesitzern ermöglicht, zu verhindern, dass ihre Domainnamen von E-Mail-Spoofern verwendet werden. Bevor DMARC erfunden wurde, war es für Angreifer sehr einfach, den Domainnamen anderer Personen in der Absenderadresse zu verwenden.

Wenn ein Domaininhaber einen DMARC-DNS-Eintrag für seinen Domainnamen erstellt hat und ein empfangender E-Mail-Server die DMARC-Verifizierung implementiert hat, müssen Angreifer die SPF- oder DKIM-Ausrichtung bestehen, um die DMARC-Verifizierung zu bestehen. Wenn die DMARC-Prüfung fehlschlägt, könnte die gefälschte E-Mail abgelehnt werden. Niemals von Endbenutzern gesehen werden. Es ist für den Angreifer schwierig, SPF oder DKIM zu bestehen, es sei denn, der E-Mail-Server des Domaininhabers ist kompromittiert.

Beispiel für E-Mail-Spoofing

Ein Spammer hat mir mit winsaaluminyumankara.com eine Lösegeld-E-Mail geschickt in der Von-Adresse. Die Whois-Informationen von winsaaluminyumankara.com ist öffentlich. Der Spammer ist eindeutig nicht für diesen Domainnamen verantwortlich.

winsaaluminyumankara.com hat einen DMARC-Eintrag.

Dann habe ich die E-Mail-Header überprüft, die zeigen, dass SPF fehlgeschlagen ist. Es gibt keine DKIM-Signatur. Die DMARC-Prüfung schlägt also fehl. Dies ist eine gefälschte E-Mail.

Dies zeigt, dass nicht nur große Marken von E-Mail-Spoofern verwendet werden, sondern auch alle Domainnamen im Internet von Angreifern imitiert werden können. Leider lautet die DMARC-Richtlinie für diesen Domainnamen p=none , der den empfangenden E-Mail-Server anweist, nichts Besonderes zu tun, wenn die DMARC-Prüfung fehlschlägt. Wenn die Richtlinie p=reject ist , dann würde mein Postfix-SMTP-Server diese E-Mail mit OpenDMARC ablehnen.

Paypal und Facebook haben eine reject erstellt DMARC-Richtlinie für ihren Domainnamen.

Wenn also ein Angreifer versucht, Paypal oder Facebook zu fälschen, kann mein E-Mail-Server die gefälschte E-Mail mit OpenDMARC ablehnen. Es gibt viele andere bekannte Domainnamen, die einen reject bereitgestellt haben DMARC-Richtlinie, wie in der Tabelle unten zu sehen ist.

  • bankofamerica.com
  • yahoo.com
  • chase.com
  • wellsfargo.com
  • facebook.com
  • google.com
  • youtube.com
  • twitter.com
  • reddit.com
  • instagram.com
  • linkedin.com
  • medium.com
  • pinterest.com
  • dropbox.com
  • microsoft.com
  • whatsapp.com

Der sichere Postfachanbieter Protonmail verwendet Postfix und OpenDMARC, um DMARC-Prüfungen für eingehende E-Mails durchzuführen, und ich werde Ihnen zeigen, wie Sie dasselbe auf Ihrem eigenen Postfix-SMTP-Server tun können.

Voraussetzungen

Dieses Tutorial richtet sich an Postfachanbieter und alle, die einen eigenen Mailserver betreiben, um ihre Benutzer vor Betrug durch E-Mail-Spoofing zu schützen. Wenn Sie Inhaber eines Domainnamens sind und verhindern möchten, dass Ihr Domainname von E-Mail-Spoofern verwendet wird, lesen Sie bitte diesen Artikel, um einen DMARC-Eintrag zu erstellen und den DMARC-Bericht zu analysieren. Ich empfehle Ihnen auch, diesen Artikel zu lesen, wenn Sie DMARC nicht vollständig verstehen.

Sie sollten einen DKIM-Verifizierungsdienst auf Ihrem Mailserver ausführen, bevor Sie OpenDMARC einrichten. OpenDMARC sollte in Verbindung mit OpenDKIM verwendet werden. Wenn Sie Amavis zum Signieren und Verifizieren von DKIM verwenden, empfehle ich den Wechsel von Amavis zu OpenDKIM. Das liegt daran, dass OpenDMARC die DKIM-Verifizierungsergebnisse von Amavis nicht lesen kann. Sie müssen Amavis nicht vollständig deinstallieren. Deaktivieren Sie einfach DKIM in Amavis, installieren und konfigurieren Sie dann OpenDKIM.

Wenn Sie nicht auf OpenDKIM umsteigen möchten, müssen Sie Amavis mit Postfix über die Milter-Schnittstelle integrieren, was am Ende dieses Artikels erklärt wird.

Schritt 1:OpenDMARC auf CentOS/RHEL installieren und konfigurieren

OpenDMARC ist eine Open-Source-Software, die DMARC-Prüfungen und -Berichte durchführen kann. Sie können es auf CentOS/RHEL aus dem EPEL-Repository installieren.

sudo dnf install epel-release

sudo dnf install opendmarc

Starten Sie OpenDMARC.

sudo systemctl start opendmarc

Autostart beim Booten aktivieren.

sudo systemctl enable opendmarc

OpenDMARC lauscht auf 127.0.0.1:8893 . Führen Sie den folgenden Befehl aus, um seinen Status zu überprüfen.

systemctl status opendmarc

Ausgabe:

● opendmarc.service - Domain-based Message Authentication, Reporting & Conformance (DMARC) Milter
   Loaded: loaded (/usr/lib/systemd/system/opendmarc.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-03-08 23:52:59 EDT; 1min 4s ago
     Docs: man:opendmarc(8)
           man:opendmarc.conf(5)
           man:opendmarc-import(8)
           man:opendmarc-reports(8)
           http://www.trusteddomain.org/opendmarc/
 Main PID: 19987 (opendmarc)
    Tasks: 3 (limit: 5047)
   Memory: 1.1M
   CGroup: /system.slice/opendmarc.service
           └─19987 /usr/sbin/opendmarc -c /etc/opendmarc.conf -P /var/run/opendmarc/opendmarc.pid

Bearbeiten Sie dann die Hauptkonfigurationsdatei mit Ihrem Texteditor.

sudo nano /etc/opendmarc.conf

Suchen Sie die folgende Zeile:

# AuthservID name

Standardmäßig verwendet OpenDMARC den MTA-Hostnamen als AuthserveID, aber es ist besser, einen anderen Namen für den Authentifizierungsdienst zu verwenden, da Amavisd-new den von OpenDMARC hinzugefügten Authentifizierungsergebnis-Header überschreibt. Sie können es wie folgt ändern, wodurch Sie sehr einfach sehen können, welches Programm welchen Authentifizierungsergebnis-Header hinzufügt.

AuthservID OpenDMARC

Fügen Sie als Nächstes die folgende Zeile hinzu. Ersetzen Sie den Hostnamen durch Ihren echten Postfix-Hostnamen. Dies weist OpenDMARC an, dem Authentifizierungsergebnis mail.yourdomain.com zu vertrauen im Ausweis. Dies ist erforderlich, wenn OpenDKIM ausgeführt wird, um die DKIM-Verifizierung durchzuführen. Wenn der Postfix-Hostname nicht in den TrustedAuthservIDs enthalten ist , dann ignoriert OpenDMARC den von OpenDKIM generierten Authentication-Results-Header.

TrustedAuthservIDs mail.yourdomain.com

Suchen Sie dann die folgende Zeile.

# IgnoreAuthenticatedClients false

Ändern Sie den Wert in true zum Ignorieren von SMTP-Clients, die erfolgreich über SMTP AUTH authentifiziert wurden, einschließlich Desktop-/mobilen E-Mail-Clients, die ausgehende E-Mails über Port 587 senden.

IgnoreAuthenticatedClients true

Suchen Sie dann diese Zeile:

# RejectFailures false

Standardmäßig lehnt OpenDMARC keine E-Mails ab, die die DMARC-Prüfung nicht bestehen, selbst wenn die Richtlinie der Domain auf p=reject gesetzt ist . Wenn Sie es vorziehen, E-Mails abzulehnen, die DMARC nicht bestehen, prüfen Sie, ob die Richtlinie der Domain auf p=reject gesetzt ist , kommentieren Sie diese Zeile dann aus und ändern Sie false auf true .

RejectFailures true

Suchen Sie die folgende Zeile.

# RequiredHeaders  false

Ändern Sie es in:

RequiredHeaders    true

Dadurch werden E-Mails abgelehnt, die nicht den E-Mail-Header-Standards entsprechen, wie in RFC5322 beschrieben. Zum Beispiel, wenn eine eingehende E-Mail nicht From: hat Kopfzeile oder date: Kopfzeile, wird sie zurückgewiesen. Ein From:-Feld, aus dem kein Domainname extrahiert werden konnte, wird ebenfalls abgelehnt.

Standardmäßig ignoriert OpenDMARC unter CentOS/RHEL alle SPF-Ergebnisse in den E-Mail-Headern und führt selbst SPF-Prüfungen durch. Dies wird durch die folgenden zwei Parameter gesteuert.

SPFIgnoreResults true

SPFSelfValidate true

Wenn Sie es vorziehen, einen anderen SPF-Prüfdienst auf Ihrem Mailserver zu verwenden, dann weisen Sie OpenDMARC an, SPF-Ergebnissen in den E-Mail-Kopfzeilen zu vertrauen und SPF-Prüfungen nur durchzuführen, wenn es keine SPF-Ergebnisse in den Kopfzeilen finden kann.

SPFIgnoreResults false

SPFSelfValidate true

Speichern und schließen Sie die Datei. Starten Sie dann OpenDMARC neu, damit die Änderungen wirksam werden.

sudo systemctl restart opendmarc

Schritt 2:OpenDMARC mit Postfix-SMTP-Server integrieren

Wenn Sie OpenDKIM verwenden

Bearbeiten Sie die Hauptkonfigurationsdatei von Postfix.

sudo nano /etc/postfix/main.cf

Wenn Sie meinem DKIM-Tutorial unter CentOS 8/RHEL 8 gefolgt sind, sollten Sie Zeilen in dieser Datei wie unten haben. OpenDKIM lauscht auf 127.0.0.1:8891 .

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters

Jetzt müssen Sie nur noch den OpenDMARC-Socket hinzufügen, damit Postfix mit OpenDMARC kommunizieren kann. (Stellen Sie sicher, dass es nach dem OpenDKIM-Socket ist.) OpenDMARC lauscht auf 127.0.0.1:8893 .

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:127.0.0.1:8891,inet:127.0.0.1:8893
non_smtpd_milters = $smtpd_milters

Speichern und schließen Sie die Datei. Starten Sie dann Postfix neu, damit die Änderung wirksam wird.

sudo systemctl restart postfix

Wenn Sie Amavis verwenden

Wenn Sie Amavis für DKIM-Signaturen und -Verifizierungen wie in iRedMail verwenden , dann kann OpenDMARC die DKIM-Verifizierungsergebnisse von Amavis nicht lesen. Sie können OpenDKIM installieren, um die DKIM-Signatur zu überprüfen.

Installieren Sie OpenDKIM aus dem EPEL-Repository (Extra Packages for Enterprise Linux).

sudo dnf install epel-release

sudo dnf install opendkim

Standardmäßig ist das opendkim -Paket auf CentOS/RHEL wird nur im Überprüfungsmodus ausgeführt. Ausgehenden E-Mails werden keine DKIM-Signaturen hinzugefügt. Das wollen wir, weil Amavis DKIM-Signaturen hinzufügen wird. OpenDKIM-Konfigurationsdatei bearbeiten.

sudo nano /etc/opendkim.conf

Suchen Sie die folgende Zeile.

KeyFile   /etc/opendkim/keys/default.private

Da wir nicht möchten, dass OpenDKIM ausgehende E-Mails signiert, müssen wir diese Zeile auskommentieren und dann die Datei speichern und schließen.

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,inet:127.0.0.1:8893
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

Jetzt können wir den opendkim-Dienst starten.

sudo systemctl start opendkim

Und aktivieren Sie den automatischen Start beim Booten.

sudo systemctl enable opendkim

Schritt 3:OpenDMARC-Verifizierung testen

Senden Sie nun eine E-Mail von Ihrer anderen E-Mail-Adresse an Ihre Domain-Adresse. Überprüfen Sie danach die E-Mail-Kopfzeilen. Wenn OpenDMARC korrekt funktioniert, können Sie die DMARC-Verifizierungsergebnisse wie unten sehen.

Authentication-Results: OpenDMARC; dmarc=pass (p=none dis=none) header.from=gmail.com

Ich habe eine E-Mail von meinem Google Mail-Konto an meine Domain-E-Mail-Adresse gesendet und sie hat die DMARC-Verifizierung bestanden. Wenn Sie diesen E-Mail-Header nicht sehen, überprüfen Sie Ihre E-Mail-Protokolle.

sudo nano /var/log/maillog

Sie werden etwas wie unten sehen, was bedeutet, dass OpenDMARC funktioniert.

opendmarc[26495]: 61DAA3EA44: gmail.com pass

Wenn Sie die folgende Meldung sehen.

ignoring Authentication-Results at 1 from mail.linuxbabe.com

Dies bedeutet, dass OpenDMARC die SPF- und DKIM-Verifizierungsergebnisse ignoriert, sodass OpenDMARC nicht funktioniert. Sie müssen die folgende Zeile in /etc/opendmarc.conf hinzufügen Datei, und starte dann OpenDMARC neu.

TrustedAuthservIDs mail.yourdomain.com

Wenn Sie den Postfix myhostname ändern Denken Sie daran, den neuen Hostnamen zu TrustedAuthservIDs hinzuzufügen. Sie können mehrere Hostnamen durch Komma getrennt hinzufügen.

TrustedAuthservIDs mail.yourdomain.com,mail2.yourdomain.com

Testen von OpenDMARC mit Telnet

Sie können Telnet verwenden, um einen anderen Domänennamen wie paypal.com vorzutäuschen. Führen Sie zunächst den folgenden Befehl aus, um eine Verbindung zu Port 25 Ihres Mailservers herzustellen.

telnet mail.yourdomain.com 25

Verwenden Sie dann die folgenden Schritte, um eine gefälschte E-Mail zu senden. (Sie geben die fettgedruckten Texte ein.)

HELO mail.paypal.com
250 mail.yourdomain.com
MAIL FROM:<[email protected]>
250 2.1.0 Ok
RCPT TO:<[email protected]>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From:     [email protected]
To:       [email protected]
Subject:  Please update your password.

Click this link to update your password.
.
550 5.7.1 rejected by DMARC policy for paypal.com
quit

Wie Sie sehen können, hat mein Mailserver diese E-Mail abgelehnt, weil sie die DMARC-Prüfung nicht bestanden hat und Paypal einen p=reject bereitgestellt hat Richtlinie.

Hinweis: Wenn die DMARC-Richtlinie einer Domain auf p=quarantine gesetzt ist , dann wird OpenDMARC Milter die gefälschte E-Mail in die Postifx Hold Queue stellen unbegrenzt. Der Postmaster kann mit postqueue -p alle Nachrichten in der Warteschlange auflisten Befehl und verwenden Sie den postsuper Befehlszeilenprogramm zum Freigeben von Nachrichten in der Warteschleife.

(Optional) Integrieren Sie Amavis mit Postfix über Milter

Wie im Abschnitt Voraussetzungen erklärt, empfehle ich den Wechsel von Amavis zu OpenDKIM, aber wenn Sie nicht wechseln möchten, müssen Sie Amavis mit Postfix über die Milter-Schnittstelle integrieren, damit OpenDMARC das DKIM-Verifizierungsergebnis von Amavis lesen kann.

Installieren Sie den amavisd-milter Paket auf CentOS/RHEL.

sudo dnf install amavisd-milter

Starten Sie den Dienst.

sudo systemctl start amavisd-milter

Autostart beim Booten aktivieren.

sudo systemctl enable amavisd-milter

Amavisd-milter lauscht auf dem Unix-Socket unter /run/amavisd/amavisd-milter.sock . Postfix-Hauptkonfigurationsdatei bearbeiten.

sudo nano /etc/postfix/main.cf

Fügen Sie die folgenden Zeilen am Ende der Datei hinzu. Beachten Sie, dass Sie den amavisd-milter Unix-Socket vor dem OpenDMARC-TCP-Socket platzieren sollten.

# Milter configuration
milter_default_action = accept
milter_protocol = 6
smtpd_milters = unix:/run/amavisd/amavisd-milter.sock,inet:127.0.0.1:8893
non_smtpd_milters = $smtpd_milters

Kommentieren Sie auch die folgende Zeile aus, damit Postfix eingehende E-Mails nicht zweimal an Amavis weiterleitet.

content_filter = smtp-amavis:[127.0.0.1]:10024

Speichern und schließen Sie die Datei. Fügen Sie dann postfix hinzu zu den amavis Gruppe, damit Postfix auf den Amavis-Unix-Socket zugreifen kann.

sudo gpasswd -a postfix amavis

Ausgehende E-Mails von authentifizierten Benutzern sollten nicht über die Milter-Schnittstelle an Amavis weitergeleitet werden, da Amavis keine DKIM-Signatur hinzufügt. Sie sollten 127.0.0.1:10026 verwenden wie gewohnt, sodass die DKIM-Signatur hinzugefügt wird. Bearbeiten Sie die Postfix-Datei master.cf.

sudo nano /etc/postfix/master.cf

Suchen Sie die submission Komponente. Es sollte wie folgt aussehen, wenn Sie meinem Amavis-Tutorial zu CentOS/RHEL gefolgt sind.

submission     inet     n    -    y   -    -    smtpd
 -o syslog_name=postfix/submission
 -o smtpd_tls_security_level=encrypt
 -o smtpd_tls_wrappermode=no
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
 -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
 -o smtpd_sasl_type=dovecot
 -o smtpd_sasl_path=private/auth
 -o content_filter=smtp-amavis:[127.0.0.1]:10026

Fügen Sie nun am Ende die folgende Option hinzu.

-o smtpd_milters=

So:

submission     inet     n    -    y   -    -    smtpd
 -o syslog_name=postfix/submission
 -o smtpd_tls_security_level=encrypt
 -o smtpd_tls_wrappermode=no
 -o smtpd_sasl_auth_enable=yes
 -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
 -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
 -o smtpd_sasl_type=dovecot
 -o smtpd_sasl_path=private/auth
 -o content_filter=smtp-amavis:[127.0.0.1]:10026
 -o smtpd_milters=

Dadurch verwendet der Postfix-Übermittlungsdienst überhaupt keinen Milter, sodass von authentifizierten Benutzern übermittelte E-Mails nicht über die Milter-Schnittstelle an Amavis weitergeleitet werden. Beachten Sie, dass vor dem Gleichheitszeichen (=) kein Leerzeichen eingefügt werden darf.

Sie sollten diese Zeile auch zum smtps hinzufügen Komponente.

smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o content_filter=smtp-amavis:[127.0.0.1]:10026
  -o smtpd_milters=

Speichern und schließen Sie die Datei. Starten Sie Postfix neu, damit die Änderungen wirksam werden.

sudo systemctl restart postfix

Jetzt kann OpenDMARC das DKIM-Verifizierungsergebnis von Amavis lesen, und Amavis wird weiterhin DKIM-Signaturen für authentifizierte Benutzer hinzufügen.


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

  2. RHEL 8 / CentOS 8 öffnen FTP-Port 21 mit Firewalld

  3. So legen Sie den Hostnamen in CentOS 7 / RHEL 7 fest oder ändern ihn

  4. So installieren und integrieren Sie DKIM mit OpenDKIM und Postfix auf einem CentOS 6 VPS

  5. So legen Sie einen benutzerdefinierten Schnittstellennamen mit NetworkManager in CentOS/RHEL 7 fest

So richten Sie mit iRedMail ganz einfach einen voll ausgestatteten Mailserver unter CentOS 7 ein

So richten Sie mit iRedMail ganz einfach einen voll ausgestatteten Mailserver unter CentOS 8 ein

Richten Sie SpamAssassin auf CentOS/RHEL ein, um E-Mail-Spam zu blockieren

7 effektive Tipps zum Blockieren von E-Mail-Spam mit Postfix auf CentOS/RHEL

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

So richten Sie ein IPsec-basiertes VPN mit Strongswan unter CentOS/RHEL 8 ein