Comment configurer SPF pour plusieurs domaines sur un serveur? (autorisant également gmail en tant qu'expéditeur)

9

SPF (Sender Policy Framework) semble être un bon moyen de lutter contre les spammeurs / usurpation d'identité.

Cependant, malgré la lecture des explications à plusieurs reprises, je ne comprends pas très bien comment le configurer correctement.


Disons que j'ai mon serveur à a.x.comquels hôtes www.x.comet b.x.comet c.x.comet ainsi de suite.

J'ai aussi a.co.uk b.net c.infoet ainsi de suite, chacun d'eux avec un assortiment de sous-domaines, tous hébergés surx.com

Pour tous ces domaines et sous-domaines, je souhaite autoriser l'envoi de courrier depuis a.x.com

Je voudrais également qu'ils autorisent tous les messages envoyés depuis Gmail pour tous ces domaines.

Comment configurer cela avec SPF?

Puis-je définir un enregistrement SPF pour x.com(ou a.x.com), puis pour tout le reste, simplement avoir un simple inclusion / pointeur vers x.coml'enregistrement de, ou faudrait-il le faire différemment?

Quelqu'un peut-il fournir des enregistrements SPF pour l'exemple ci-dessus?


Remarque: La deuxième partie de ma question a été répondue (utilisez " v=spf1 include:x.com -all" pour inclure / pointer vers x.comle dossier de), mais la partie clé de ce qu'il faut régler x.comreste sans réponse ...

Peter Boughton
la source
En fait, il s'est avéré un moyen désespérément inefficace de réduire le spam. En fait, sans doute, cela ne vise vraiment que le traitement de l'usurpation d'adresse de l'expéditeur.
Christopher Edwards
2
"c'est uniquement destiné à lutter contre l'usurpation d'adresse de l'expéditeur" - exactement, pour empêcher les spammeurs d'envoyer du courrier semblant provenir des domaines des autres.
Peter Boughton

Réponses:

7

Vous ne pouvez pas éviter d'avoir à modifier les fichiers de zone pour les domaines autres que x.com, mais vous pouvez vous éviter beaucoup de problèmes en définissant des politiques communes hébergées sur un domaine et en utilisant le redirectmot clé SPF sur les autres domaines. Exemple:

  • Dans le fichier de zone du x.comdomaine:
_policy1 IN TXT "v = spf1 a: axcom -all"
_policy2 IN TXT "v = spf1 inclut: _spf.google.com a: axcom -all"

_spf.google.comest le dossier contenant le dossier Gmail SPF. Je ne sais pas si c'est documenté. Théoriquement, vous devriez, include:gmail.commais c'est une redirection vers _spf.google.comet il y a eu au moins un correctif SPF largement utilisé pour qmail qui ne le suivait pas correctement (corrigé en août 2008 mais pourrait encore être déployé.) Les deux politiques sont des exemples, bien sûr - en avoir plusieurs avec différents niveaux de rigueur est extrêmement utile lors du débogage, car il suffit de modifier un nom court dans le domaine cible au lieu d'un copypasting sujet aux erreurs.

  • Dans les fichiers de zone pour les autres domaines:
@ IN TXT "v = redirection spf1 = _policy1.x.com"

ou

@ IN TXT "v = redirection spf1 = _policy2.x.com"

etc. J'utilise redirect, non include, pour que la vérification SPF remplace complètement l'enregistrement actuellement évalué par celui vers lequel je redirige. includene fait pas cela - par exemple, un -allà la fin d'un includene provoque pas l'arrêt de l'évaluation ( includeest un mauvais terme). Vous devez éviter d'utiliser includelorsque vous "alias" un enregistrement SPF d'un autre domaine, car il est assez fragile - si vous oubliez accidentellement la fin de tout, vous risquez de rendre votre SPF entier sur ce domaine inefficace.

Modifier: veuillez noter, cependant, que vous devez être sur vos gardes si vous souhaitez autoriser les serveurs de Gmail en tant qu'expéditeurs. Le chaptcha Gmail a été craqué, ce qui signifie qu'il est possible d'automatiser les inscriptions de compte, ce qui signifie que Gmail peut être (indirectement) utilisé comme un relais ouvert (je reçois des dizaines de demandes d'inscription par semaine pour mon forum de discussion d'entreprise, toutes utilisant Adresses e-mail gmail.com - et ces adresses sont actives, j'en ai autorisé quelques-unes à vérifier à des fins de vérification.) De plus, toute personne possédant un compte Gmail peut contourner la vérification SPF si elle est familière avec les parties uwsername des adresses e-mail de vos domaines. .

Mihai Limbăşan
la source
Merci, c'est une réponse utile. La dernière fois que j'ai vérifié, Gmail nécessite une validation par e-mail avant de pouvoir envoyer des e-mails à partir d'autres adresses - donc une fois que la boîte de réception de cette adresse est sécurisée, tout va bien? Quelle est l'importance / n'est pas également d'avoir des lignes «www» comme dans la réponse de bortzmeyer?
Peter Boughton
1
C'est vrai, mais une fois qu'une fissure apparaît dans la foudation, je suis sûr que quelqu'un trouvera un moyen de traverser la moitié de la rivière :) Je ne dis pas que vous ne devriez pas, je recommande simplement d'être sur vos gardes et de vérifier périodiquement si Gmail est être exploité, c'est-à-dire s'il vous plaît ne pas abandonner l'autorité à Gmail indéfiniment. Je leur fais plus confiance que je ne fais plus confiance aux entités en ligne, mais c'est juste un peu de confiance contre aucune confiance du tout.
Mihai Limbăşan
Je n'ai aucune idée pourquoi bortzmeyer a inclus les entrées www. Ils sont entièrement inutiles à moins que vous n'envoyiez réellement du courrier de @ www.x.com qui (en plus de ne pas être beaucoup utilisé) semble tout à fait bizarre et induit la confusion chez des personnes moins que techniquement averties.
Mihai Limbăşan
2
De plus, je n'utiliserais PAS de types d'enregistrement SPF. Je vous recommande de rester avec TXT. Le type d'enregistrement SPF n'est pris en charge que par BIND 9.4 et supérieur, par RFC, vous devez également conserver des répliques des enregistrements TXT, c'est-à-dire que vous devez copypaste coller des trucs (mauvais) et vous devez les maintenir synchronisés (dur). Le gain est inexistant puisque TXT sera le principal mécanisme de livraison de SPF dans un avenir prévisible, a déclaré openspf.org.
Mihai Limbăşan
1
@Mihai Limbasan: excellente réponse, merci pour le partage. Dans le cas où vous pensez qu'il est nécessaire de mettre à jour votre réponse, Google semble préférer v=spf1 include:_spf.google.com ~allà la place -all, en supposant que j'ai bien compris, réf. google.com/support/a/bin/answer.py?answer=178723
Marco Demaio
4

Oui, vous pouvez inclure la configuration d'un de vos domaines dans les enregistrements SPF pour tous les autres domaines. La définition de l'enregistrement SPF des autres domaines comme suit devrait faire l'affaire:

v=spf1 include:x.com -all
womble
la source
Est-ce que cela "fonctionnera tout simplement" ou faut-il un sous-domaine _spf ou similaire?
Peter Boughton
Je suis à peu près sûr que si vous avez initialement défini les enregistrements SPF directement sur x.com, l'inclusion pour les autres domaines peut également pointer directement sur x.com. Si vous définissez votre enregistrement SPF dans la route _spf.x.com, alors oui, vous devrez également modifier un peu l'inclusion pour pointer vers ce nom de domaine complet.
womble
2

Avez-vous essayé d'utiliser l'outil Web à http://www.openspf.org/ ? Cela pourrait vous faciliter la tâche un peu plus ...

Entrez simplement votre domaine dans la case en haut à droite et cliquez sur le bouton OK. À partir de là, vous devriez pouvoir mettre les choses en place rapidement.

Avery Payne
la source
1
J'ai essayé plusieurs fois avec cet outil, mais les explications ne sont pas assez claires.
Peter Boughton
2

La norme RFC 4408 fournit des exemples très proches de ce que vous voulez. Voici un extrait du fichier de zone de x.com:

@ IN TXT "v = spf1 a: axcom -all"
      DANS SPF "v = spf1 a: axcom -all"

www IN TXT "v = spf1 a: axcom -all"
      DANS SPF "v = spf1 a: axcom -all"

Remarques:

  • Je n'ai pas ajouté de serveurs de messagerie Gmail parce que je ne les connais pas, demandez aux gens de Gmail
  • 'a' est pour 'adresse' (ce n'est pas un enregistrement DNS A, il inclut IPv6)
  • J'ai ajouté des enregistrements SPF, selon la RFC, bien que presque toutes les implémentations utilisent uniquement l'enregistrement TXT
bortzmeyer
la source
1

Oui, vous devez ajouter l'enregistrement SPF spécifique à chaque domaine individuellement.

La raison en est que le seul enregistrement de type d'aliasing (utile) dans le DNS est l' CNAMEenregistrement. Cependant, l' CNAMEenregistrement provoque l'alias pour TOUS les types RR d'un RRset - il n'y a aucun moyen de dire " CNAMEl'enregistrement SPF mais pas les MXenregistrements "

Alnitak
la source
Je comprends que je vais devoir ajouter un enregistrement SPF pour chaque domaine, mais j'espérais simplement stocker un simple pointeur vers le domaine principal, où toutes les commandes plus complexes peuvent alors vivre. Womble suggère que je puisse utiliser l'inclusion: {domaine} pour cela, mais je ne sais toujours pas si cela inclut simplement / pointe vers les enregistrements SPF pour l'autre domaine, ou si j'ai besoin d'héberger un sous-domaine _spf.x.com?
Peter Boughton
oui, voir la réponse de womble
Alnitak