1 votes

Comment configurer les enregistrements DNS SPF pour de nombreux sous-domaines ?

J'ai un nom de domaine, disons exemple.com, et de nombreux serveurs (potentiellement des centaines), chacun avec une IP publique et un sous-domaine (sub1.exemple.com, sub2.exemple.com, etc.). Chaque serveur héberge une installation Postfix. L'objectif ici est de pouvoir envoyer des courriels à partir de n'importe quel serveur (et non de recevoir des courriels). Il n'y a cependant pas de serveur de messagerie attaché au domaine principal lui-même (exemple.com).

J'essaie maintenant de configurer les entrées SPF dans le DNS, mais je suis un peu bloqué. J'ai essayé de nombreuses combinaisons mais elles se terminent toujours par un SPF SOFTFAIL lorsque j'essaie d'envoyer un e-mail à gmail. De plus, je ne sais pas comment contourner les limitations de la longueur de l'enregistrement SPF avec autant de serveurs/IP.

J'ajoute un peu plus de contexte (même si j'ai accepté la réponse de Bob).

L'idée est d'avoir une architecture très redondante, où n'importe quel serveur peut tomber en panne et le système dans son ensemble continuera à fonctionner (au moins pour l'envoi de courriels). Je n'ai pas de contrôle sur la gamme d'adresses IP : les serveurs seront provisionnés dans plusieurs pays et chez plusieurs fournisseurs. J'ai essayé de définir une entrée SPF pour le nom de domaine principal uniquement.

                     600 IN TXT    "v=spf1 mx ~all"

Lors de l'envoi à Gmail, j'obtiens une erreur SOFTFAIL pour la validation SPF, l'e-mail étant envoyé à partir d'un sous-domaine (comme sub1.domain.com).

J'ai ensuite essayé d'ajouter l'adresse IP de l'expéditeur dans l'enregistrement :

                      600 IN TXT    "v=spf1 mx ip4:server_ip ~all"

Mais je me retrouve avec la même erreur SOFTFAIL. J'ai également essayé d'ajouter une autre entrée SPF pour le sous-domaine, mais d'après ce que je comprends, une seule entrée SPF doit être créée :-/ J'ai également essayé d'inclure : les noms de domaine, avec le même résultat.

Toute aide ou orientation serait appréciée :-)

1 votes

"essayé de nombreuses combinaisons" -- s'il vous plaît editar votre question doit préciser ce que vous voulez accomplir, ce que vous avez essayé et pourquoi le fait de spécifier vos blocs IP dépasse les limites.

2voto

bob Points 136

Cela dépend un peu de vos objectifs et des problèmes que vous rencontrez.

Il existe plusieurs mécanismes SPF permettant de faire correspondre des classes d'hôtes sans énumérer tous les hôtes directement dans l'enregistrement SPF, par exemple :

  • le site ip4 mécanisme et équivalent ip6 pour faire correspondre les sous-réseaux lorsque tous vos serveurs appartiennent à une ou plusieurs plages d'adresses IP qui vous sont exclusivement réservées :

    ip4:<ip4-network>/<prefix-length>
    ip6:<ip6-network>/<prefix-length>
  • vous pouvez créer un seul enregistrement A (par exemple bob.example.com ) qui contient tous les enregistrements AAAA IPv4 A et/ou IPv6 (en mode round-robin) des serveurs que vous souhaitez autoriser à envoyer du courrier directement sur IPv4 resp. IPv6 et y faire référence dans votre enregistrement SPF :

    “v=spf1 a:bob.example.com. ~all”
    
    bob.example.com.  IN A     10.0.0.1
    bob.example.com.  IN A     192.168.0.1
    bob.example.com.  IN A     172.16.0.2
    bob.example.com.  IN AAAA  2001:db8:ffff:ffff:ffff:ffff:ffff:fff1 
  • le site include peut être utilisé lorsque votre enregistrement SPF devient trop long pour tenir dans un seul enregistrement DNS. Par exemple, l'enregistrement SPF actuel de Gmail/Google ne comprend pas directement de plages d'adresses IP, mais inclut celles de trois autres enregistrements :

    _spf.google.com.  300 IN  TXT "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"
    
    _netblocks.google.com.    300 IN  TXT "v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"
    
    _netblocks2.google.com.   300 IN  TXT "v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all"
    
    _netblocks3.google.com.   300 IN  TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"

Une autre solution consiste à NE PAS autoriser tous vos hôtes à envoyer directement des courriels. Configurez un ou plusieurs serveurs comme relais de messagerie dédiés et n'autorisez que ceux-ci dans votre SPF. Vous configurez ensuite tous les autres serveurs pour qu'ils utilisent ces relais.

0 votes

Bonjour Bob, Merci pour votre réponse, cela nous éclaire sur les solutions possibles. Étant donné que je pourrais finalement avoir jusqu'à 200 serveurs, il semble que la meilleure solution soit la dernière : ne pas les autoriser tous à envoyer des e-mails directement - sinon je finirai probablement par être limité par la taille de l'enregistrement SPF, même si j'utilise des enregistrements supplémentaires. Merci encore, cela m'a été très utile. Pascal

1voto

glts Points 460

La description de votre cas d'utilisation n'est pas assez complète. Mais si votre but est d'envoyer des emails depuis *@example.com de l'un de ces serveurs, alors le SPF ptr est conçu précisément pour ce cas d'utilisation.

Vous devez mettre en place un DNS inverse approprié 1.2.3.4 sub1.example.com 1.2.3.4, pour chacun des serveurs de sous-domaines.

Ensuite, vous installerez l'enregistrement SPF suivant sur le domaine principal exemple.com :

v=spf1 ptr -all

C'est tout.

L'avantage de cette approche par rapport à d'autres est qu'elle est facile à mettre en place, qu'elle ne se heurte pas à des limites de consultation et qu'elle peut s'adapter à un nombre arbitraire de sous-domaines hôtes.

L'inconvénient est qu'il est quelque peu en contradiction avec les prescriptions du RFC SPF : Le RFC 7208 décourage l'utilisation de l'option ptr mécanisme. Cependant, on peut argumenter que la formulation est trop sévère, et étant donné l'utilisation que vous faites de l'option ptr est acceptable. Voir aussi ma question 1063826 .

0 votes

Mon objectif est en effet de pouvoir envoyer du courrier électronique à partir de n'importe quel serveur rattaché à un sous-domaine, comme sub1.example.com, sub2.example.com. Cependant, le destinataire du courriel ne doit voir que exemple.com comme expéditeur (même si l'expéditeur réel est visible dans le courriel brut). J'ai configuré le reverse DNS pour ipv4 et ipv6, et j'ai ajouté une entrée A et une entrée AAAA dans le DNS pour mon sous-domaine (appelons-le sub1.example.com). J'ai essayé votre suggestion avec ``` v=spf1 ptr -all ``` Et en effet je passe maintenant la vérification SPF sur Gmail :-)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X