sy/va:n coudev://e

Les bases d’une bonne configuration Exchange – Partie 3

Les bases d'une bonne configuration Exchange (Tutorial)

Les bases d’une bonne configuration Exchange – Partie 3

Ce tutoriel est en 4 parties:
Partie 1
Partie 2
Partie 3
Partie 4

Dans la première partie, nous avons fait une check-list de prérequis pour une installation sans soucis.
Dans la seconde partie, nous avons installé, puis configuré Exchange pour pouvoir envoyer des emails en interne.

Maintenant, nous allons voir la configuration d’Exchange pour pouvoir envoyer et recevoir des emails avec Internet.

Pour cela, nous avons déjà un serveur Exchange, et nous aurons besoin des éléments suivants (normalement, déjà déterminés dans la première partie) :

Configuration du FQDN dans le DNS privé

Le concept

Le but est non plus de parler avec le serveur Exchange par son nom interne (exch2013.monAD.local), mais un nom qui est aussi utilisable sur Internet.
De cette manière, vos utilisateurs (et vos Outlook, accessoirement) n’ont qu’un nom à retenir (et à gérer) : votre FQDN public.

Dans notre exemple, nous utiliserons mailhost.sylvaincoudeville.fr.

Déclaration dans le DNS interne

Pour commencer, nous allons déclarer ce nom dans le DNS de notre Active Directory. Pour cela, à partir du contrôleur de domaine, allez dans le Gestionnaire DNS (dnsmgmt.msc) et créez une nouvelle zone de recherche directe :

On saisit le FQDN public comme nouvelle zone recherche directe, pas le nom de domaine :

Maintenant que la zone est créée, on créé un enregistrement ‘A’, sans nom, afin d’affecter l’IP privée au FQDN :

Vérification du fonctionnement

Si le travail a bien été fait, depuis un poste du réseau local, lancez la commande ‘ping fqdn’, et cela doit vous retourner l’IP privée de votre Exchange :

Configuration du nom d’hôte dans Exchange

Le concept

Pourquoi déclarer le nom d’hôte dans Exchange ?

C’est très simple, tout les services Exchange reposent sur le nom des machines de l’infrastructure. Dans ce tutoriel, nous nous contentons d’une architecture mono-serveur Exchange, mais il est tout a fait possible de monter des topologies complètes avec plusieurs serveurs Exchange qui se partagent et répliquent des rôles.

Une des fonctionnalités très importantes dans une topologie Exchange c’est l’Autodiscover. L’Autodiscover est un mécanisme utilisé par Outlook pour déterminer automatiquement les noms des serveurs Exchange de votre organisation.

Il faut donc que ces noms soient correctement renseignés.

Quel(s) nom(s) utiliser ?

Comment nous l’avons vu au début de cette 3ème partie, nous avons mis un accent fort sur l’utilisation du FQDN public (mailhost.sylvaincoudeville.fr).

Mais pourquoi ce choix ?

Exchange sait gérer des noms d’hôtes internes et externes, c’est à dire qu’il est capable de présenter aux clients du LAN le nom d’hôte privé (exch2013.monAD.local), et de présenter le nom d’hôte public (mailhost.sylvaincoudeville.fr) aux clients externes (ceux se connectant depuis Internet).

Cependant, Exchange travaille exclusivement en HTTPS. Du coup, le serveur Exchange présente un certificat (nous en avons parlé dans la première partie). Ce certificat peut 1 ou plusieurs noms d’hôtes.

Mais, dès la fin de l’année (octobre 2016), les autorités de certification ne fourniront plus de certificat pour des noms d’hôtes internes (monAD.local) – voir la RoadMap de Globalsign : https://www.globalsign.fr/centre-information-ssl/nouvelles-exigences.html.

De ce fait, il sera possible d’obtenir des certificats que pour les noms d’hôtes externes (societe.com, societe.fr etc.).

Il est donc préférable de travailler uniquement avec un nom d’hôte externe (mailhost.sylvaincoudeville.fr) puisqu’il sera bientôt le seul type de noms d’hôte qui pourra être “protégé” par un certificat.

Configuration dans Exchange

Il y a 2 manières de configurer les noms d’hôte dans Exchange : l’interface graphique (ECP) ou le PowerShell.

Étant donné le nombre d’occurrences à remplacer il est préférable de mettre de côté l’ECP et de réaliser cette opération uniquement en PowerShell.

Nous allons donc configurer Exchange pour utiliser le nom d’hôte externe (mailhost.sylvaincoudeville.fr) que cela soit en interne, ou en externe.

Ouvrez un Exchange Management Shell et tapez les commandes suivantes :

Get-OABVirtualDirectory|Set-OABVirtualDirectory -InternalUrl https://mailhost.sylvaincoudeville.fr/OAB -ExternalUrl https://mailhost.sylvaincoudeville.fr/OAB
Get-WebServicesVirtualDirectory|Set-WebServicesVirtualDirectory -InternalUrl https://mailhost.sylvaincoudeville.fr/EWS/Exchange.asmx -ExternalUrl https://mailhost.sylvaincoudeville.fr/EWS/Exchange.asmx
Get-EcpVirtualDirectory|Set-EcpVirtualDirectory -InternalUrl https://mailhost.sylvaincoudeville.fr/ecp -ExternalUrl https://mailhost.sylvaincoudeville.fr/ecp
Get-OwaVirtualDirectory|Set-OwaVirtualDirectory -InternalUrl https://mailhost.sylvaincoudeville.fr/owa -ExternalUrl https://mailhost.sylvaincoudeville.fr/owa
Get-ActiveSyncVirtualDirectory|Set-ActiveSyncVirtualDirectory -InternalUrl https://mailhost.sylvaincoudeville.fr/Microsoft-Server-ActiveSync -ExternalUrl https://mailhost.sylvaincoudeville.fr/Microsoft-Server-ActiveSync
Get-ReceiveConnector "Default Frontend EXCH2013"|Set-ReceiveConnector -Fqdn mailhost.sylvaincoudeville.fr
Get-ClientAccessServer|Set-ClientAccessServer -AutodiscoverServiceInternalUri https://mailhost.sylvaincoudeville.fr/Autodiscover/Autodiscover.xml

Sous Exchange 2010, vous devrez aussi fixer le paramètre InternalUrl et ExternalUrl pour Autodiscover :

Get-AutodiscoverVirtualDirectory|Set-AutodiscoverVirtualDirectory -InternalUrl https://mailhost.sylvaincoudeville.fr/Autodiscover/Autodiscover.xml -ExternalUrl https://mailhost.sylvaincoudeville.fr/Autodiscover/Autodiscover.xml




Connecteurs d’envoi et de réception

A quoi ça sert ?

Les connecteurs d’envoi et réception sont les passerelles vers le monde extérieur.

Le connecteur d’envoi, comme son nom l’indique, permet d’envoyer des emails vers l’extérieur.

Le connecteur de réception permet quant à lui de recevoir des emails provenant de l’extérieur.

Le connecteur d’envoi

Avant-propos : méthode d’envoi sur Internet

Le connecteur d’envoi n’est pas créé par défaut.

Avant de le créer, il va falloir se poser la question de comment votre Exchange va distribuer le courrier sur Internet :

Attention ! Si vous faites le 2ème choix, vous devez montrer patte blanche sur Internet, sous peine de voir le courrier distribué de manière aléatoire :

Si vous débutez, je vous conseille d’opter pour le SmartHost. Si votre FAI ne vous fournit pas de serveur SMTP, vous pouvez louer un relais SMTP chez un hébergeur.

Création du connecteur

Allez dans l’ECP, “Flux de messagerie” > “Connecteur d’envoi” > “(+)”.
Donnez un nom à votre connecteur et sélectionnez “Internet” comme Type :

Si vous utilisez un SmartHost (serveur SMTP relais de votre FAI, ou d’un hébergeur), sélectionnez “Acheminer les messages électroniques via des hôtes actifs” puis cliquez sur Ajouter (+) :

Si vous préférez router les messages directement vers les serveurs de messagerie de vos destinataires, choisissez “Enregistrement MX associé au domaine du destinataire” (attention aux prérequis étudiés dans l’avant-propos de ce chapitre) :

Si vous avez opté pour le SmartHost, vous devez spécifier l’adresse du serveur relais que vous utilisez :

Puis, le cas échéant, si le serveur relais SMTP nécessite une authentification, spécifiez les identifiants (et activez le TLS si nécessaire) :

Dans tous les cas, il faut maintenant spécifier l’espace d’adressage, c’est à dire les domaines qui seront gérés par ce connecteur d’envoi à savoir, tous (*) :

Enfin, sélectionnez votre serveur Exchange (seul et unique serveur dans notre topologie) :

Une fois le formulaire validé, le connecteur est créé. Cependant, il va falloir le modifier (l’option en question n’étant pas disponible dans l’assistant).

Après avoir cliqué sur “Modifier”, allez dans “Étendue” et fixez le nom d’hôte :

Une fois terminé, votre connecteur d’envoi est prêt et vous pouvez envoyer des emails vers l’extérieur.

Mais comme votre connecteur de réception n’est pas prêt à recevoir du courrier, vous ne recevrez pas de réponse à vos mails.

Configuration du connecteur de réception

Il existe plusieurs connecteurs de réception créés dès l’installation d’Exchange.

Selon la version, vous en trouverez 2 ou 5.

En Exchange 2010 :

En Exchange 2013 :

Le plus important pour nous est le “Default Frontend” (sous Exchange 2010) ou “Default” sous Exchange 2010.

Ce connecteur écoute le port 25 et a pour but de recevoir le courrier en provenance d’Internet.

Cependant, il y a une petite modification à effectuer dessus afin de pouvoir fixer son nom d’hôte convenablement.

Connectez-vous à l’ECP et allez dans “Flux de messagerie” > “Connecteurs de réception” et modifiez le connecteur “Default Frontend EXCH2013” :

Allez dans l’onglet “Sécurité” et décochez la case “Authentification du serveur Exchange” :

Allez ensuite dans l’onglet “Étendue” et paramétrez le nom d’hôte externe :

Configuration du routeur

Pourquoi?

Et bien, tout simplement parce qu’il faut que vos correspondants sur Internet puissent accéder au Connecteur de réception de votre Exchange pour y déposer du courrier !

Rappelez-vous le schéma de flux vu en première partie :

 

Les emails sont distribués par le biais du protocole SMTP, qui utilise le port 25 en TCP (flux rouge).

Il faut donc ouvrir et rediriger le port 25 de votre routeur, vers le port 25 de votre Exchange.

Comment rediriger le port 25 ?

Ce serait très long à expliquer ici, car totalement dépendant de votre routeur/firewall.

Mais vous trouverez de très nombreux tutoriels en tapant sur Google “Redirection port 25 Freebox” ou encore “Redirection port 25 ZyWall 50” etc.

Attention tout de même à un point important : vous voulez jouer dans la cour des grands en hébergeant votre serveur de messagerie, alors équipez-vous !

Vous devriez faire l’acquisition d’un routeur/firewall avec des fonctionnalités de détection et de blocage d’attaques (IDS/IPS), antivirus et antispam (voir les pré-requis en première partie).

Et le port 443 ?

Et bien c’est la même chose pour le port 443 (TCP). Mais ça, c’est seulement si vous souhaitez pouvoir accéder à votre messagerie depuis l’extérieur de votre LAN, via OWA, Outlook ou votre Smartphone.

Configuration du domaine Internet

Le concept

Tout d’abord, nous allons nous attarder sur le concept de la configuration du domaine.
Vous n’êtes pas forcément habitués à travailler avec des noms de domaine Internet, mais vous connaissez les domaines DNS dans Active Directory.

La bonne nouvelle, c’est que c’est la même chose. La mauvaise, c’est que votre nom de domaine Internet n’est pas géré par votre Active Directory, mais par l’hébergeur qui vous a fourni le nom de domaine (OVH, Gandi, Amen, etc.).

Avant de continuer, il vous faudra les accès à la configuration de votre domaine chez votre hébergeur. Vous trouverez ci-dessous les guides d’administration des DNS des principaux hébergeurs.

Guides d’administration des principaux hébergeurs

OVH : http://guide.ovh.com/ManagerServicesDomaine – Voir la section “Configurer vos DNS”
GANDI : https://wiki.gandi.net/fr/dns/zone/mx-record
AMEN : http://www.amenwiki.com/index.php/Domaine_-_Configuration_de_votre_zone_DNS

Configuration du FQDN

Au même titre que vous créez des enregistrements de type ‘A’ (Alias) sur le DNS de votre Active Directory, pour faire correspondre une IP à un nom, il existe d’autres type d’enregistrements :
– MX : Mail eXchanger
– SRV : Server
– TXT : Text
– CNAME : Canonical Name
– NS : Name Server

Tous ces type d’enregistrements que vous pouvez créer dans la zone DNS de votre nom de domaine Internet ont un rôle précis, qui permettent d’aiguiller les requêtes Web, mail, etc. sur la toile.

Pour commencer, il faut que l’on déclare notre FQDN. Nous avons choisi mailhost.sylvaincoudeville.fr dans notre exemple. Mon hébergeur utilise un outil nommé Plesk pour la gestion des noms de domaine :

On trouve plein de renseignements dans la zone DNS comme, l’adresse IP du site (sylvaincoudeville.fr; masquée dans cet exemple), des enregistrements A (comme ipv4.sylvaincoudeville.fr), les serveurs de noms autoritaires pour le domaine (NS), un code de vérification Google (TXT) etc.

Nous allons créer un enregistrement A qui va faire correspondre mailhost.sylvaincoudeville.fr à l’IP publique de notre routeur :

Choisissez le type d’enregistrement “A” (Alias), saisissez le nom d’hôte choisi (mailhost) et l’IP publique associée (109.xxx.yyy.111 dans cet exemple) :

Configuration du MX

L’enregistrement de type MX (Mail eXchanger) est une donnée qui permet de gérer le routage du courrier Internet (emails).
Pour faire simple, lorsque vous envoyez un email à quelqu’un dont l’adresse est toto@gmail.com, voici l’équivalent des commandes que lance votre serveur de messagerie :

nslookup -q=MX gmail.com
Serveur :   google-public-dns-a.google.com
Address:  8.8.8.8

Réponse ne faisant pas autorité :
gmail.com       MX preference = 40, mail exchanger = alt4.gmail-smtp-in.l.google.com
gmail.com       MX preference = 20, mail exchanger = alt2.gmail-smtp-in.l.google.com
gmail.com       MX preference = 30, mail exchanger = alt3.gmail-smtp-in.l.google.com
gmail.com       MX preference = 5, mail exchanger = gmail-smtp-in.l.google.com
gmail.com       MX preference = 10, mail exchanger = alt1.gmail-smtp-in.l.google.com

alt4.gmail-smtp-in.l.google.com internet address = 173.194.72.27
alt4.gmail-smtp-in.l.google.com AAAA IPv6 address = 2404:6800:4008:c01::1b
alt2.gmail-smtp-in.l.google.com internet address = 74.125.200.27
alt2.gmail-smtp-in.l.google.com AAAA IPv6 address = 2404:6800:4003:c00::1a
alt3.gmail-smtp-in.l.google.com internet address = 64.233.187.27
alt3.gmail-smtp-in.l.google.com AAAA IPv6 address = 2404:6800:4008:c05::1b
gmail-smtp-in.l.google.com      internet address = 74.125.195.27
gmail-smtp-in.l.google.com      AAAA IPv6 address = 2a00:1450:400c:c01::1b
alt1.gmail-smtp-in.l.google.com internet address = 173.194.71.27
alt1.gmail-smtp-in.l.google.com AAAA IPv6 address = 2a00:1450:4010:c04::1b

La commande retourne le nom des 4 serveurs de messagerie acceptant le courrier pour “gmail.com” : gmail-smtp-in.l.google.com, alt1.gmail-smtp-in.l.google.com etc.

La suite du retour de la commande nous retourne toutes les adresses IP correspondant à ces serveurs :
– gmail-smtp-in.l.google.com -> 74.125.195.27
– alt1.gmail-smtp-in.l.google.com -> 173.194.71.27

Je ne m’attarde pas sur les IPv6.

Maintenant, ajoutez d’un nouvel enregistrement, mais de type “MX” (Mail eXchanger), pour le domaine “sylvaincoudeville.fr”, et pointant vers le FQDN créé juste avant (mailhost.sylvaincoudeville.fr) :

Attention ! Si vous utilisez déjà votre nom de domaine Internet avec un hébergeur de messagerie, changer ce paramètre provoquera l’arrêt de la réception d’email chez votre hébergeur actuel, pour les router vers votre serveur Exchange.
Je vous conseille donc d’effectuer cette manipulation en dernier lieu, une fois que votre infrastructure est prête et vérifiée.

Selon l’hébergeur, vous avez peut-être un bouton à cliquer pour valider la configuration.

Vérification

Une fois effectué, selon le temps de refresh associé à votre domaine (que vous pouvez vérifier en tapant la commande ‘nslookup -q=SOA votredomaine.com’), les modifications pourront prendre 4 à 48 heures pour être effectives sur l’ensemble de la toile.

C’est à cause de ce délai de prise en compte que vous devez réfléchir et préparer à l’avance votre migration avant de faire des modifications dans votre DNS.

Une fois ce délai passé, vous pouvez vérifier l’ensemble de la configuration (je vous conseille de le faire depuis une connexion Internet différente de celle de votre LAN).

Pour cela, il y a plusieurs tests à faire :

Vérification des enregistrements DNS

Ouvrez une ligne de commande et tapez les commandes suivantes : le résultat doit refléter votre configuration :

nslookup -q=MX votredomaine.fr

Cette première commande doit vous retourner un nom d’hôte : mail.votredomaine.fr, par exemple.

nslookup -q=A mail.votredomaine.fr

Cette seconde commande doit vous retourner l’IP publique de l’hôte déclaré comme MX pour votre domaine.

Vérification de l’ouverture des ports

Téléchargez Putty (ou un autre client de type Telnet) à cette adresse http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html.

Ouvrez Putty, et connectez vous en “Telnet”, sur le port “25” de votre FQDN :

Après avoir cliqué sur “Open”, vous devriez avoir un retour similaire à celui-ci :

Maintenant, vous pouvez faire la même chose avec un navigateur et aller à l’adresse https://mail.votredomaine.fr/owa : hormis une erreur de certificat, vous devriez pouvoir accéder à la fenêtre de login :

Vérification de l’acceptation de mail

Maintenant que nous avons contrôlé que les ports étaient bien ouverts, nous allons vérifier que notre Connecteur de réception accepte bien les emails provenant d’internet.

Pour cela, nous allons simuler la connexion d’un serveur et tenter de distribuer un email de toto@gmail.com à scoudeville@sylvaincoudeville.fr.

Pour cela, il va falloir taper les commandes suivantes dans Putty (toujours en Telnet, et toujours sur le port 25) :

ehlo esmtp

A l’issue de cette première commande, le serveur doit répondre “250-mail.votredomaine.com Hello [IP publique depuis laquelle vous testez]”.

Continuons ensuite avec le reste des commandes (respectez les retours à la ligne, les espaces etc.) :

mail from:<toto@gmail.com>
rcpt to:<destinataire@votredomaine.fr>
data
From:<toto@gmail.com>
To:<destinataire@votredomaine.fr>
Subject: Sujet de votre message
Blah blah blah....
.

Il est très important de finir par une ligne vierge, puis un point, puis Entrée afin de marquer la fin du message.
Le serveur doit répondre “250 2.6.0 …. Queued mail for delivery” :

Et si vous regardez votre boîte mail, vous devriez avoir du courrier…

 

Dans la quatrième et dernière partie, nous installerons un VRAI certificat pour faire de l’OWA sans erreur, nous activerons OutlookAnywhere (pour synchroniser Outlook même à l’extérieur du LAN), et nous pourrons paramétrer des Smartphones pour synchroniser les mails, calendrier etc.

Quitter la version mobile