SPF (Sender Policy Framework) : Comprendre les règles et leur fonctionnement
Pourquoi SPF est si important ?
(par Ilhan le 09/10/2024)
SPF (Sender Policy Framework) : Comprendre les règles et leur fonctionnement
Le SPF (Sender Policy Framework) est un mécanisme de sécurité utilisé pour éviter l’usurpation d’identité dans l’envoi d’e-mails. En définissant des règles dans le DNS d’un domaine, SPF permet aux administrateurs de spécifier quelles adresses IP sont autorisées à envoyer des e-mails au nom de leur domaine. Si un e-mail est envoyé par une IP non autorisée, il peut être marqué comme spam ou rejeté par les serveurs de messagerie.
Le revers de la médaille est que si vous ne déclarez par une nouvelle source d’envoi d’email légitime dans votre SPF, les emails expédiés seront considérés comme usurpés. Il est donc primordial de comprendre le SPF et de le maintenir à jour.
Dans cet article, nous allons explorer le fonctionnement du SPF, ses principaux cas d’usage, ainsi que plusieurs exemples pour bien comprendre les règles SPF et leur mise en œuvre.
Qu’est-ce que le SPF et comment fonctionne-t-il ?
Le SPF est une méthode d’authentification qui repose sur une entrée DNS spécifique pour chaque domaine. Cette entrée est un enregistrement TXT qui contient les règles définissant les serveurs autorisés à envoyer des e-mails pour ce domaine.
Par exemple, si vous avez chez nous un hébergement Odoo, mais que votre site et vos emails sont hébergés ailleurs, il faut impérativement permettre à notre infrastructure d’envoyer des emails depuis le Odoo.
Lorsqu’un serveur de messagerie reçoit un e-mail, il vérifie le domaine de l’expéditeur (le domaine utilisé dans l’adresse “From”) et consulte l’entrée SPF dans le DNS de ce domaine. Le serveur compare alors l’adresse IP de l’expéditeur à la liste des adresses autorisées définie dans l’enregistrement SPF. Si l’adresse IP correspond à l’une des adresses autorisées, le message est considéré comme légitime. Dans le cas contraire, l’e-mail peut être marqué comme suspect ou rejeté.
Structure d’un enregistrement SPF
Un enregistrement SPF se présente généralement sous la forme suivante :
v=spf1 ip4:192.0.2.0/24 include:exemple.com -all
- v=spf1 : indique que c’est une règle SPF version 1.
- ip4:192.0.2.0/24 : autorise toutes les adresses IP comprises entre 192.0.2.0 et 192.0.2.255 à envoyer des e-mails pour ce domaine.
- include exemple.com : autorise également les serveurs de l’entité exemple.com à envoyer des e-mails pour ce domaine.
- -all : indique que tout autre serveur qui n’est pas mentionné dans les règles est explicitement rejeté.
Les différents mécanismes du SPF
Le SPF repose sur plusieurs mécanismes pour définir les serveurs autorisés à envoyer des e-mails. Chaque mécanisme peut être combiné avec un qualificateur pour indiquer la manière dont les serveurs de messagerie doivent traiter un e-mail s’il ne correspond pas à la règle.
Les mécanismes les plus courants
- ip4 / ip6 : spécifie une adresse ou une plage d’adresses IP autorisée à envoyer des e-mails pour ce domaine.
Ex : ip4:192.0.2.0/24 ou ip6:2001:db8::/32
- a : indique que les adresses IP associées au nom d’hôte A ou AAAA du domaine sont autorisées.
Ex : a signifie que l’adresse IP du domaine est autorisée.
- mx : autorise les adresses IP des serveurs de messagerie (MX) définis dans le DNS pour ce domaine.
Ex : mx signifie que les serveurs MX associés au domaine peuvent envoyer des e-mails.
- include : inclut les règles SPF d’un autre domaine. Pratique pour les services tiers comme les outils d’envoi de newsletters.
Ex : include:mailgun.org permet aux serveurs de Mailgun d’envoyer des e-mails au nom de votre domaine.
- all : s’applique à toutes les adresses IP. Il est souvent utilisé avec un qualificateur pour déterminer si les e-mails doivent être acceptés ou rejetés.
Ex : -all (rejet), ~all (quarantaine), +all (acceptation).
Qualificateurs et leur signification
Chaque mécanisme SPF peut être associé à un qualificateur qui détermine le comportement du serveur de messagerie :
- + : Pass (par défaut, autorise si aucune règle n’est précisée).
Ex : +ip4:192.0.2.0/24 (la plage est explicitement autorisée).
- - : Fail (rejet du message).
Ex : -all (rejette tous les serveurs qui ne sont pas explicitement autorisés).
- ~ : SoftFail (message accepté mais marqué comme potentiellement frauduleux).
Ex : ~all (les serveurs non autorisés sont acceptés mais signalés).
- ? : Neutral (le serveur ne prend aucune mesure).
Ex : ?all (ne spécifie aucune préférence pour les serveurs non autorisés).
Cas pratiques et exemples d’implémentation
Cas 1 : Autoriser une adresse IP spécifique
Pour autoriser uniquement l’adresse IP 192.0.2.1 à envoyer des e-mails pour votre domaine, vous pouvez configurer la règle SPF suivante :
v=spf1 ip4:192.0.2.1 -all
Dans ce cas, seule l’adresse 192.0.2.1 est autorisée, et tout autre serveur sera rejeté.
Cas 2 : Autoriser une plage d’adresses et inclure un service tiers
Imaginons que vous ayez une plage d’adresses IP 198.51.100.0/24 et que vous utilisiez un service de gestion d’e-mails tiers comme MailChimp. Vous pouvez écrire votre enregistrement SPF comme ceci :
v=spf1 ip4:198.51.100.0/24 include:_spf.mailchimp.com -all
Cette configuration autorise toute la plage 198.51.100.0/24 ainsi que les serveurs de MailChimp. Tout autre serveur sera rejeté.
Cas 3 : Autoriser tous les serveurs MX et ajouter une tolérance pour d’autres serveurs
Dans ce scénario, vous voulez autoriser les serveurs MX définis dans votre DNS et accepter, avec un SoftFail, tout autre serveur. Vous pourriez utiliser l’enregistrement suivant :
v=spf1 mx ~all
Ici, les serveurs de messagerie définis dans vos enregistrements MX sont autorisés, tandis que les autres serveurs sont acceptés mais signalés comme suspects.
Que se passe-t-il en cas d’échec du SPF ?
Lorsque la vérification SPF échoue, le comportement dépend de la politique définie par le domaine du destinataire. Si un e-mail ne correspond à aucune des règles SPF, plusieurs actions peuvent être entreprises :
Rejet immédiat du message (si la politique est stricte avec -all).
Marquage comme spam avec SoftFail (~all).
Aucune action avec un qualificateur ?.
Il est essentiel de noter que l’échec du SPF ne signifie pas automatiquement que l’e-mail sera rejeté, car cela dépend de la configuration du serveur de messagerie récepteur.
Bonnes pratiques pour la configuration SPF
Limiter les “includes” : Évitez d’ajouter trop de domaines avec l’instruction include, car cela peut entraîner des problèmes de performance ou dépasser la limite de 10 requêtes DNS autorisées par la spécification SPF.
Utiliser -all prudemment : Il est souvent recommandé de commencer avec ~all pour surveiller les e-mails non autorisés sans les rejeter immédiatement.
Monitorer les résultats SPF : Utilisez des outils comme les rapports DMARC pour suivre les échecs de vérification SPF et ajuster votre configuration en conséquence.
Configurer son SPF sur le panel d’hébergement ETHERSYS
C’est un réglage DNS lié au domaine. Donc menu de gauche : Domaines, puis la route crantée du domaine concerné, puis l’onglet “Enregistrements DNS”. Cherchez ensuite l’enregistrement de type TXT qui commence par “v=spf1”.
Conclusion
Le SPF est un mécanisme essentiel pour protéger vos domaines contre l’usurpation d’identité dans l’envoi d’e-mails. En configurant correctement les règles SPF dans vos enregistrements DNS, vous renforcez la sécurité de vos communications et réduisez les risques de voir vos e-mails marqués comme spam. Assurez-vous de bien comprendre les différents mécanismes et qualificateurs, et adaptez votre configuration en fonction de vos besoins pour éviter les faux positifs et garantir la livraison de vos messages légitimes.
N’hésitez pas à consulter un expert Ethersys ou des outils spécialisés pour auditer vos configurations DNS et SPF afin d’optimiser la protection de vos domaines.