Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:mail_c7:spam_10 [25.11.2022 15:39. ] – [Testing-Tools] djangocentos:mail_c7:spam_10 [27.11.2022 20:56. ] (aktuell) django
Zeile 1: Zeile 1:
 ====== SPF - Sender Policy Framework (unter CentOS 7.x) ====== ====== SPF - Sender Policy Framework (unter CentOS 7.x) ======
 {{:centos:mail_c6:spf-logo-medium.png?nolink |SPF Logo}}  {{:centos:mail_c6:spf-logo-medium.png?nolink |SPF Logo}} 
-Mit Hilfe von SPF((**S**ender **P**olicy **F**rameworks)) kann definiert werden, welche Mailserver für welche Domains eMails verschickt werden (können), oder nicht, oder anders ausgedrückt, soll das Fälschen von Absender-Angaben mit Hilfe von SPF erschwert werden. Genauer gesagt schreibt das SPF fest, welcher MTA((**M**ail **T**ransport **A**gent)) abgehend für den Versandt von e-Mails einer Domain zugelassen ist. Wichtige Hinweise zu SPF findet man bei Bedarf in der überarbeiteten Version **[[https://www.ietf.org/rfc/rfc6652.txt|RFC 6652]]**((RFC 6652 aktualisiert [[https://www.ietf.org/rfc/rfc4408.txt|RFC 4408]])) oder auch auf der Webseite von **[[http://www.openspf.org|openspf.org]]**.   +Mit Hilfe von SPF((**S**ender **P**olicy **F**rameworks)) kann definiert werden, welche Mailserver für welche Domains eMails verschickt werden (können), oder nicht, oder anders ausgedrückt, soll das Fälschen von Absender-Angaben mit Hilfe von SPF erschwert werden. Genauer gesagt schreibt das SPF fest, welcher MTA((**M**ail **T**ransport **A**gent)) abgehend für den Versandt von e-Mails einer Domain zugelassen ist. Wichtige Hinweise zu SPF findet man bei Bedarf in der überarbeiteten Version **[[https://www.ietf.org/rfc/rfc7208.txt|RFC 7208]]** oder auch auf der Webseite von **[[http://www.openspf.org|openspf.org]]**.   
  
-Dieses here Ziel wirft bei genauerer Betrachtung viele Fragen auf und erzeugt bei manchen Mailserver-Betreibern nicht gerade viel Begeisterungsstürme. Probleme tauchen mit unter bei Mailumleitungen, Mailinglisten und/oder WebFormularen auf. Auch wird bei sehr konservativen SPF-Definition die Möglichkeit verhindert, eMails mit eigener Absender-eMail-Adresse über einen dritten Rechner zu versenden. Es wäre also nur möglich eMails auch über den Mail-Server zu versenden, auf dem auch das Postfach liegt! Speziell auch Beim Versand über ein z.B. WebFormular, oder eine Web-Grußkarte über einen Drittanbieter wäre dann **kein Versand** mehr möglich!+Dieses here Ziel wirft bei genauerer Betrachtung viele Fragen auf und erzeugt bei manchen Mailserver-Betreibern nicht gerade viel Begeisterungsstürme. Probleme tauchen mit unter bei Mailumleitungen, Mailinglisten und/oder WebFormularen auf. Auch wird bei sehr konservativen SPF-Definition die Möglichkeit verhindert, eMails mit eigener Absender-eMail-Adresse über einen dritten Rechner zu versenden. Es wäre also nur möglich eMails auch über den Mail-Server zu versenden, auf dem auch das Postfach liegt! Speziell auch Beim Versand über ein z.B. WebFormular, oder eine Web-Grusskarte über einen Drittanbieter wäre dann **kein Versand** mehr möglich!
  
 Beim **SPF** wird ein TXT-Record in der Zonendatei im DNS der betreffenden (Mail)Domain eingetragen. Dort wird definiert, welche SMTP-Server berechtigt sind, Nachrichten der (Mail)Domain zu verschicken. Mailserver können dann bei der Annahme der eMails abfragen, ob der sendende Mailserver überhaupt berechtigt ist, diese Nachricht zu verschicken. So soll bzw. kann mit Hilfe von SPF versucht werden, Absenderadressfälschungen - eine Form des eMail-Identitätsbetrugs - zu verhindern. SPAM kann aber mit Hilfe des Sender Policy Framework nicht direkt bekämpft werden! Beim **SPF** wird ein TXT-Record in der Zonendatei im DNS der betreffenden (Mail)Domain eingetragen. Dort wird definiert, welche SMTP-Server berechtigt sind, Nachrichten der (Mail)Domain zu verschicken. Mailserver können dann bei der Annahme der eMails abfragen, ob der sendende Mailserver überhaupt berechtigt ist, diese Nachricht zu verschicken. So soll bzw. kann mit Hilfe von SPF versucht werden, Absenderadressfälschungen - eine Form des eMail-Identitätsbetrugs - zu verhindern. SPAM kann aber mit Hilfe des Sender Policy Framework nicht direkt bekämpft werden!
  
-Nachfolgende Skizze zeigt exemplarisch auf, wo genau SPF beim Verarbeiten einer eMail beim Kommunikationsaufbau und -ablauf zweier **MTA**((**M**ail**T**ransport**A**gent)) das **SPF** zum Tragen kommt. Sobald eine eMail von einem Mailserver empfangen wird, benutzt dieses das SPF um festzustellen, ob das sendende System (MTA) dazu berechtigt ist. Besteht der Absender die SPF-Prüfung nicht, wird die Annahme der Nachricht je nach Konfiguration abgelehnt, zugestellt und|oder ggf. als Spam bzw. Betrug gekennzeichnet.+Nachfolgende Skizze zeigt exemplarisch auf, wo genau SPF beim Verarbeiten einer eMail beim Kommunikationsaufbau und -ablauf zweier **MTA**((**M**ail **T**ransport **A**gent)) das **SPF** zum Tragen kommt. Sobald eine eMail von einem Mailserver empfangen wird, benutzt dieses das SPF um festzustellen, ob das sendende System (MTA) dazu berechtigt ist. Besteht der Absender die SPF-Prüfung nicht, wird die Annahme der Nachricht je nach Konfiguration abgelehnt, zugestellt und|oder ggf. als Spam bzw. Betrug gekennzeichnet.
  
 <uml> <uml>
Zeile 38: Zeile 38:
 </uml> </uml>
  
-Weitere Informationen rund um SPF findet man im übrigen auf der [[http://de.wikipedia.org/wiki/Sender_Policy_Framework|Wikipedia Seite]] oder im besagten **[[https://www.ietf.org/rfc/rfc6652.txt|RFC 6652]]**.+Weitere Informationen rund um SPF findet man im übrigen auf der [[http://de.wikipedia.org/wiki/Sender_Policy_Framework|Wikipedia Seite]] oder im besagten **[[https://www.rfc-editor.org/rfc/rfc7208.html|RFC 7208]]**.
  
 ===== Definition unseres SPF-Records ===== ===== Definition unseres SPF-Records =====
Zeile 57: Zeile 57:
  === Mechanismus ===  === Mechanismus ===
  Der [[https://www.rfc-editor.org/rfc/rfc7208.html#section-5|Mechanismus]] bestimmt, wie eine IP-Adresse mit dem Begriff abgeglichen werden soll. Unterstützte Werte sind hier:  Der [[https://www.rfc-editor.org/rfc/rfc7208.html#section-5|Mechanismus]] bestimmt, wie eine IP-Adresse mit dem Begriff abgeglichen werden soll. Unterstützte Werte sind hier:
-  * **''a''**       : definiert einen A-Record der Domäne, wird keine Domäne angegeben, wird standardmäßig die aktuelle Domäne verwendet.+  * **''a''**       : definiert einen A-Record der Domäne, wird keine Domäne angegeben, wird standardmässig die aktuelle Domäne verwendet.
   * **''ipv4''**    : Angabe einer IPv4-Adresse   * **''ipv4''**    : Angabe einer IPv4-Adresse
   * **''ipv6''**    : Angabe einer IPv6-Adresse   * **''ipv6''**    : Angabe einer IPv6-Adresse
Zeile 112: Zeile 112:
  
 ==== DNS Lookup Limitierung ==== ==== DNS Lookup Limitierung ====
-Abhängig von den verwendeten **[[#mechanismus|Mechanismen]]** oder auch **[[|]]** müssen in aller Regel zur Evaluierung der Bewertung der IP-Adresee des einliefernden SMTP-Clients weitere DNS-Anfragen durchgeführt werden. Im [[https://www.rfc-editor.org/rfc/rfc7208#section-4.6.4|RFC 7208]] finden sich ausführliche Hinweise zu den Limitierungen beim DNS-Lookup im Bezug auf unsere SPF-Definitionen.+Abhängig von den verwendeten **[[#mechanismus|Mechanismen]]** oder auch **[[#modifikator|Modifikatoren]]** müssen in aller Regel zur Evaluierung der Bewertung der IP-Adresee des einliefernden SMTP-Clients weitere DNS-Anfragen durchgeführt werden. Im [[https://www.rfc-editor.org/rfc/rfc7208#section-4.6.4|RFC 7208]] finden sich ausführliche Hinweise zu den Limitierungen beim DNS-Lookup im Bezug auf unsere SPF-Definitionen.
  
 Haben wir wie [[#erweiterungen_um_weitere_mechanismen|in diesem Beispiel]] den Mechanismus **''a''** verwendet, muss bei einer Prüfung der verwendete Daemon nicht nur einen TXT-Record im DNS erfragen, sondern zusätzlich noch eine A- (oder AAAA-) DNS-Abfrage für die Domäne durchführen. Beim Mechanismus **''mx''** können das, ja nach Anzahl der im MX-Record hinterlegten MX-Einträge dann einen oder auch mehrere zusätzliche A- (oder AAAA-) DNS-Abfrage nach sich ziehen. Im Falle z.B. von mailbox.org mit den hinterlegten 4 Mailservern wären das dann vier zusätzliche DNS-Anfragen.  Haben wir wie [[#erweiterungen_um_weitere_mechanismen|in diesem Beispiel]] den Mechanismus **''a''** verwendet, muss bei einer Prüfung der verwendete Daemon nicht nur einen TXT-Record im DNS erfragen, sondern zusätzlich noch eine A- (oder AAAA-) DNS-Abfrage für die Domäne durchführen. Beim Mechanismus **''mx''** können das, ja nach Anzahl der im MX-Record hinterlegten MX-Einträge dann einen oder auch mehrere zusätzliche A- (oder AAAA-) DNS-Abfrage nach sich ziehen. Im Falle z.B. von mailbox.org mit den hinterlegten 4 Mailservern wären das dann vier zusätzliche DNS-Anfragen. 
  
-Doch wieviele DNS-Anfragen werden nun im Zweifelsfall zusätzlich benötigt? Eine Antwort auf diese Frage bietet nachfolgende Tabelle. +Doch wie viele DNS-Anfragen werden nun im Zweifelsfall zusätzlich benötigt? Eine Antwort auf diese Frage bietet nachfolgende Tabelle. 
  
 |< 30% 10% 5% 10% 5% >| |< 30% 10% 5% 10% 5% >|
Zeile 123: Zeile 123:
 | **''all''**                    |         | **''exp''**                    |         | | **''all''**                    |         | **''exp''**                    |         |
 | **''exists''**                         | **''redirect''**                       | | **''exists''**                         | **''redirect''**                       |
-| **''include''**                |    ≥ 1   |                                |           |+| **''include''**                |    ≥ 1    |                                |           |
 | **''ip4''**                    |                                        |           | | **''ip4''**                    |                                        |           |
 | **''ip6''**                    |                                        |           | | **''ip6''**                    |                                        |           |
-| **''include''**                |    ≥ 1   |                                |           | +| **''include''**                |    ≥ 1    |                                |           | 
-| **''mx''**                        ≥ 1   |                                |           | +| **''mx''**                        ≥ 1    |                                |           | 
-| **''ptr''**                    |    ≥ 1   |                                |           |+| **''ptr''**                    |    ≥ 1    |                                |           |
  
-Sehen wir uns nun den SPF-Record **''lists.nausch.org''** genauer an und gehen detailiert auf die einzelnen Werte ein.+Sehen wir uns nun den SPF-Record **''lists.nausch.org''** genauer an und gehen detailliert auf die einzelnen Werte ein.
  
    $ dig TXT lists.nausch.org +short    $ dig TXT lists.nausch.org +short
Zeile 154: Zeile 154:
 ==== Testing-Tools ====    ==== Testing-Tools ====   
 Zum Testen auf Validität unseres SPF-Records stehen uns im WEB unter anderem folgende Dienste (**[[#tests_und_logging|SPF Record Testing Tools]]**) zur Verfügung. Die Ergebnisse können helfen auf Mängel in den Records hinzuweisen, so dass wir zur besseren Reputation bei der Mailannahmen bei den Empfängern doch auch entscheidend Einfluss nehmen können.  Zum Testen auf Validität unseres SPF-Records stehen uns im WEB unter anderem folgende Dienste (**[[#tests_und_logging|SPF Record Testing Tools]]**) zur Verfügung. Die Ergebnisse können helfen auf Mängel in den Records hinzuweisen, so dass wir zur besseren Reputation bei der Mailannahmen bei den Empfängern doch auch entscheidend Einfluss nehmen können. 
-  * **https://www.kitterman.com/spf/validate.html** +  * **[[http://spf.myisp.ch/|SPF Record Checker]]** \\ {{ :centos:mail_c7:spf_checker_1.png?nolink&750 |Bild: Bildschirmhardcopy SPF Record Checker}} 
-  * **https://www.spf-record.de/spf-lookup/** +  * **[[https://www.spf-record.de/spf-lookup/|spfrecord by nicmanager]]** \\ {{ :centos:mail_c7:spf_checker_3.png?nolink&750 |Bild: Bildschirmhardcopy SPF Record Testing Tools}} 
-  * **https://dmarcian.com/spf-survey/** +  * **[[https://dmarcian.com/spf-survey/|SPF Surveyer - dmarcian]]** \\ {{ :centos:mail_c7:spf_checker_4.png?nolink&750 |Bild: Bildschirmhardcopy demarcian SPF Surveyer}} 
-  * **https://mxtoolbox.com/SuperTool.aspx**+  * **[[https://www.kitterman.com/spf/validate.html|SPF Record Testing Tools]]** \\ {{ :centos:mail_c7:spf_checker_2.png?nolink&750 |Bild: Bildschirmhardcopy SPF Record Testing Tools}} 
 +  * **[[https://mxtoolbox.com/SuperTool.aspx|MX Toolbox]]** \\ {{ :centos:mail_c7:spf_checker_5.png?nolink&750 |Bild: Bildschirmhardcopy MX Toolbox - SPF Record Lookup}} 
 +  * **[[https://mxtoolbox.com/emailhealth/|MX Toolbox: Email Health Report]]** \\ {{ :centos:mail_c7:spf_checker_6.png?nolink&750 |Bild: Bildschirmhardcopy MX Toolbox - Email Health Repor}}
  
-=== www.kitterman.com === 
  
 ===== SPF-Bewertung bei der Mailannahme ===== ===== SPF-Bewertung bei der Mailannahme =====
Zeile 213: Zeile 214:
  
 ==== Konfiguration ==== ==== Konfiguration ====
-Die Konfiguration des **smf-spf**-Daemons gestaltet sich vergleichsweise einfach und erfolgt lediglich mit Hilfe Der Datei //**/etc/mail/smfs/smf-spf.conf**//. In der Default-Konfiguration wird der Daemon über einen UNIX-Datei-Socket angesprochen. Diesen Parameter **Socket** weisen wir einem localen Port zu, über den wir später von Postfix aus, den SPF-Milter ansprechen wollen.+Die Konfiguration des **smf-spf**-Daemons gestaltet sich vergleichsweise einfach und erfolgt lediglich mit Hilfe Der Datei //**/etc/mail/smfs/smf-spf.conf**//. In der Default-Konfiguration wird der Daemon über einen UNIX-Datei-Socket angesprochen. Diesen Parameter **Socket** weisen wir einem lokalen Port zu, über den wir später von Postfix aus, den SPF-Milter ansprechen wollen.
  
 Mit unserem Editor der Wahl, z.B. **vim** bearbeiten wir diese Konfigurationsdatei. Mit unserem Editor der Wahl, z.B. **vim** bearbeiten wir diese Konfigurationsdatei.
Zeile 331: Zeile 332:
 </file> </file>
  
-In der Konfigurationsdatei **main.cf** unseres Postfix-Mailserver definieren wir uns nun eine eigene Variable, die wir dann in der Datei //**/etc/postfix/master.cf**// dann verwenden wollen. Wir tragen also nun in der Section **MILTER**nachfolgende Zeilen ein.+In der Konfigurationsdatei **main.cf** unseres Postfix-Mailserver definieren wir uns nun eine eigene Variable, die wir dann in der Datei //**/etc/postfix/master.cf**// dann verwenden wollen. Wir tragen also nun in der Section **MILTER** nachfolgende Zeilen ein.
    # vim /etc/postfix/main.cf    # vim /etc/postfix/main.cf
 <file bash /etc/postfix/main.cf>... <file bash /etc/postfix/main.cf>...
Zeile 366: Zeile 367:
    # systemctl status smf-spf    # systemctl status smf-spf
  
-<code>smf-spf.service - Sender Policy Framework milter+<html><pre class="code"> 
 +<font style="color: rgb(0, 255, 0)"><b>● </b></font>smf-spf.service - Sender Policy Framework milter
    Loaded: loaded (/usr/lib/systemd/system/smf-spf.service; disabled)    Loaded: loaded (/usr/lib/systemd/system/smf-spf.service; disabled)
-   Active: active (running) since Wed 2014-12-17 14:05:12 CET; 40min ago+   Active: <font style="color: rgb(0, 255, 0)"><b>active (running)</b></font>since Wed 2014-12-17 14:05:12 CET; 40min ago
   Process: 19140 ExecStart=/usr/sbin/smf-spf (code=exited, status=0/SUCCESS)   Process: 19140 ExecStart=/usr/sbin/smf-spf (code=exited, status=0/SUCCESS)
  Main PID: 19141 (smf-spf)  Main PID: 19141 (smf-spf)
Zeile 374: Zeile 376:
            └─19141 /usr/sbin/smf-spf            └─19141 /usr/sbin/smf-spf
  
-Dec 17 14:05:12 vml000087.dmz.nausch.org systemd[1]: Started Sender Policy Framework milter +Dec 17 14:05:12 vml000087.dmz.nausch.org systemd[1]: Started Sender Policy Framework milter</font> 
-</code+</pre
 +</html>
  
 Im Maillog wird der Start des Daemon entsprechend dokumentiert. Im Maillog wird der Start des Daemon entsprechend dokumentiert.
Zeile 383: Zeile 385:
    Dec 17 14:05:12 vml000087 smf-spf[19140]: starting smf-spf 2.0.2 listening on inet:8890@127.0.0.1    Dec 17 14:05:12 vml000087 smf-spf[19140]: starting smf-spf 2.0.2 listening on inet:8890@127.0.0.1
    Dec 17 14:05:12 vml000087 smf-spf[19140]: running as uid: 993, gid: 99    Dec 17 14:05:12 vml000087 smf-spf[19140]: running as uid: 993, gid: 99
- 
  
 Mit Hilfe von **netstat** können wir überprüfen, ob der Port **8890** geöffnet wurde. Mit Hilfe von **netstat** können wir überprüfen, ob der Port **8890** geöffnet wurde.
Zeile 428: Zeile 429:
    Authentication-Results: mx01.nausch.org; spf=fail smtp.mailfrom=<newsletter@aktuell.erwinmueller.de> smtp.helo=mx1.tachtler.net    Authentication-Results: mx01.nausch.org; spf=fail smtp.mailfrom=<newsletter@aktuell.erwinmueller.de> smtp.helo=mx1.tachtler.net
  
-Zum Testen des SPF-Records kann man auch auf Dienste im WWW zurückgreifen. So kann man seinen SPF-Record z.B. über den **[[http://spf.myisp.ch/|SPF Record Checker]]** überprüfen lassen. +Zum **[[#testing-tools|Testen des SPF-Records]]** kann man auch auf Dienste im WWW zurückgreifen. 
- +
-{{ :centos:mail_c7:spf.myisp.ch.png?800 |Bild: Ergebnisseite eines SPF-Scans auf der Seite http://spf.myisp.ch/}} +
- +
-Alternativ dazu bietet sich auch kitterman's **[[http://www.kitterman.com/spf/validate.html|SPF Record Testing Tools - SPF Query Tool]]** an.+
 ===== SRS - Sender Rewriting Scheme ===== ===== SRS - Sender Rewriting Scheme =====
-Zu Beginn dieses Artikels wurde bereits darauf hingewiesen, dass mit unter Probleme bei Mailumleitungen und/oder WebFormularen auftauchen können. Mit **SRS**((**S**ender **R**ewriting **S**cheme)) kann ein Mailserver die eMail-Adresse im Envelop umschreiben und anpassen. Eine genauere Beschreibung zu SRS ist im Kapitel **[[centos:mail_c7:spam_11|SRS - Sender Rewriting Scheme]]** zu finden.+Zu Beginn dieses Artikels wurde bereits darauf hingewiesen, dass mit unter Probleme bei Mailumleitungen und/oder Web-Formularen auftauchen können. Mit **SRS**((**S**ender **R**ewriting **S**cheme)) kann ein Mailserver die eMail-Adresse im Envelop umschreiben und anpassen. Eine genauere Beschreibung zu SRS ist im Kapitel **[[centos:mail_c7:spam_11|SRS - Sender Rewriting Scheme]]** zu finden.
  
 ====== Links ====== ====== Links ======
  • centos/mail_c7/spam_10.1669390798.txt.gz
  • Zuletzt geändert: 25.11.2022 15:39.
  • von django