Microsoft Exchange Server 2019 – Comprendre et configurer les enregistrements DNS

Exchange Server 2019 - Episode 3 : ...
Exchange Server 2019 - Episode 3 : Les enregistrements DNS

I. Présentation

Dans ce nouvel épisode au sujet de Microsoft Exchange Server 2019, nous allons apprendre à configurer les enregistrements DNS nécessaires au bon fonctionnement de notre serveur de messagerie Exchange. Ces enregistrements, de différents types, sont indispensables. Au-delà d'en faire la configuration, il est important de connaître l'utilité de ces enregistrements DNS.

II. Exchange : les enregistrements DNS indispensables

Pour qu'un serveur de messagerie puisse fonctionner, que ce soit un serveur Exchange ou basé sur une autre solution, il y a des prérequis à respecter au niveau des enregistrements DNS. Les types d'enregistrements DNS "MX", "A", "CNAME" ou encore "SPF" sont généralement associés.

Les enregistrements DNS vont permettre aux clients et aux autres serveurs de messagerie de localiser notre serveur Exchange et de vérifier qu'il est bien légitime pour envoyer des e-mails avec ce domaine. Par ailleurs, ces enregistrements DNS vont permettre de configurer la fonctionnalité "Autodiscover", c'est-à-dire la découverte automatique, dont l'objectif est de faciliter la configuration des clients de messagerie (par exemple, l'ajout d'une boîte aux lettres dans Outlook). Ce point sera détaillé dans un prochain article.

Type d'enregistrement Nom DNS Valeur Priorité
A mail.domaine.fr Votre IP publique -
CNAME autodiscover.domaine.fr mail.domaine.fr -
MX @ mail.domaine.fr 10

A. Enregistrements DNS "MX"

Tout d'abord, nous avons l'enregistrement DNS de type "MX" correspondant à "Mail Exchange" (qui n'a rien à voir avec le nom de produit Microsoft Exchange) dont l'objectif est de permettre de localiser le(s) serveur(s) de messagerie associés à un nom de domaine. Au même titre qu'un enregistrement DNS peut permettre de trouver le serveur Web qui héberge le site Internet d'une entreprise, l'enregistrement MX est spécifique aux serveurs de messagerie.

Une fois le serveur de messagerie identifié grâce à l'enregistrement MX, l'e-mail pourra être envoyé. Cela signifie que l'enregistrement MX va permettre le routage des messages. Parfois, au lieu de router les flux directement vers un serveur de messagerie, on indique à la place un service anti-spam, ce qui permet de filtrer les e-mails avant qu'ils n'arrivent jusqu'au serveur Exchange.

Dans cet enregistrement DNS "MX" on va préciser le nom de domaine, le nom FQDN du serveur de messagerie (un autre enregistrement permettra de faire le lien entre ce nom complet FQDN et l'adresse IP du serveur), ainsi qu'une priorité et une durée de vie (TTL). La priorité est utile dans les projets importants où il y a plusieurs serveurs en parallèle, afin d'assurer une redondance. Dans notre cas, il n'y a qu'un seul serveur Exchange donc la priorité n'a pas un réel intérêt, mais c'est à connaître. Le serveur avec la priorité la plus faible sera consulté en premier.

Note : l'enregistrement MX doit impérativement pointer vers un domaine, au même titre qu'un enregistrement CNAME. L'enregistrement MX doit pointer vers un domaine associé à un enregistrement A (IPv4) ou AAAA (IPv6) mais par vers un CNAME.

B. Enregistrements DNS "A" et "CNAME"

Un enregistrement DNS de type A permettra d'indiquer l'adresse IPv4 du serveur de messagerie Exchange, en associant un sous-domaine tel que "mail.domaine.fr". Ici, on reprend le même nom de domaine que celui utilisé dans l'enregistrement MX (comme vous pouvez le voir dans le tableau ci-dessus).

Quant à l'enregistrement CNAME, on l'utilisera pour créer des alias, notamment sur la partie Autodiscover ou l'accès au Webmail (OWA).

C. Enregistrements DNS "SPF"

L'enregistrement DNS de type "TXT" permet de déclarer un "SPF" pour Sender Policy Framework joue un rôle important pour sécuriser un minimum le nom de domaine public. Grâce à lui, on peut déclarer quelles sont les adresses IP (IPv4 ou IPv6) ou les noms de domaine autorisés à envoyer des e-mails pour ce nom de domaine.

Autrement dit, nous devons autoriser le serveur Exchange à envoyer des e-mails pour ce domaine et lorsqu'un serveur de messagerie recevra un e-mail avec ce domaine de messagerie, il pourra le vérifier par lui-même grâce à la lecture de l'enregistrement SPF. Ce qui donne :

600 IN TXT "v=spf1 mx ~all"

Dans l'exemple ci-dessus, le fait de se référer à "mx" permet d'autoriser le serveur visé par l'enregistrement MX de la zone DNS.

Eventuellement, nous pourrions l'ajouter explicitement comme je l'ai fais ci-dessous, mais ce n'est pas indispensable.

v=spf1 mx a:mail.domaine.fr ~all

Dans le cas où l'on a besoin d'autoriser un autre serveur externe à envoyer des e-mails pour ce nom de domaine, nous pourrons aussi l'ajouter à cet enregistrement SPF. Il y a notamment les paramètres "ip4" et ip6" qui permettent de déclarer des adresses IPv4 et IPv6 pour spécifier un hôte.

D. Enregistrements DMARC (+ DKIM)

Pour finir, nous allons évoquer les enregistrements DMARC (et la norme DKIM qui est associée) : bien qu'ils ne soient pas indispensables pour que le serveur Exchange fonctionne et que l'on puisse envoyer/recevoir des e-mails, ils ne doivent pas être ignorés. Ils jouent un rôle important pour améliorer la sécurité et la délivrabilité des e-mails, ce qui évite de finir en spam dans certains cas.

DKIM pour Domain Keys Identified Mail est une norme d'authentification qui permet d'ajouter une signature chiffrée dans l'en-tête des e-mails que vous envoyez. Les e-mails restent accessibles en clair, mais l'intérêt c'est de lutter contre l'usurpation d'identité et l'altération des messages, car on est capable de vérifier que le serveur émetteur est bien qui il prétend être.

DMARC pour Domain-based Message Authentication, Reporting, and Conformance permet d'indiquer une politique à appliquer dans le cas où une usurpation d'identité est détectée. En effet, avec DKIM (et SPF) on authentifie et vérifie l'émetteur, mais que faire dans le cas où il y a un problème ? C'est là que DMARC entre en jeu et cette politique se définit au sein du DNS.

Pour la mise en œuvre de DKIM et DMARC, ce sera abordé dans un prochain épisode. Pour en savoir, vous pouvez lire cet article qui s'applique à Office 365 mais où les concepts de DKIM et DMARC sont détaillés.

III. Les enregistrements internes et externes

Un serveur de messagerie Exchange, au même titre qu'un Active Directory, s'appuie sur le DNS pour son fonctionnement. Ce serveur Exchange hébergé sur votre infrastructure (dans une DMZ) est accessible à la fois depuis l'extérieur et depuis l'intérieur de votre réseau local.

Les enregistrements DNS évoqués précédemment seront configurés sur la zone DNS publique, auprès du fournisseur que vous avez choisi au moment d'acheter votre nom de domaine. Par exemple, si l'on achète le nom de domaine "domaine.fr" chez OVHcloud, il faudra se connecter sur l'interface de gestion d'OVHcloud pour configurer la zone DNS. Ainsi, lorsqu'un hôte cherchera à localiser le serveur de messagerie pour ce domaine, il obtiendra l'adresse IP publique votre serveur Exchange.

Quand il est connecté à l'extérieur du réseau, c'est bien qu'il utilise l'adresse IP publique. Par exemple, un utilisateur connecté avec son PC au réseau d'un hôtel, ou encore un serveur de messagerie qui a besoin de contacter votre serveur pour vous transmettre un e-mail. Par contre, quand l'hôte est en interne (par exemple, l'ordinateur fixe connecté au réseau local), il doit utiliser les adresses IP locales (ici 10.10.100.211/24) pour atteindre le serveur Exchange. Sauf que ce n'est pas déclaré dans la zone DNS publique. De ce fait, il faut configurer le serveur DNS qui héberge déjà la zone DNS de l'Active Directory pour qu'il effectue la résolution avec l'adresse IP interne lorsque le client est en interne. Cela passe par la création d'une zone supplémentaire.

Exchange Server - DNS Interne et externe

En résumé, les connexions en provenance de l'extérieur doivent arriver sur l'adresse IP publique et les connexions internes doivent arriver sur l'adresse IP locale, même si l'on utilise les mêmes noms de domaine. Grâce au DNS, on peut arriver à ce résultat.

IV. Configurer les zones DNS

Le domaine "florianburnel.fr" est pris à titre d'exemple.

A. La zone DNS publique pour Exchange

La zone DNS publique doit être configurée auprès du fournisseur (registrar) où le domaine a été acquis. Pour la partie Exchange, je retrouve 4 enregistrements : MX, A, CNAME et SPF correspondants à ce que j'évoquais précédemment.

Exchange - Exemple zone DNS publique

En mode texte :

$TTL 3600
@ IN SOA dns104.ovh.net. tech.ovh.net. (2022111004 86400 3600 3600000 300)
  IN NS ns104.ovh.net.
  IN NS dns104.ovh.net.
  IN MX 10 mail.florianburnel.fr.
  600 IN TXT "v=spf1 mx ~all"
  autodiscover IN CNAME mail.florianburnel.fr.
  mail IN A 4.233.92.148

À partir d'une machine cliente, il est possible de vérifier la résolution de noms. On peut utiliser Resolve-DnsName en PowerShell, ou l'outil nslookup, voire même l'outil en ligne MXToolbox (qui a aussi une option pour valider votre SPF). On peut remarquer que c'est opérationnel et que l'adresse IP publique est associée à "mail.florianburnel.fr".

Resolve-DnsName - Exchange - Zone publique - Exemple 1

La résolution de noms fonctionne aussi pour l'enregistrement associé à l'Autodiscover.

Resolve-DnsName - Exchange - Zone publique - Exemple 2

Passons à la zone DNS privée.

B. La zone DNS interne pour Exchange

D'un point de vue du DNS interne, nous allons appliquer le principe du PinPoint DNS, c'est-à-dire que l'on va créer une zone "mail.domaine.fr" et une zone "autodiscover.domaine.fr" qui vont contenir un enregistrement de type A qui pointe vers l'adresse IP locale du serveur Exchange Server 2019. C'est préférable d'utiliser cette méthode plutôt que de créer la zone "domaine.fr" sinon cela oblige à maintenir la zone deux fois : en local et sur l'interface du fournisseur DNS.

Ouvrez la console DNS et créez une nouvelle zone. Un assistant s'exécute.

Exchange - Zone DNS interne Active Directory - Etape 1

Nous allons créer une zone primaire "Primary zone" et elle sera stockée dans l'Active Directory ("Store the zone in Active Directory").

Exchange - Zone DNS interne Active Directory - Etape 2

A l'étape suivante, on décide de répliquer cette zone auprès de tous les contrôleurs de domaine du domaine "it-connect.lan" pour unifier la résolution de noms pour cette zone.

Exchange - Zone DNS interne Active Directory - Etape 3

En ce qui concerne le nom de la zone, nous allons indiquer "mail.florianburnel.fr" pour définir un enregistrement local personnalisé uniquement pour ce sous-domaine.

Exchange - Zone DNS interne Active Directory - Etape 4

On poursuit en choisissant de refuser les mises à jour dynamiques ("Do not allow dynamic updates"). Puis, on finalise l'ajout de la zone.

Exchange - Zone DNS interne Active Directory - Etape 5

Dans cette nouvelle zone, on ajoute un nouvel hôte via un enregistrement de type "A".

Exchange - Zone DNS interne Active Directory - Etape 6

Nous n'indiquons pas de nom, car on souhaite jouer sur la résolution "mail.florianburnel.fr", et non d'un autre hôte. Pour l'adresse IP, il faut indiquer l'adresse IP privée du serveur Exchange, à savoir "10.10.100.211" dans mon cas. Ainsi, la résolution s'effectuera sur l'adresse IP interne pour cette adresse.

Exchange - Zone DNS interne Active Directory - Etape 7

Répétez l'opération pour la zone Autodiscover, à savoir "autodiscover.florianburnel.fr" dans mon cas et créez le même enregistrement A. Au final, vous obtenez 2 nouvelles zones.

Exchange - Zone DNS interne Active Directory - Etape 8

À partir du serveur ou d'un hôte qui utilise ce serveur comme DNS, on peut tester la résolution de noms. Cette fois-ci, c'est bien l'adresse IP "10.10.100.211" qui est renvoyée à la place de l'adresse IP publique. Cela fonctionne !

Exchange - Zone DNS interne Active Directory - Etape 9

Une autre méthode basée sur le principe du "Split-Brain DNS" consiste à créer des politiques au niveau du serveur DNS. Ce n'est pas très user-friendly comme méthode si vous n'êtes pas à l'aise avec PowerShell. Vous pouvez lire ces deux articles pour approfondir le sujet :

V. Conclusion

Nous venons de voir les grands principes des enregistrements DNS avec les serveurs de messagerie, en prenant l'exemple d'Exchange Server. Puis, nous avons également vu comment effectuer la configuration des zones DNS externes et internes.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 4244 posts and counting.See all posts by florian

4 thoughts on “Microsoft Exchange Server 2019 – Comprendre et configurer les enregistrements DNS

  • Petite correction concernant l’enregistrement SPF : l’include permet de faire référence à un enregistrement SPF spécifié sur un autre domaine. Dans le cas présent, il faudrait plutôt utiliser la syntaxe suivante (bien que le serveur Exchange soit déjà autorisé par la mention mx) :
    v=spf1 mx a:mail.domaine.fr ~all

    Répondre
    • Hello ericf, merci beaucoup d’avoir relevé la coquille ! Effectivement ce n’était pas bon du tout, j’ai confondu avec la syntaxe habituelle pour O365… C’est corrigé désormais. Merci encore.

      Répondre
  • J’en profite pour ajouter une précision. Le type d’enregistrement DNS pour le SPF doit être TXT. Sur OVH, le type SPF a été adapté pour générer un TXT à partir d’un formulaire de saisie, mais tous les registrars n’ont pas ce système.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.