E-mails

Ne plus recevoir d’e-mails sur un nom de domaine : le Null MX et son mystérieux « . »

Un domaine pour une marque, un site vitrine qui n’utilise pas de messagerie, un domaine racheté pour protéger un nom ou une faute de frappe courante… Beaucoup de noms de domaine n’ont aucune boîte e-mail. Pourtant, rien dans leur configuration DNS ne le dit. Résultat : des serveurs du monde entier tentent quand même de leur livrer du courrier, le plus souvent du spam, et les rares expéditeurs légitimes attendent des jours avant d’apprendre que leur message n’est jamais arrivé.

Il existe une solution standard, simple et méconnue : le Null MX, un enregistrement DNS d’une seule ligne qui tient en trois caractères : MX 0 .. Avant de le mettre en place, voyons à quoi sert un champ MX, comment il fonctionne, et pourquoi ce petit point final fait tout le travail.

À quoi sert un enregistrement MX ?

Le MX (pour Mail eXchanger) est un type d’enregistrement DNS qui indique quel serveur reçoit les e-mails d’un domaine. Quand quelqu’un écrit à [email protected], son serveur d’envoi ne sait pas où se trouve la boîte de destination : il le demande au DNS, en interrogeant les enregistrements MX de exemple.fr.

Un enregistrement MX contient quatre informations :

exemple.fr.   3600   IN   MX   10   mx1.hebergeur.fr.
│             │        │    │    │    └─ le serveur qui reçoit le courrier
│             │        │    │    └─ la priorité (plus petit = préféré)
│             │        │    └─ le type d'enregistrement
│             │        └─ la classe (IN = Internet)
│             └─ la durée de mise en cache (TTL), en secondes
└─ le domaine concerné

Comment ça fonctionne ?

Un domaine publie généralement plusieurs MX pour la redondance :

exemple.fr.   3600   IN   MX   10   mx1.hebergeur.fr.
exemple.fr.   3600   IN   MX   20   mx2.hebergeur.fr.
  1. Le serveur d’envoi extrait le domaine du destinataire (exemple.fr).
  2. Il interroge le DNS pour obtenir les enregistrements MX de ce domaine.
  3. Il les trie par priorité et contacte d’abord celui qui a la valeur la plus basse (ici mx1, priorité 10).
  4. Si ce serveur ne répond pas, il essaie le suivant (mx2, priorité 20).
  5. Si aucun ne répond, il remet le message en file d’attente et réessaie pendant plusieurs jours avant d’abandonner.

Le piège : un domaine sans MX reçoit quand même des e-mails

On pourrait croire qu’il suffit de ne publier aucun MX pour ne rien recevoir. C’est faux. Les règles du protocole SMTP prévoient un repli : en l’absence de MX, le serveur d’envoi tente de livrer le courrier directement à l’adresse IP du domaine (son enregistrement A ou AAAA), c’est-à-dire… à votre serveur web.

Conséquences : des connexions inutiles sur le port 25 de votre serveur, des messages qui restent en attente plusieurs jours chez l’expéditeur avant d’échouer, et un domaine qui semble « exister » pour l’e-mail alors qu’il ne l’est pas. C’est précisément ce que le Null MX vient corriger.

Le Null MX : « ce domaine n’accepte aucun e-mail »

Standardisé en 2015 par la RFC 7505, le Null MX permet à un domaine d’annoncer explicitement qu’il ne reçoit pas de courrier. Il s’agit d’un MX ordinaire, avec une priorité de 0 et un point en guise de serveur :

exemple.fr.   3600   IN   MX   0   .

Lorsqu’un serveur d’envoi rencontre cet enregistrement, il sait qu’il n’y a aucune destination possible : il ne tente pas le repli vers l’adresse IP du site, ne met rien en file d’attente et rejette le message immédiatement. L’expéditeur reçoit aussitôt un avis de non-remise clair (code 556 5.1.10, « Recipient address has null MX »), au lieu d’attendre plusieurs jours. Certains logiciels de messagerie l’avertissent même que l’adresse est peut-être mal saisie.

Et ce point, à quoi sert-il ?

Le point est l’élément le plus intrigant de l’enregistrement, et pourtant il n’a rien de mystérieux une fois qu’on sait comment le DNS écrit les noms.

Le point, c’est la racine du DNS

Le DNS est un arbre. Tout en haut se trouve la racine, qui n’a pas de nom et que l’on note par un simple point. En dessous viennent les extensions (fr, com…), puis les domaines, puis les sous-domaines. Un nom complet, dit « pleinement qualifié » (FQDN), se lit de droite à gauche et se termine toujours par cette racine :

www.exemple.fr.
│   │       │ └─ la racine (nom vide)
│   │       └─ l'extension
│   └─ le domaine
└─ le sous-domaine

Ce point final est presque toujours omis dans un navigateur ou une adresse e-mail, mais il est bien là. Dans un enregistrement MX, écrire . seul revient donc à désigner la racine elle-même, c’est-à-dire un nom vide. Aucun serveur de messagerie ne peut porter ce nom : il est impossible de s’y connecter, et impossible de confondre un Null MX avec un MX réel. C’est ce qui le rend à la fois sûr et immédiatement reconnaissable.

Pourquoi la priorité 0 ?

0 est la priorité la plus forte possible. Combinée à la règle « un seul MX », elle garantit qu’aucun autre serveur ne sera jamais essayé avant ou après. C’est la combinaison exacte priorité 0 + cible « . » qui signe un Null MX.

Le point final dans vos autres enregistrements

Le même point explique une erreur classique dans les fichiers de zone. Un nom qui se termine par un point est absolu ; un nom sans point est relatif, et le serveur DNS lui ajoute automatiquement le domaine. Ainsi, dans la zone exemple.fr :

MX 10 mx1.hebergeur.fr.   → mx1.hebergeur.fr               (correct)
MX 10 mx1.hebergeur.fr    → mx1.hebergeur.fr.exemple.fr    (erreur !)

La plupart des interfaces d’hébergeurs ajoutent ce point pour vous, mais si vous éditez un fichier de zone à la main, c’est le premier réflexe à vérifier quand la messagerie ne fonctionne pas.

Mettre en place un Null MX

1. Supprimer les MX existants

Le Null MX doit être le seul enregistrement MX du domaine. Supprimez d’abord tous les MX existants, y compris ceux ajoutés par défaut par votre registrar (souvent liés à un service de redirection d’e-mails).

2. Ajouter l’enregistrement

Dans un fichier de zone BIND :

@     IN   MX   0   .

Dans une interface d’administration DNS, créez un enregistrement de type MX, laissez le sous-domaine vide, saisissez 0 comme priorité et . comme cible. Certaines interfaces refusent encore une cible réduite à un point : dans ce cas, contactez votre hébergeur DNS.

Attention : le Null MX ne s’applique qu’au nom sur lequel il est posé. Si des sous-domaines existent (www, boutique…), ils peuvent eux aussi faire l’objet du repli vers leur adresse IP. Pour les couvrir, ajoutez le même enregistrement sur chacun d’eux, ou sur un joker * si votre zone en utilise un.

3. Vérifier

# Linux / macOS
dig MX exemple.fr +short
0 .

# Windows
nslookup -type=MX exemple.fr

La réponse doit contenir une seule ligne : 0 .. Tenez compte du TTL des anciens enregistrements : certains serveurs peuvent les garder en cache quelques heures.

Aller plus loin : interdire aussi l’envoi

Le Null MX empêche de recevoir des e-mails. Mais un domaine sans messagerie est une cible de choix pour l’usurpation : des spammeurs peuvent l’utiliser comme adresse d’expéditeur. La RFC 7505 indique d’ailleurs qu’un domaine publiant un Null MX ne doit pas servir à envoyer du courrier, et les serveurs peuvent rejeter les messages qui s’en réclament. Pour fermer complètement la porte, complétez avec trois enregistrements TXT :

; SPF : aucun serveur n'est autorisé à envoyer pour ce domaine
@                 IN   TXT   "v=spf1 -all"

; DMARC : rejeter tout message qui prétend venir de ce domaine
_dmarc            IN   TXT   "v=DMARC1; p=reject;"

; DKIM : aucune clé de signature valide
*._domainkey      IN   TXT   "v=DKIM1; p="

Avec ces quatre lignes, votre domaine dit clairement au reste d’Internet : « je ne reçois rien, je n’envoie rien, et tout message qui prétend le contraire est un faux ».

Quand ne pas l’utiliser

  • Si une adresse du domaine sert encore, même rarement (formulaire de contact, compte d’administration d’un service, adresse de récupération…) : elle cessera immédiatement de recevoir.
  • Si vous utilisez une redirection d’e-mails fournie par votre registrar : elle repose sur des MX qui seront supprimés.
  • Si votre site envoie des e-mails (notifications WordPress, commandes d’une boutique) avec une adresse de ce domaine : n’appliquez pas le volet « envoi » (SPF, DMARC, DKIM) décrit plus haut.

Notre conseil

Faites l’inventaire de vos noms de domaine. Pour chacun de ceux qui n’ont pas de messagerie, le Null MX et les trois enregistrements anti-usurpation prennent quelques minutes à configurer et suppriment durablement une source de spam, de bruit sur vos serveurs et de risque pour votre image.

Besoin d’un coup de main ?

Vous gérez plusieurs domaines et ne savez plus lesquels reçoivent ou envoient du courrier ? Nous pouvons auditer vos zones DNS et sécuriser chacun de vos noms de domaine. Contactez notre équipe, nous vous répondons rapidement.

Sources

À lire aussi

Articles sur le même sujet