🛠️ Guide technique
Outil proposé par la scop ézéo, qui accompagne entreprises, associations et structures de l’ESS dans l’adoption d’outils numériques libres, notamment autour de Nextcloud, en mettant l’accent sur la formation et l’appropriation par les équipes.
Comment identifier l'hébergeur mail d'un domaine à partir de ses enregistrements DNS ?
Ce guide détaille la méthode et les commandes pour le faire vous-même.
📬 Étape 1 : Les enregistrements MX
L'enregistrement MX (Mail Exchanger) indique quel serveur est responsable de la réception des emails pour un domaine. C'est le point de départ de toute analyse.
Chaque enregistrement MX contient une priorité (plus le chiffre est bas, plus le serveur est prioritaire) et un nom d'hôte. C'est ce nom d'hôte qui donne souvent le premier indice sur l'hébergeur.
🐧 Linux / macOS
🪟 Windows
$ dig MX exemple.fr +short
1 aspmx.l.google.com.
5 alt1.aspmx.l.google.com.
10 alt2.aspmx.l.google.com.
C:\> nslookup -type=MX exemple.fr
exemple.fr MX preference = 1, mail exchanger = aspmx.l.google.com
exemple.fr MX preference = 5, mail exchanger = alt1.aspmx.l.google.com
Pourquoi le MX ? Le nom du serveur MX contient presque toujours une signature de l'hébergeur. Si vous voyez google.com, outlook.com, ovh.net ou infomaniak.ch dans le nom, l'identification est immédiate.
On analyse le MX de plus haute priorité (chiffre le plus bas). L'outil compare le nom d'hôte avec une base de mots-clés associés à des hébergeurs connus.
Limite : Si un service anti-spam (Mailinblack, Altospam, Proofpoint…) est en frontal, le MX pointe vers l'anti-spam et non vers l'hébergeur réel. C'est là qu'intervient l'analyse SPF.
🛡️ Étape 2 : L'enregistrement SPF
Le SPF (Sender Policy Framework) est un enregistrement TXT qui liste les serveurs autorisés à envoyer des emails pour un domaine. C'est notre meilleur allié quand un anti-spam masque le MX.
🐧 Linux / macOS
🪟 Windows
$ dig TXT exemple.fr +short | grep spf
"v=spf1 include:_spf.google.com include:spf.mailinblack.com ~all"
C:\> nslookup -type=TXT exemple.fr
"v=spf1 include:_spf.google.com include:spf.mailinblack.com ~all"
Pourquoi le SPF ? Même si le MX pointe vers un anti-spam, le SPF doit lister l'hébergeur mail réel pour que les emails sortants soient authentifiés. Les directives include: pointent vers les domaines SPF des services utilisés. C'est un indicateur fiable car l'hébergeur mail doit y figurer pour que l'envoi fonctionne.
L'analyse consiste à :
1. Extraire toutes les directives include: et redirect= du SPF.
2. Filtrer les services qui ne sont pas des hébergeurs mail : outils marketing (Mailchimp, Sendinblue…), ERP/CRM (Salesforce, HubSpot…), et les anti-spam eux-mêmes.
3. Comparer les includes restants avec la base de mots-clés d'hébergeurs.
Dans l'exemple ci-dessus, _spf.google.com identifie Google Workspace comme hébergeur, et spf.mailinblack.com est filtré comme anti-spam.
Cas problématique : Si le SPF contient plusieurs hébergeurs mail (par exemple _spf.google.com + spf.protection.outlook.com), c'est souvent le signe d'une migration en cours ou d'un SPF mal nettoyé. C'est là qu'on passe à l'Autodiscover pour trancher.
🔄 Étape 3 : Autodiscover / Autoconfiguration
Autodiscover est un mécanisme utilisé par les clients mail (Thunderbird, Outlook,…) pour configurer automatiquement les paramètres de connexion. Il pointe vers l'hébergeur mail actuellement utilisé.
On vérifie deux types d'enregistrements :
a) Le CNAME autodiscover.domaine.fr
🐧 Linux / macOS
🪟 Windows
$ dig CNAME autodiscover.exemple.fr +short
autodiscover.outlook.com.
C:\> nslookup -type=CNAME autodiscover.exemple.fr
autodiscover.exemple.fr canonical name = autodiscover.outlook.com
b) L'enregistrement SRV _autodiscover._tcp.domaine.fr
🐧 Linux / macOS
🪟 Windows
$ dig SRV _autodiscover._tcp.exemple.fr +short
0 0 443 mail.infomaniak.com.
C:\> nslookup -type=SRV _autodiscover._tcp.exemple.fr
_autodiscover._tcp.exemple.fr SRV service location:
priority = 0, weight = 0, port = 443, target = mail.infomaniak.com
Pourquoi l'Autodiscover ? Contrairement au SPF qui peut contenir des traces d'anciens hébergeurs, l'Autodiscover pointe presque toujours vers le fournisseur actuellement en service. C'est un très bon arbitre quand le SPF est ambigu. Son principal défaut : il n'est pas toujours configuré.
🤝 Étape 4 : La bannière SMTP
En se connectant au port 25 du serveur MX, on récupère sa bannière d'accueil SMTP. Cette bannière peut révéler le logiciel utilisé (Postfix, Exchange, Exim…) ou parfois directement le nom de l'hébergeur.
🐧 Linux / macOS
🪟 Windows
$ telnet aspmx.l.google.com 25
220 mx.google.com ESMTP gsmtp
$ echo "QUIT" | nc -w 3 aspmx.l.google.com 25
220 mx.google.com ESMTP gsmtp
C:\> telnet aspmx.l.google.com 25
220 mx.google.com ESMTP gsmtp
PS> (New-Object Net.Sockets.TcpClient("aspmx.l.google.com",25)).GetStream() | ...
220 mx.google.com ESMTP gsmtp
Attention : Beaucoup de FAI et de réseaux d'entreprise bloquent le port sortant 25. Cette étape peut ne pas fonctionner depuis tous les environnements.
🏠 Étape 5 : Détection de l'auto-hébergement
Si aucun hébergeur connu n'est identifié, on vérifie si le domaine du serveur MX correspond au domaine recherché.
10 mail.monentreprise.fr.
Logique : Si monentreprise.fr a un MX qui pointe vers mail.monentreprise.fr, smtp.monentreprise.fr ou tout sous-domaine de monentreprise.fr, c'est que probalement l'organisation gère elle-même son infrastructure mail.
🌍 Étape 6 : Géolocalisation du serveur
Une fois le serveur MX identifié, on résout son adresse IP puis on interroge une base de géolocalisation pour déterminer le pays d'hébergement. Service : db-ip.com
🐧 Linux / macOS
🪟 Windows
$ dig A aspmx.l.google.com +short
142.250.153.26
$ curl -s "http://api.db-ip.com/v2/free/142.250.153.26/countryName"
United States
C:\> nslookup aspmx.l.google.com
Address: 142.250.153.26
PS> (Invoke-WebRequest "http://api.db-ip.com/v2/free/142.250.153.26/countryName").Content
United States
Fiabilité : La géolocalisation IP donne le pays du datacenter, pas nécessairement le pays de l'entreprise hébergeuse. Un hébergeur français peut utiliser un datacenter aux Pays-Bas, par exemple. Si un anti-spam est en frontal, la localisation sera celle de l'anti-spam, pas de l'hébergeur mail final.
📝 Récapitulatif des enregistrements DNS utilisés
| Enregistrement |
Rôle |
Fiabilité |
| MX |
Identifie le serveur qui reçoit les emails |
Haute sauf si anti-spam en frontal |
| TXT (SPF) |
Liste les serveurs autorisés à envoyer des emails |
Haute mais peut contenir des restes d'ancienne config |
CNAME / SRV (Autodiscover) |
Pointe vers le fournisseur mail pour la configuration auto |
Très haute mais pas toujours présent |
| Bannière SMTP |
Identifie le logiciel serveur, parfois l'hébergeur |
Variable dépend de la configuration du serveur |
⚠️ Limites connues
Cette méthode fonctionne dans la majorité des cas, mais certaines configurations restent difficiles à analyser :
- Anti-spam sans SPF exploitable : si le domaine n'a pas d'enregistrement SPF (ou un SPF trop générique), la détection derrière un anti-spam échoue.
- SPF hérité / non nettoyé : des includes d'anciens hébergeurs peuvent fausser l'analyse.
- Hébergeurs non référencés : la méthode repose sur une base de mots-clés ; un hébergeur inconnu ne sera pas reconnu.
- Configurations atypiques : relais SMTP personnalisés, serveurs mutualisés avec des noms génériques, etc.
- Port 25 filtré : la récupération de la bannière SMTP peut échouer depuis certains réseaux.
Le code source de cet outil est disponible sur
GitLab.
Contributions bienvenues !