Häufige SPF-Fehler und -Fehlerbehebungen

Beschreibung description

  • Empfehlungen zur Syntax

    • Häufige Suchmechanismen
    • Allgemeine Modifikatoren
  • Zu viele Mechanismen

  • Zeichenfolge zu lang

  • Null-Datensätze im SPF-Datensatz

  • Sich wiederholende Datensätze im SPF-Datensatz - Void-Suchen

  • Validierungs-Tools

Syntaxempfehlungen
gängige Suchmechanismen

A:

MX:

Einschließen:

IP4:

IP6:

existiert:

PTR:

alle

Allgemeine Modifikatoren

Umleitung=

Ausg=

  1. Ein A-Eintrag muss IMMER die IP-Adresse enthalten (Host IP zuordnen)
  2. CNAME (Alias) muss Host-Namen enthalten. Keine IPs hier
  3. NS- und MX-Einträge müssen Host-Namen enthalten. Keine IPs zulässig.
  4. MX-Einträge (für Mail-Server)  sollte Host-Namen NICHT IPs enthalten.

Zu viele Mechanismen

In Abschnitt 10.1, „Verarbeitungsbeschränkungen“ des SPF RFC 4408 wird Folgendes in Bezug auf DNS-Suchen angegeben:

SPF-Implementierungen MÜSSEN die Anzahl der Mechanismen und Modifikatoren, die DNS-Suchen durchführen, auf höchstens 10 pro SPF-Prüfung beschränken, einschließlich der Suchen, die durch die Verwendung des „include“-Mechanismus oder des „redirect“-Modifikators verursacht werden.  Wenn diese Zahl während einer Prüfung überschritten wird, MUSS ein PermError zurückgegeben werden.  Die Mechanismen „include“, „a“, „mx“, „ptr“ und „exists“ sowie der „redirect“-Modifikator zählen auch für diese Beschränkung.  Die Mechanismen „all“, „ip4“ und „ip6“ erfordern keine DNS-Suchen und werden daher nicht auf diese Beschränkung angerechnet. Der Modifikator „exp“ wird für diese Beschränkung nicht gezählt, da die DNS-Suche zum Abrufen der Erklärungszeichenfolge nach der Auswertung des SPF-Eintrags erfolgt.

Diese Beschränkung dient dazu, zu verhindern, dass SPF-Suchen eine nützliche Möglichkeit für Denial-of-Service-Angriffe darstellen.

Anhand eines beispielhaften SPF-Eintrags als Beispiel wurde veranschaulicht, dass dieser Eintrag mit 12 Suchen fehlschlug:

example.com text = „v=spf1 include:_spf-a.example.com include:_spf-b.example.com include:_spf-c.example.com include:_spf-ssg-a.example.com include:spf-a.anotherexample.com IP4:131.107.115.215 IP4:131.107.115.214 IP4:205.248.106.64 IP4:205.248.106.30 IP4:205.248.106.32 „Alle [ 5 Mechanismen]

_spf-a.example.com  Text = „V=SPF1 IP4:216.99.5.67 IP4:216.99.5.68 IP4:202.177.148.100 IP4:203.122.32.250 IP4:202.177.148.110 IP4:213.199.128.139 IP4:213.199.128.145 IP4:207.46.50.72 IP4:207.46.50.82 A:mh.example.m0.net Alle“  [ +1 = 6 Mechanismen]

MH.example.M0.NET A = 209.11.164.116

_spf-b.example.com text = „v=spf1 include:spf.messaging.example.com ip4:207.46.22.35 ip4:207.46.22.98 ip4:207.46.22.101 ip4:131.107.1.27 ip4:131.107.1.17 ip4:131.107.65.22 ip4:131.107.65.131 IP4:131.107.1.101 IP4:131.107.1.102 IP4:217.77.141.52 IP4:217.77.141.59 Alle“ [ ] +1 = 7 Mechanismen

spf.messaging.example.com text = „v=spf1 include:spfa.anotherexample.com include:spfb.anotherexaple.com include:spfc.anotherexample.com -all“  [ +3 = 10 Mechanismen]

pfa.anotherexample.com  text = „v=spf1 ip4:157.55.116.128/26 ip4:157.55.133.0/24 ip4:157.55.158.0/23 ip4:157.55.234.0/24 ip4:157.56.112.0/24 ip4:157.56.116.0/25 ip4:157 :207.56.120.0/25 ip4:207.46.100.0/24 ip4:207.46.108.0/25 ip4:134.46.163.0/24 ip4:157.170.140.0/24 56.110.0/23 -all“ [ +0 = 10 Mechanismen]

pfb.anotherexample.com  text = „v=spf1 ip4:207.46.51.64/26 ip4:213.199.154.0/24 ip4:213.199.180.128/26 ip4:216.32.180.0/23 ip4:64.4.22.64/26 ip4:65.55.83.128/27 ip4:65.55.169.0/24 ip4:65.55.88.0/24 ip4:94.245.120.64/26 ip4:131.107.0.0/16 ip4:157.56.73.0/24 ip4:134.170.132.0/24 -all“ [ ] +0 = 10 Mechanismen

spec.anotherexample.com  text = „v=spf1 ip4:207.46.101.128/26 ip6:2a01:1117c00::/54 ip6:2a01:111fc00::/54 ip4:157.56.87.192/26 ip4:157.55.40.32/27 ip4:157.56.123.0/27 ip4:157 :157.56.91.0/27 ip4:157.55.206.0/24 ip4:157.55.207.0/24 ip4:157.56.206.0/23 56.208.0/22 -all“ [ ] +0 = 10 Mechanismen

_spf-c.example.com  Text = „V=SPF1 IP4:203.32.4.25 IP4:213.199.138.181 IP4:213.199.138.191 IP4:207.46.52.71 IP4:207.46.52.79 IP4:131.107.1.18 IP4:131.107.1.19 IP4:131.107.1.20 IP4:131.107.1.48 IP4:131.107.1.56 IP4:86.61.88.25 IP4:131.107.1.44 IP4:131.107.1.37 alle“ [ +0 = 10 Mechanismen]

_spf-ssg-a.example.com  text = „v=spf1 include:_spf-ssg-b.example.com include:_spf-ssg-c.example.com all“  [ +2 = 12 Mechanismen]

_spf-ssg-b.example.com  text = „v=spf1 ip4:207.68.169.173/30 ip4:207.68.176.1/26 ip4:207.46.132.129/27 ip4:207.68.176.97/27 ip4:65.55.238.129/26 ip4:207.46.222.193/26 ip4:207.46.116.135/29 ip4:65.55.178.129/27 ip4:213.199.161.129/27 ip4:65.55.33.70/28 all“  [ +0 = 12 Mechanismen]

_spf-ssg-c.example.com text = „v=spf1 ip4:65.54.121.123/29 ip4:65.55.81.53/28 ip4:65.55.234.192/26 ip4:207.46.200.0/27 ip4:65.55.52.224/27 ip4:94.245.112.10/31 ip4:94.245.112.0/27 ip4:111.221.26.0/27 ip4:207.46.50.221/26 ip4:207.46.50.224 all“ [ +0 = 12 Mechanismen]

spf-a.secondexample.com  Text = „v=spf1 ip4:157.55.0.192/26 ip4:157.55.1.128/26 ip4:157.55.2.0/25 ip4:65.54.190.0/24 ip4:65.54.51.64/26 ip4:65.54.61.64/26 ip4:65.55.111.0/24 ip4:65.55.116.0/25 ip4:65.55.34.0/24 ip4:65.55.90.0/24 ip4:65.54.241.0/24 ip4:207.46.117.0/24 all“ [ ] +0 = 12 Mechanismen

Zeichenfolge zu lang

Beschränkung auf 255 Zeichen in einer einzelnen Zeichenfolge

https://kb.isc.org/article/AA-00356/0/Can-I-have-a-TXT-or-SPF-record-longer-than-255-characters.html

https://www.string-functions.com/length.aspx

You may have more than 255 characters of data in a TXT or SPF record, but not more than 255 characters in a single string.
If you attempt to create an SPF or TXT record with a long string (>255 characters) in it, BIND will give an error
(e.g. "invalid rdata format: ran out of space".)  Strings in SPF and TXT records should be no longer than 255 characters.
However to get around this limitation, per RFC 4408 a TXT or SPF record is allowed to contain multiple strings, which
should be concatenated together by the reading application.  In the case of use for SPF (using either TXT or SPF RRs)
the strings are concatenated together without spaces as described below.  Reassembly by other applications of multiple
strings stored in TXT records might work differently.

3.1.3. Mehrere Zeichenfolgen in einem einzelnen DNS-Eintrag

As defined in [ RFC1035]  sections 3.3.14 and 3.3, a single text DNS
 record (either TXT or SPF RR types) can be composed of more than one
 string. If a published record contains multiple strings, then the
 record MUST be treated as if those strings are concatenated together
 without adding spaces. For example:

 IN TXT "v=spf1 .... first" "second string..."

 MUST be treated as equivalent to

 IN TXT "v=spf1 .... firstsecond string..."

 SPF or TXT records containing multiple strings are useful in
 constructing records that would exceed the 255-byte maximum length of
 a string within a single TXT or SPF RR record.

BEISPIEL

text = „v=spf1 ip4:199.15.212.0/22 ip4:72.3.185.0/24 ip4:72.32.154.0/24 ip4:72.32.217.0/24 ip4:72.32.243.0/24 ip4:94.236.119.0/26  ip4:37.188.97.188/32 ip4:185.28.196.0/22 all“

text = „V=SPF1 IP4:199.15.212.0/22" " ip4:72.3.185.0/24 ip4:72.32.154.0/24 ip4:72.32.217.0/24" " ip4:72.32.243.0/24 ip4:94.236.119.0/26" " ip4:37.188.97.188/32 ip4:185.28.196.0/22 all“

Null-Datensätze im SPF-Datensatz

Ein Datensatz, der NULL ist oder nicht existiert, bricht einen SPF-Datensatz.  Die Syntax innerhalb des Datensatzes ist sehr wichtig. Wenn zusätzliche Leerzeichen zwischen den Mechanismen vorhanden sind, wird sie als NULL gezählt.

BEISPIEL

text = „V=SPF1 IP4:199.15.212.0/22"< - exact

text = „v=spf1 ip4: 199.15.212.0/22"< - NULL (BEACHTEN SIE DAS LEERZEICHEN ZWISCHEN IP4: UND IP)

Wiederholungseinträge im SPF-Eintrag - Leere Suchen

Wenn der SPF-Datensatz zu viele sich wiederholende Mechanismen enthält, einschließlich kaskadierender Datensätze (z. B. bei Verwendung von „include:„), wird der Datensatz beschädigt.

In einem SPF-Datensatz gibt es eine MAX mit 2 Void-Lookups.  Mehr als das, und der Rekord wird brechen.  Dies verhindert, dass SPF-Datensätze bei Denial-of-Service-ähnlichen Angriffen verwendet werden.

Validierungstools

SPF-Checker, Syntaxvalidator und SPF-Tester

https://www.kitterman.com/spf/validate.html

SPF-Checker

https://vamsoft.com/support/tools/spf-policy-tester

SPF-Validator

https://vamsoft.com/support/tools/spf-syntax-validator

CIDR-Rechner

https://www.subnet-calculator.com/cidr.php

nslookup

https://network-tools.com/nslook/

SPF-Erstellungsassistent

https://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/

Häufige SPF-Fehler

https://www.openspf.org/FAQ/Common_mistakes

SPF-Syntaxdefinitionen

https://www.openspf.org/SPF_Record_Syntax

Lösung resolution

Für technische Unterstützung wenden Sie sich an den Marketo Engage-Support.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f