Syntaxe des enregistrements SPF

Nous avons développé ce guide complet pour augmenter votre SPF comprendre et aider à résoudre les problèmes que notre application a pu porter à votre attention. Avoir un fichier valide et précis SPF record améliorera la couverture et la délivrabilité de l'authentification et vous aidera à atteindre le niveau de sécurité souhaité pour vos domaines.

Vous n'avez pas de compte dmarcian ? Vous pouvez toujours interroger le contenu de votre enregistrement SPF en utilisant notre outil de diagnostic SPF.

Créez un compte gratuit maintenant d'avoir dmarcian surveillez votre SPF, DKIM et DMARC enregistre automatiquement pour vous. Obtenez une visibilité instantanée sur les erreurs de livraison, le phishing et les tentatives d'usurpation d'identité avec dmarcian's Plateforme SaaS.

Utilisez le menu de navigation juste en dessous pour accéder à l'élément particulier de votre SPF enregistrement en question. Informations supplémentaires sur SPF peuvent être trouvés dans les articles liés au bas de ce document.

Mécanismes

Les mécanismes peuvent être utilisés pour décrire l'ensemble d'hôtes qui sont désignés comme expéditeurs sortants pour le domaine et peuvent être précédés de l'un des quatre qualificatifs suivants:

+    (Passer)
-     (Échouer)
~    (SoftFail)
?     (Neutre)

Si un mécanisme aboutit à un hit, sa valeur de qualificatif est utilisée. Le qualificatif par défaut est "+", C'est-à-dire" Passer ". Les mécanismes sont évalués dans l'ordre. Si aucun mécanisme ou modificateur ne correspond, le résultat par défaut est «Neutre».

Des informations plus détaillées sur les différences entre "~" et "-" sont disponibles ici

Exemples :

"V =spf1 - tous "

"V =spf1 a -all "

"V =spf1 un mx -all "

"V =spf1 + a + mx -all "

Si un domaine n'a pas SPF enregistrement du tout, le résultat est «Aucun». Si un domaine a une erreur temporaire pendant le traitement DNS, vous obtenez le résultat «TempError» (appelé «erreur» dans les versions précédentes). Si une erreur de syntaxe ou d'évaluation se produit (par exemple, le domaine spécifie un mécanisme non reconnu), le résultat est «PermError» (anciennement «unknown»).

L'évaluation d'un enregistrement SPF peut renvoyer un de résultats suivants :

Résultat Explication Action prévue
Pass (passer) L'enregistrement SPF désigne l'hôte autorisé à envoyer accepter
Fail (échouer) L'enregistrement SPF a désigné l'hôte comme n'étant PAS autorisé à envoyer rejeter
SoftFail L'enregistrement SPF a désigné l'hôte comme n'étant PAS autorisé à envoyer mais en transition accepter mais marquer
Neutral (neutre) L'enregistrement SPF précise explicitement que rien ne peut être dit sur la validité accepter
None (aucune) Le domaine n'a pas d'enregistrement SPF ou l'enregistrement SPF n'évalue pas à un résultat accepter
PermError Une erreur permanente s'est produite (par exemple, un enregistrement SPF mal formaté) non spécifiée
TempError Une erreur transitoire s'est produite accepter ou rejeter

Le mécanisme « all »

all

Ce mécanisme correspond toujours. Il doit toujours se trouver à la fin de l'enregistrement SPF.

Exemples :

"V =spf1 mx ~ tout "
Autoriser les MX du domaine à envoyer du courrier pour le domaine, interdire tous les autres.

"V =spf1 ~ tous "
Le domaine n'envoie aucun courrier.

"V =spf1 + tout "
Le domaine permet à toutes les adresses IP sur Internet d'envoyer des e-mails. Bien que «valide», ce n'est pas recommandé.

Le mécanisme « ip4 »

ip4:<ip4-address>
ip4:<ip4-network>/<prefix-length>

L'argument en faveur du mécanisme "ip4 :" est une gamme de réseaux IPv4. Si aucunelongueur de préfixe n'est donnée, /32 est supposé (en isolant une adresse d'hôte individuelle). Veillez à inclure une longueur de préfixe supérieure à /16, car la livraison à de récepteurs plus petits peut être affectée.

Exemples :

"V =spf1 ip4: 192.168.0.1/16 ~ tous "
Autoriser toute adresse IP entre 192.168.0.1 et 192.168.255.255.

Le mécanisme « ip6 »

ip6:<ip6-address>
ip6:<ip6-network>/<prefix-length>

L'argument en faveur du mécanisme "ip6 :" est une gamme de réseaux IPv6. Si aucune longueur de préfixe n'est donnée, /128 est supposé (en isolant une adresse d'hôte individuelle).

Exemples :

"V =spf1 ip6:1080::8:800:200C:417A/96 ~all”
Autoriser toute adresse IPv6 comprise entre 1080 :: 8: 800: 0000: 0000 et 1080 :: 8: 800: FFFF: FFFF.

"V =spf1 ip6:1080::8:800:68.0.3.1/96 ~all”
Autoriser toute adresse IPv6 comprise entre 1080 :: 8: 800: 0000: 0000 et 1080 :: 8: 800: FFFF: FFFF.

Le mécanisme « a »

a
une/
une:
une: /

Tous les enregistrements A pour un domaine sont testés. Si l'IP du client se trouve parmi eux, ce mécanisme correspond. Si la connexion est établie sur IPv6, une recherche AAAA est effectuée à la place.

If domaine n'est pas spécifié, le domaine actuel est utilisé.

Les enregistrements A doivent correspondre exactement à l'IP du client, à moins qu'une  longueur de préfixe est fourni, auquel cas chaque adresse IP renvoyée par la recherche A sera étendue à son préfixe CIDR correspondant, et l'adresse IP du client sera recherchée dans ce sous-réseau.

Exemples :

"V =spf1 a ~ tout »
Le domaine actuel est utilisé.

"V =spf1 a: example.com ~ all "
Équivalent si le domaine actuel est example.com.

"V =spf1 a: mailers.example.com ~ all "
Peut-être que example.com a choisi de lister explicitement tous les expéditeurs de courrier sortant dans un enregistrement A spécial sous mailers.example.com.

"V =spf1 a / 24 a: offsite.example.com/24 ~ all "
Si example.com est résolu à 192.0.2.1, toute la classe C de 192.0.2.0 / 24 sera recherchée pour l'IP du client. Il en va de même pour offsite.example.com. Si plusieurs enregistrements A sont renvoyés, chacun d'entre eux serait étendu à un sous-réseau CIDR.

Le mécanisme « mx »

mx
mx/<prefix-length>
mx:<domain>
mx:<domain>/<prefix-length>

Tous les enregistrements A de tous les enregistrements MX pour le  domaine sont testés par ordre de priorité MX. Si l'IP du client est trouvée parmi eux, ce mécanisme correspond.

If domaine n'est pas spécifié, le domaine actuel est utilisé.

Les enregistrements A doivent correspondre exactement à l'adresse IP du client, sauf si une longueur de préfixe est fournie, auquel cas chaque adresse IP renvoyée par la recherche A sera étendue à son préfixe CIDR correspondant, et l'adresse IP du client sera recherchée dans ce sous-réseau.

Exemples :

"V =spf1 mx mx: deferrals.domain.com ~ all "
Il se peut qu'un domaine envoie du courrier par l'intermédiaire de ses serveurs MX et d'un autre ensemble de serveurs dont le travail consiste à réessayer le courrier pour les domaines reportés.

"V =spf1 mx / 24 mx: offsite.domain.com/24 ~ all "
Il se peut que les serveurs MX d'un domaine reçoivent du courrier sur une adresse IP, mais en envoient sur une adresse IP différente mais proche.

Le mécanisme « ptr »

ptr
ptr:<domain>

Le ou les noms d'hôte de l'IP du client sont recherchés à l'aide de requêtes PTR. Les noms d’hôte sont ensuite validés : au moins un des enregistrements A pour un nom d’hôte PTR doit correspondre à l’IP originale du client. Les noms d'hôte non valides sont rejetés. Si un nom d'hôte valide se termine par un domaine, ce mécanisme correspond.

Si le domaine n'est pas spécifié, le domaine actuel est utilisé.

Si possible, vous devez éviter d’utiliser ce mécanisme dans votre SPF enregistrer, car il en résultera un plus grand nombre de recherches DNS coûteuses.

Exemples :

"V =spf1 ptr ~ tout "
Un domaine qui contrôle directement toutes ses machines (à la différence d'un fournisseur d'accès Internet par ligne commutée ou à large bande) permet à tous ses serveurs d'envoyer du courrier. Hotmail.com ou paypal.com pourraient faire cela.

"V =spf1 point: otherdomain.com ~ all "
Tout serveur dont le nom d'hôte se termine par otherdomain.com est désigné.

Le mécanisme « exists »

exists:<domain>

Effectuez une requête A sur le domaine fourni. Si un résultat est trouvé, cela constitue une correspondance. Peu importe le résultat de la recherche, il peut s'agir de 127.0.0.2.

Lorsque vous utilisez des macros avec ce mécanisme, vous pouvez effectuer des recherches IP inversées de type RBL, ou définir des exceptions par utilisateur.

Exemples :

Dans l'exemple suivant, l'IP du client est 1.2.3.4 et le domaine actuel est example.com.

"V =spf1 existe: example.com ~ all "

Si example.com ne se résout pas, le résultat est un échec. Si cela se résout, ce mécanisme donne lieu à une correspondance.

Le mécanisme « include »

include:<domain>

Le domaine spécifié est recherché pour obtenir une correspondance. Si la recherche ne renvoie aucune correspondance ou une erreur, le traitement passe à la directive suivante.  Avertissement : Si le domaine n'a pas d'enregistrement SPF valide, le résultat est une erreur permanente. Certains destinataires de courrier rejetteront le courrier en raison d'une PermError.

Exemples :

Dans l'exemple suivant, l'IP du client est 1.2.3.4 et le domaine actuel est example.com.

"V =spf1 comprend: example.com ~ all "

Si exemple.com n'a pas d'enregistrement SPF, le résultat est PermError.
Supposons que l'enregistrement SPF de example.com soit "V =spf1 a ~ tout ».
Recherchez l'enregistrement A de example.com. S'il correspond à 1.2.3.4, renvoyez Pass.
S'il n'y a pas de correspondance, autre que le «~ all» du domaine inclus, l'inclusion dans son ensemble ne correspond pas; le résultat final est toujours Échec de la directive externe définie dans cet exemple

Relations de confiance : Le mécanisme "include :" est destiné à franchir les frontières administratives. Il faut veiller à ce que les mécanismes "include :" ne mettent pas les domaines en danger en donnant des résultats SPF Pass à des messages qui résultent d'une falsification par plusieurs utilisateurs. À moins que des mécanismes techniques ne soient en place dans l'autre domaine spécifié pour empêcher la falsification croisée, les mécanismes "include :" doivent donner un résultat neutre plutôt que « Pass ». Pour ce faire, il faut ajouter "?" devant "include :".

L'exemple serait alors:

"V =spf1? Inclure: example.com ~ all "

Modificateurs

Les modificateurs sont facultatifs. Un modificateur peut apparaître une seule fois par enregistrement. Les modificateurs inconnus sont ignorés.

Le modificateur « redirect »

redirect=<domain>

L'enregistrement SPF pour domaine remplace l'enregistrement en cours. La macro-expansion domaine macro-déployé est également substitué au domaine actuel dans ces recherches.

Si un modificateur "redirect" est utilisé, l'enregistrement SPF ne doit pas inclure le mécanisme "all".  Si les deux sont présents, le modificateur "redirect" est ignoré.  Tout autre modificateur "redirect" au-delà du premier sera ignoré.

Exemples :

Dans l'exemple suivant, l'IP du client est 1.2.3.4 et le domaine actuel est example.com.

"V =spf1 redirection = example.com »

Si example.com n'a pas d'enregistrement SPF, c'est une erreur ; le résultat est inconnu.
Supposons que l'enregistrement SPF de example.com soit "V =spf1 a ~ tout ».
Recherchez l'enregistrement A de example.com. S'il correspond à 1.2.3.4, renvoyez Pass.
S'il n'y a pas de correspondance, l'exécution échoue et la valeur ~ all est utilisée.

Le modificateur « exp »

exp=<domain>

Si un récepteur SMTP rejette un message, il peut inclure une explication. Un éditeur SPF peut spécifier la chaîne d'explication que les expéditeurs voient. De cette façon, un fournisseur de services Internet peut diriger les utilisateurs non conformes vers une page web qui fournit des instructions supplémentaires sur la façon de configurer SASL.

Le domaine est étendu; une recherche TXT est effectuée. Le résultat de la requête TXT est ensuite macro-développé et affiché à l'expéditeur. D'autres macros peuvent être utilisées pour fournir une explication personnalisée.

Le modificateur exp ne peut contenir que des caractères ASCII imprimables.

Too many lookups?

Au cours de la dernière décennie, il est devenu de plus en plus facile d'envoyer des e-mails. Innombrable Sources sont entrés sur le marché, chacun fournissant un ensemble d'outils spécialisés adaptés pour répondre aux besoins modernes des spécialistes du marketing, des développeurs et des petites entreprises. Parallèlement à cette extension, l'authentification des e-mails, en particulier SPF, est devenu un sujet de plus en plus complexe à naviguer.

La Spécification RFC de SPF (essentiellement le droit Internet), il existe une limite pratique du nombre de «mécanismes de requête DNS» SPF record peut contenir. Cette limite est de dix. Les dix recherches maximales indiquent qu'un administrateur de domaine (c'est vous!) N'aura pas besoin de Gmail ou d'autres destinataires pour effectuer plus de dix recherches DNS consécutives pour voir si vous autorisez une adresse IP particulière à envoyer du courrier en votre nom.

Comme il est devenu quelque peu banal pour une seule organisation d'autoriser un grand nombre de netblocks disparates (en raison de la nature externalisée de l'infrastructure de messagerie), il reste ce qui semble être l'empiètement constant et inutile sur la recherche maximale de dix.  Cette limite reste toutefois tout à fait pratique et doit être respectée pour garantir une livraison rapide et des taux de réception favorables.  En outre, la solution pour éviter la limite est clairement abordée par d'autres bonnes pratiques de courrier électronique, encouragées depuis longtemps par les principaux destinataires de courrier entrant tels que Gmail et Yahoo.

La solution la plus pratique pour éviter le problème du «trop grand nombre de recherches» consiste à utiliser des sous-domaines. Comme chaque sous-domaine discret dispose de son propre maximum de dix recherches, SPF est effectivement illimité.  Exemple: hello.com est autorisé dix recherches + sub.hello.com est autorisé dix recherches.  En clair, vous ne devez jamais exécuter la condition de recherche maximale de dix si vous segmentez correctement différents flux de messagerie (par exemple transactionnels, d'entreprise, marketing, etc.) sur un espace de nom discret.

Dans cette sous-section « Conseils de livraison » du site Gmail postmaster, il est recommandé :

  • d'utiliser des adresses électroniques distinctes
  • d'envoyer du courrier depuis différents domaines et / ou adresses IP

En résumé, vous ne devez pas atteindre le maximum de 10 recherches. Si vous le faites, nous avons présenté des stratégies supplémentaires et des ressources de base de connaissances sur la façon de naviguer.

Lectures complémentaires :

- Vidéo: Comment SPF vos contrats
- Lectures supplémentaires sur «trop de recherches»
- Idées fausses courantes sur SPF
- SPF Outil d'arpenteur
- Quelle est la différence entre ~all et -all dans SPF ?

Voulez-vous continuer la conversation? Dirigez-vous vers le Forum