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

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

15:59, 15.12.2023

Artikel Inhalt
arrow

  • Verständnis von Spam
  • Tipp Nr. 1: Erfordern Sie PTR-Einträge für SMTP-Clients
  • Tipp Nr. 2: Implementieren Sie HELO/EHLO-Hostnamen-Beschränkungen
  • Tipp Nr. 3: Überprüfen Sie A-Einträge für SMTP-Client-Hostnamen
  • Tipp Nr. 4: Ablehnen von E-Mails mit unzureichenden MX- oder A-Einträgen
  • Tipp Nr. 5: Einsatz von Greylisting mit Postfix
  • Tipp Nr. 6: Verwenden Sie öffentliche Echtzeit-Blacklists
  • Tipp Nr. 7: Erhöhen Sie die Sicherheit mit OpenDMARC
  • Beschleunigung von DNS-Suchvorgängen mit einem lokalen Resolver
  • Konfigurieren des Standard-DNS-Auflösers für CentOS/RHEL Mail Server
  • Deaktivieren von IPv6 in BIND

Was bedeutet E-Mail-Spam eigentlich? Wie funktioniert er? Warum bekommen Sie so viel Spam?

Kurz gesagt, E-Mail-Spam ist unerwünschte E-Mail. Ein ständig überfüllter persönlicher Posteingang kann frustrierend sein. Außerdem können nutzlose oder betrügerische E-Mails, die zum Spam-Konzept gehören, Ihr Unternehmen auf lange Sicht Geld kosten.

Viele Tools können Ihnen bei der effektiven Bekämpfung von Spam helfen, darunter Postfix.

Der Postfix SMTP-Server auf CentOS/RHEL ermöglicht es, Spam-Mails zu blockieren, bevor sie den Posteingang erreichen.

Sehen wir uns an, was Spam ist und wie man ihn mit Postfix auf CentOS/RHEL stoppen kann.

Verständnis von Spam

Bei E-Mail-Spam handelt es sich im Grunde um unerwünschte E-Mails, die der Nutzer über seine E-Mail-Adresse erhält. Leider ist E-Mail-Spam kein neues Konzept, denn es gibt ihn schon seit einiger Zeit. Es gibt Milliarden von Spam-E-Mails, die Nutzer täglich erhalten.

E-Mail-Spam wird häufig mit Hilfe von Software, die automatisch E-Mails generiert und versendet, an eine große Gruppe von Personen verschickt. E-Mail-Spam kann aber auch manuell versendet werden.

Es gibt gängige Arten von E-Mail-Spam, darunter:

  • Werbe-E-Mails. In solchen E-Mails werden kommerzielle Produkte oder Dienstleistungen gegen eine Provision des Werbenden beworben. E-Mail-Spam kann Links zu Websites mit ähnlichem Inhalt oder Angebote von Waren und Dienstleistungen enthalten, die nicht direkt mit Ihren Interessen in Verbindung stehen.
  • Viren. Viren sind bösartige Programme, die das Betriebssystem infizieren und persönliche Daten stehlen. E-Mail-Viren können bösartigen Code enthalten, der das System infiziert.
  • Phishing-E-Mails. Beim Phishing werden betrügerische E-Mails verschickt, die darauf abzielen, die Benutzer zur Preisgabe ihrer privaten oder finanziellen Daten zu verleiten, damit die Betrüger sie für ihre Zwecke nutzen können. Phishing-E-Mails enthalten in der Regel einen Link zu einer anderen Website.

Auch hier verwenden Spammer oft automatisierte Programme (Bots), um Tausende von E-Mails auf einmal zu versenden. Das bedeutet, dass einige E-Mails in Ihrem Posteingang landen können, auch wenn Sie sich nie für Newsletter oder Werbeaktionen angemeldet haben.

Tipp Nr. 1: Erfordern Sie PTR-Einträge für SMTP-Clients

PTR-Datensätze oder Pointer-Datensätze sind umgekehrte DNS-Datensätze, die für die DNS-Suche verwendet werden.

Im Domain Name System (DNS) werden die Daten der registrierten Domains gespeichert. Wenn Sie die Registrierungen einsehen wollen, führen Sie eine DNS-Abfrage durch. Browser tun dies in der Regel, wenn Benutzer ihre E-Mail-Adressen eingeben, und erhalten dadurch die IP-Adresse eines Mail-Servers. Das Ergebnis einer solchen Abfrage ist normalerweise ein A-Eintrag.

Eine umgekehrte DNS-Abfrage liegt vor, wenn der Server die Domäne über eine IP-Adresse erhält. Das Ergebnis einer solchen Abfrage ist ein PTR-Eintrag.

Warum sind PTR-Einträge also so wichtig? Auf dem Weg zum E-Mail-Posteingang durchläuft die E-Mail Server. Dabei führen die E-Mail-Anbieter DNS- und Reverse-DNS-Abfragen durch. Wenn diese nicht übereinstimmen, wird eine E-Mail als Spam eingestuft. Daher verlangen E-Mail-Anbieter, dass SMTP-Clients über die richtigen PTR-Einträge verfügen; normalerweise ist dies die Aufgabe eines SMTP-Server-Administrators.

Nun können Sie selbst einen Reverse-DNS-Lookup durchführen. Fragen Sie dazu den folgenden Befehl unter CentOS/RHEL ab, um den Domänennamen und die IP-Adresse zu erhalten:

host <IP address>

Viele Mailserver verlangen gültige PTR-Einträge, die mit den IP-Adressen übereinstimmen. Wenn dies der Fall ist, wird im Postfix-Protokoll (/var/log/maillog) die folgende Zeile angezeigt, wenn der SMTP-Client PTR-Einträge hat:

Verbinden von "Hostname" [IP-Adresse]

Wenn die IP-Adresse des SMTP-Clients keine PTR-Einträge hat, steht im Postfix-Protokoll "unknown" anstelle eines "hostname".

Sie können E-Mails, die nicht mit PTR-Einträgen verknüpft sind, über Postfix filtern. Dazu müssen Sie die Postfix-Konfigurationsdatei mit dem folgenden Befehl öffnen:

sudo nano /etc/postfix/main.cf

Dann müssen Sie in den "smtpd_sender_restrictions" hinzufügen:

reject_unknown_reverse_client_hostname

Anschließend müssen Sie Postfix speichern und neu starten, damit die Änderungen wirksam werden:

sudo systemctl restart postfix

Tipp Nr. 2: Implementieren Sie HELO/EHLO-Hostnamen-Beschränkungen

Das EHLO-Verfahren ermöglicht es einem Client, sich dem SMTP-Server vorzustellen. Das HELO-Verfahren ist dem EHLO-Verfahren sehr ähnlich, übermittelt aber weniger Daten an den Server.

So kann es vorkommen, dass im SMTP-Dialog ein nicht existierender oder ein nicht voll funktionsfähiger Domänenname angegeben wird; dies deutet höchstwahrscheinlich auf eine E-Mail von Spammern hin. Sie müssen die Postfix-Konfigurationsdatei bearbeiten, um HELO/EHLO-Beschränkungen zu aktivieren:

sudo nano /etc/postfix/main.cf

Damit der Client eine Hostname-Abfrage stellen kann, muss Folgendes geschehen:

smtpd_helo_required = ja

Um Einschränkungen zu aktivieren, fügen Sie hinzu:

smtpd_helo_restrictions =
zulassungs_mynetworks
permit_sasl_authenticated

Wenn Sie Clients abweisen möchten, die einen ungültigen Hostnamen angeben, verwenden Sie diesen Befehl:

reject_invalid_helo_hostname

Um eine E-Mail abzulehnen, für die keine Datensätze vorhanden sind, verwenden Sie:

reject_unknown_helo_hostname

Zusammenfassend lässt sich sagen, dass alle Instanzen, die Sie ablehnen können, in etwa so aussehen werden:

smtpd_helo_required = yes 
smtpd_helo_restrictions = 
permit_mynetworks 
permit_sasl_authenticated 
reject_invalid_helo_hostname 
reject_unknown_helo_hostname

Speichern Sie dann die Datei und starten Sie Postfix neu:

sudo systemctl reload Postfix

Manchmal müssen auch legitime Mailserver die HELO/EHLO-Standards erfüllen. Um Fehler mit Postfix zu vermeiden, müssen Sie diese Server auf eine Whitelist setzen:

check_helo_access hash:/etc/postfix/helo_access

Dann erstellen Sie die Datei /etc/postfix/helo_access mit:

sudo nano /etc/postfix/helo_access

Das Beispiel einer Whitelist kann wie folgt aussehen:

optimus-webapi-prod-2.localdomain OK
va-massmail-02.rakutenmarketing.com OK

Nachdem Sie die Server in die Liste aufgenommen haben, erstellen Sie die Datei /etc/postfix/helo_access.db:

sudo postmap /etc/postfix/helo_access

Dann laden Sie Postfix neu:

sudo systemctl reload Postfix

Tipp Nr. 3: Überprüfen Sie A-Einträge für SMTP-Client-Hostnamen

Spam-Server haben oft keine gültigen A-Einträge zu ihren IP-Adressen. Sie können IP-Adressen ohne A-Records herausfiltern, indem Sie die Postfix-Konfigurationsdatei wie in den vorherigen Beispielen bearbeiten.

Fügen Sie die folgenden Befehle in den Abschnitt "smtpd_sender_restrictions" ein:

reject_unknown_reverse_client_hostname reject_unknown_client_hostname

Speichern Sie die Konfigurationsdatei und starten Sie Postfix neu.

Beachten Sie, dass die beiden genannten Befehle die betrügerischen HELO/EHLO-Hostnamen nicht zurückweisen.

Tipp Nr. 4: Ablehnen von E-Mails mit unzureichenden MX- oder A-Einträgen

MX steht für "Mail From"-Adresse, die auch als "Envelope From"-Adresse bezeichnet wird.

Manchmal wird E-Mail-Spam von nicht existierenden Domänen in der Absenderadresse gesendet, die überhaupt keine Einträge haben. Wenn die Domäne des Absenders keine Einträge hat, kann Postfix keine E-Mails an diese Domäne senden, so dass Sie die E-Mail ablehnen können.

Um diese Art von E-Mail-Spam zu blockieren, müssen Sie die Postfix-Konfigurationsdatei erneut bearbeiten, ähnlich wie in den vorherigen Tipps beschrieben.

Um E-Mails vom Domainnamen von einer Adresse abzulehnen, die weder MX- noch A-Einträge hat, fügen Sie Folgendes zum Abschnitt "smtpd_sender_restrictions" hinzu:

reject_unknown_sender_domain

Der Domänenname der Adresse, für die keine Einträge vorhanden sind, wird abgelehnt.

Das kann folgendermaßen aussehen:

smtpd_sender_restrictions = 
permit_mynetworks 
permit_sasl_authenticated 
reject_unknown_sender_domain 
reject_unknown_reverse_client_hostname 
reject_unknown_client_hostname

Speichern Sie dann die Datei und starten Sie Postfix neu.

Es ist besser, den Befehl reject_unknown_sender_domain über alle anderen "reject"-Befehle zu stellen, um Probleme zu vermeiden.

Tipp Nr. 5: Einsatz von Greylisting mit Postfix

Greylisting ist eine Technik zur Abwehr von E-Mail-Spam, die jeden Mailserver ablehnt, der der Greylisting-Funktion nicht bekannt ist. Wenn der sendende Server nicht betrügerisch ist, sendet er die E-Mail erneut. Die meisten Spammer senden die E-Mail jedoch nicht erneut. Daher wird der Spam blockiert. Durch die Greylisting-Funktion werden Server, die E-Mails erneut versenden, in die Liste aufgenommen und werden in Zukunft nicht mehr unterbrochen; die Greylisting-Funktion verhindert, dass Server, die keine E-Mails erneut versenden, ihre Aktivitäten fortsetzen.

Um die Greylisting-Funktion mit Postfix einzusetzen, müssen Sie auf den Postgrey-Dienst zugreifen. Für CentOS/RHEL-Benutzer ist die Postgrey-Installation über das EPEL-Repository verfügbar. Nach der Installation geben Sie den folgenden Befehl mit ein:

sudo systemctl start postgrey

und starten Sie es:

sudo systemctl enable postgrey

Dann müssen Sie die Postgrey-Konfigurationsdatei bearbeiten, um den Greylisting-Server zu verwenden:

sudo nano /etc/postfix/main.cf

In "smtpd_recipient_restrictions" fügen Sie Folgendes hinzu:

check_policy_service unix:postgrey/socket

Speichern Sie und starten Sie Postfix neu.

Auf diese Weise wird Postgrey den Zugriff von der neuen Absender-IP-Adresse, Absender-E-Mail-Adresse oder Empfänger-E-Mail-Adresse ablehnen. Das Versenden von gefälschten E-Mail-Adressen kann zufällig generierte Adressen nicht verhindern. Allerdings senden Spammer mit gefälschten Adressen nie wieder E-Mails; auf diese Weise könnte sich die Greylisting-Funktion als nützlich erweisen.

Tipp Nr. 6: Verwenden Sie öffentliche Echtzeit-Blacklists

Manchmal können betrügerische E-Mails die Greylists passieren, wobei Hostname und Datensätze überprüft werden, aber es kann sich trotzdem um E-Mail-Spam handeln. Die folgende Maßnahme zur Zurückweisung von E-Mail-Spam wäre in solchen Fällen die Erstellung von schwarzen Listen. Öffentliche Blacklists in Echtzeit bedeuten, dass diese Blacklists ständig aktualisiert werden.

Sie können verschiedene schwarze Listen verwenden, um E-Mail-Spam zu blockieren. Dazu müssen Sie herausfinden, welche Blacklists die Domänennamen der Spammer blockieren, und diese verwenden. Um abzufragen, welche Blacklists die Domänennamen von E-Mail-Spammern enthalten, können Sie die Websites MXToolBox und Debouncer besuchen.

Um Blacklists zu verwenden, fügen Sie in der Datei /etc/postfix/main.cf Folgendes hinzu

smtpd_recipient_restrictions = 
permit_mynetworks 
permit_sasl_authenticated 
check_policy_service unix:private/policyd-spf 
check_policy_service unix:postgrey/socket 
reject_rhsbl_helo … (the blacklist)
reject_rhsbl_reverse_client … (the blacklist)
reject_rhsbl_sender … (the blacklist)
reject_rbl_client … (the blacklist)

Bei Spammern, die den Google-Mailserver verwenden, wird "reject_rhsbl_helo" nicht wirksam sein. In den meisten Fällen ist "reject_rhsbl_sender" ausreichend.

Tipp Nr. 7: Erhöhen Sie die Sicherheit mit OpenDMARC

Domain-based Message Authentication, Reporting, and Conformance, kurz DMARC, ist ein Internet-Standard, der E-Mail-Betrüger daran hindert, fremde Domains für Spam zu nutzen.

Für die Einrichtung von OpenDMARC benötigen Sie die DKIN-Verifikation und OpenDKIM. Die weiteren Schritte beschreiben die Installation und Konfiguration von OpenDMARC auf CentOS/RHEL.

Zunächst müssen Sie OpenDMARC installieren, was Sie über das EPEL-Repository tun können:

sudo dnf install epel-release
sudo dnf install opendmarc

Starten Sie OpenDMARC (1) und stellen Sie sicher, dass es läuft (2):

(1) sudo systemctl start opendmarc
(2) systemctl status opendmarc

Öffnen und bearbeiten Sie anschließend die Konfigurationsdatei:

sudo nano /etc/opendmarc.conf

Ändern Sie die: "# AuthservID name" in "AuthservID OpenDMARC".

Geben Sie in der folgenden Zeile Ihren Postfix-Hostnamen ein:

VertrauenswürdigeAuthservIDs mail.ihredomain.de

Suchen Sie dann die folgende Zeile und ändern Sie "false" in "true":

# IgnoreAuthenticatedClients false

Tun Sie dasselbe in den folgenden Zeilen:

# RejectFailures false
# RequiredHeaders false

Speichern Sie die Datei und starten Sie OpenDMARC neu, damit die Änderungen wirksam werden.

Beschleunigung von DNS-Suchvorgängen mit einem lokalen Resolver

Postfix führt eine Abfrage der DNS-Einträge durch, und dieser Vorgang kann eine Weile dauern. Um diesen Vorgang zu beschleunigen, können Sie einen lokalen DNS-Resolver verwenden (da die meisten DNS-Listen Abfragebeschränkungen haben). In diesem Beispiel wird der DNS-Server bind9 verwendet.

Installieren Sie den bind9 DNS-Server:

sudo dnf install bind

Und lass es laufen:

sudo systemctl start named

Aktivieren Sie den Autostart beim Booten:

sudo systemctl enable named

Konfigurieren des Standard-DNS-Auflösers für CentOS/RHEL Mail Server

Der Standard-DNS-Auflöser kann variieren, aber Sie müssen ihn auf 127.0.0.1 einstellen.

Zunächst müssen Sie den Namen Ihres Netzwerks kennen:

ip addr

Als nächstes müssen Sie die Konfigurationsdatei bearbeiten und den Namen Ihres Netzwerks eingeben:

sudo nano /etc/sysconfig/network-scripts/ifcfg-Name des Netzwerks

Suchen Sie dann den DNS-Parameter und ändern Sie ihn in 127.0.0.1:

DNS1="127.0.0.1"

Speichern Sie und starten Sie den NetworkManager neu.

Deaktivieren von IPv6 in BIND

Um Fehler mit dem BIND-Protokoll zu vermeiden, ist es besser, IPv6 zu deaktivieren, wenn Ihr Mailserver keine öffentliche IPv6-Adresse hat.

Öffnen Sie zunächst die Konfigurationsdatei.

sudo nano /etc/sysconfig/named

Fügen Sie am Ende der Datei Folgendes hinzu:

OPTIONS= "-4"

Speichern Sie die Datei und starten Sie neu:

sudo systemctl restart named

Führen Sie den folgenden Befehl aus:

sudo netstat -lnptu | grep named
views 9m, 59s
views 2
Teilen

War dieser Artikel für Sie hilfreich?

2 Benutzer halten diesen Artikel für hilfreich

VPS beliebte Angebote

Weitere Artikel zu diesem Thema

cookie

Cookies und Datenschutz akzeptieren?

Wir verwenden Cookies, um sicherzustellen, dass wir Ihnen die beste Erfahrung auf unserer Website bieten. Wenn Sie fortfahren, ohne Ihre Einstellungen zu ändern, gehen wir davon aus, dass Sie mit dem Empfang aller Cookies auf der HostZealot-Website einverstanden sind.