Installation de Exchange 2016 de A à Z pour un nouveau domaine

1/52/53/54/55/5 (5 votes, moyenne: 4,20 sur 5)
Loading...
I

Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.


Bonjour à tous,

Aujourd’hui, on va aborder l’installation de Exchange 2016 de A à Z pour un nouveau domaine.
On va parler du montage de l’AD, de l’Exchange lui-même, de la configuration des boites mail, de l’envoi/réception, de la configuration des DNS et de la sécurisation.

Il est nécessaire d’avoir un adressage IP fixe sur vos deux serveurs. Il est nécessaire que l’adresse IP du premier serveur DNS du serveur Exchange soit l’adresse IP de votre contrôleur de domaine.
Les ports 25, 80 et 443 doivent être réservés et ouverts en entrée / sortie pour le serveur Exchange.

 

La procédure est la même pour Windows Serveur 2012 R2 et Windows Serveur 2016, vous devez avoir un serveur parfaitement à jour !

Description de l’infrastructure

Je vais utiliser deux machines virtuelles CX41 du Cloud Hetzner et un domaine en .ovh :

  • Nom de domaine : tap.ovh (dédié aux emails)
  • Active Directory : TAP-DC01 (Windows Serveur 2012 R2 Standard) | Addresse IP fixe : 138.201.175.185
  • Exchange 2016 : TAP-MS01 (Windows Serveur 2012 R2 Standard) | Addresse IP fixe : 138.201.175.188

 

Vous aurez remarqué que je sépare bien les rôles entre deux serveurs pour faire les choses correctement et faciliter la mise à niveau et les restaurations en cas de panne. Je vous recommande de ne jamais mélanger Exchange et contrôleur de domaine.

 

Records DNS de base chez OVH

Voici un extrait de la zone DNS de base chez OVH :

$TTL 3600
@	IN SOA dns100.ovh.net. tech.ovh.net. (2018061404 86400 3600 3600000 300)
                    IN NS     dns100.ovh.net.
                    IN NS     ns100.ovh.net.
                    IN A      138.201.175.188
                    IN TXT    "1|www.tap.ovh"
TAP-DC01            IN A      138.201.175.185
TAP-MS01            IN A      138.201.175.188
autodiscover        IN CNAME  tap-ms01.tap.ovh.
www                 IN TXT    "l|fr"
www                 IN TXT    "3|welcome"

 

Pour le moment, le domaine lui-même redirige sur le serveur Exchange TAP-MS01.
L’autodiscover fait de même et les records TAP-MS01 et TAP-DC01 redirigent vers les bons serveurs qui utilisent des IP publiques.

 

Records DNS pour les emails

Nous allons devoir ajouter deux types de champs au minimum dans les DNS pour que cela fonctionne sur internet.

Les champs MX, qui indiqueront où se trouvent les serveurs email et les champs SPF qui indiqueront quels serveurs emails sont autorisés à envoyer pour le domaine.

Si j’utilisais l’exchange que nous allons installer pour envoyer des emails directement je devrais faire des records comme ceci :

Name     TTL  Class Type Priority Data
tap.ovh. 3600 IN    TXT           "v=spf1 mx a:tap-ms01.tap.ovh ~all"
tap.ovh. 3600 IN    MX   1        tap-ms01.tap.ovh.

 

Dans mon cas, j’utilise un relais pour l’envoi et un antispam nommé proofpoint, je dois donc utilisé ce qui est fourni :

Name     TTL  Class Type Priority Data
tap.ovh. 3600 IN    TXT           "v=spf1 mx a:dispatch-eu.ppe-hosted.com ~all"
tap.ovh. 3600 IN    MX   1        mx1-eu1.ppe-hosted.com.
tap.ovh. 3600 IN    MX   2        mx2-eu1.ppe-hosted.com.

 

Installation du serveur Active Directory

Lancez la commande PowerShell suivante pour installer le rôle nécessaire :

Install-WindowsFeature AD-Domain-Services

 

Une fois l’installation terminée, ouvrez le gestionnaire de serveur et lancez la promotion :

 

Créez une nouvelle foret avec votre nom de domaine :

 

 

Créez le mot de passe de récupération du domaine :

 

Validez le nom NetBios :

 

Cliquez ensuite sur « Install » pour lancer la promotion du serveur en contrôleur de domaine :

 

Installation du serveur Exchange

Installez d’abord la fonctionnalité  « Media Foundation » avec Powershell :

Install-WindowsFeature Server-Media-Foundation -Restart

 

Après le redémarrage, téléchargez et installez ensuite le « Unified Communications Managed API 4.0 Runtime » :

 

 

Connectez ensuite votre serveur Exchange au domaine :

 

 

Une fois que c’est fait, redémarrez le serveur et connectez-vous avec l’administrateur du domaine dessus :

 

 

Téléchargez la dernière version de Exchange 2016 à l’adresse suivante :

 

Montez l’ISO et lancez ensuite l’installateur.
Vérifier la disponibilité de mises à jour :

 

 

Utilisez les paramètres recommandés :

 

 

Installez le rôle de Mailbox et cochez la case en dessous pour installer automatiquement les rôles et fonctionnalités manquantes :

 

Sélectionnez le répertoire d’installation d’exchange (ce qui inclut le stockage des mailbox) :

 

Rentrez le nom de l’organisation :

 

Laissez le scan anti-malware activé :

 

 

L’installation va maintenant se lancer, vous pouvez aller boire une bière gluten-free parce que ça va être long, très long …

 

Redémarrez le serveur à la fin de l’installation :

 

 

 

Création d’une boite de test et configuration des répertoires virtuels :

Connectez-vous à l’ECP depuis votre serveur Exchange : https://localhost/ecp/

Ensuite, créez une nouvelle mailbox de test pour la suite :

 

 

Allez ensuite dans « Serveurs » -> éditez la configuration de votre serveur Exchange -> « Outlook Anywhere » -> et remplissez les url internes et externes selon la configuration de votre domaine :

 

 

 

Maintenant, allez dans « répertoires virtuels » et éditez encore une fois les url internes et externes de toutes les applications :

 

Redémarrez maintenant votre serveur et connectez-vous à l’utilisateur que vous venez de créer par OWA pour tester l’envoi d’email interne :

 

Configuration d’un connecteur d’envoi

Vous aurez besoin d’un connecteur d’envoi pour envoyer des emails à d’autres personnes sur internet.
Dans mon cas j’utilise proofpoint en tant qu’antispam et relai SMTP, je me servirais donc de lui pour envoyer des emails.

 

Allez dans « Mail Flow » (flux de courrier) -> « Send Connectors » et ajoutez-en un :

 

Donnez lui un petit nom et sélectionner « internet » :

 

 

Renseignez le FQDN de votre relais SMTP :

 

Renseignez la liste des domaines distants qui devront passer par ce connecteur.
Vu que l’on souhaite l’utiliser pour tout le monde, on met un petit astérisque : *

 

 

Renseignez les serveurs qui devront utiliser ce connecteur, ici nous n’avons que notre exchange :

Et envoyez des emails à l’extérieur pour tester 🙂

 

Test de l’autodiscover

Si vous avez suivi mes instructions pour le DNS tout va rouler tout seul pour Outlook :

Si un truc merde, vérifier que la racine du domaine et au pire l’autodiscover renvoi bien vers l’ISS du serveur mail.

 

Installation d’un certificat Let’s Encrypt et sécurisation de SSL

Téléchargez la dernière release stable de Let’s Encrypt Win Simple

Décompressez l’archive de Let’s Encrypt Win Simple et placez le dossier extrait à la racine de C: (en le renommant comme moi éventuellement) :

IIS-LetsEncrypt-HTTP2-01

Ensuite, éditez le fichier settings_default.config.
Cherchez le passage suivant :

<setting name= »RSAKeyBits » serializeAs= »String »>
<value>2048</value>
</setting>

Et remplacez 2048 par 4096 pour générer des certificats utilisant des clés RSA de 4096 bits.

<setting name= »RSAKeyBits » serializeAs= »String »>
<value>4096</value>
</setting>

 

Entrez dans la configuration de IIS et éditez les binding du « Default Web Site » :

 

 

Ici, ajoutez votre nom de domaine sur les deux bindings indiqués :

 

Redémarrez IIS et exécutez le programme letsencrypt.exe en tant qu’Administrateur :

IIS-LetsEncrypt-HTTP2-03

 

Suivez les étapes de l’assistant pour créer votre ou vos certificats :

 

Maintenant, lancez Powershell en tant qu’administrateur. Nous allons utiliser un script de Anthony Eden pour appliquer le certificat sur tous les composants Exchange avec les commandes suivantes :

cd "C:\Let's Encrypt\"
Invoke-WebRequest -Uri "https://gist.githubusercontent.com/anthonyeden/015c568b169901a9879a1b504a089596/raw/5b67b2d4a1256f859c31c83694f71ebe96c1f282/ExchangeLetsEncrypt.ps1" -OutFile "C:\Let's Encrypt\ExchangeLetsEncrypt.ps1"

set-executionpolicy Unrestricted
.\ExchangeLetsEncrypt.ps1

 

Les paramètres a passé sont les suivants :

CertificateImport: C:\ProgramData\win-acme\httpsacme-v01.api.letsencrypt.org\1-all.pfx
ServerName: tap-ms01.tap.ovh

 

Par exemple :

 

Ensuite vous pourrez utiliser un script comme celui-ci pour renouveler le certificat :

 

Ajout de HSTS

Rendez-vous dans la configuration de votre site IIS et dans les En-têtes de réponse HTTP :

IIS-LetsEncrypt-HTTP2-13

 

Allez dans Actions et cliquez sur Ajouter … :

IIS-LetsEncrypt-HTTP2-14

Renseignez les paramètres suivants :

  • Nom : Strict-Transport-Security
  • Valeur : max-age=15768000; includeSubDomains; preload

IIS-LetsEncrypt-HTTP2-15

 

Redémarrez votre serveur Exchange.

Sécurisation de l’ECP

Lancez la commande suivante en powershell :

Install-WindowsFeature Web-IP-Security -IncludeAllSubfeature

 

Maintenant, allez dans l’application virtuelle pour ECP dans IIS et ouvrez « IP Address and Domain Restrictions » :

 

Cliquez sur « Edit Feature Settings » et mettez les options comme sur la capture ci-dessous (on met « Not Found » et non pas « Forbidden » comme ça les robots ne s’excitent pas) :

 

Maintenant, cliquez sur « Add Allow Entry » :

 

Ici, je vous conseille de mettre soit vos adresses IP en interne, soit une IP publique autorisée à gérer le serveur.

Tout le reste ne trouvera pas l’ECP.

 

Sécurisation de l’OWA

Nous allons utiliser DUO pour ajouter la double authentification aux utilisateurs. Vous devrez donc créer un compte : https://signup.duo.com/

 

Lancez la commande suivante en powershell  pour installer les rôles et fonctionnalités requis :

Install-WindowsFeature Net-Framework-Core,Web-Asp-Net,NET-WCF-HTTP-Activation45,Web-Scripting-Tools -IncludeAllSubfeature -Restart

 

Pendant ce temps, créez une application Microsoft OWA chez DUO et récupérer les codes d’API :

Téléchargez l’installateur et lancez-le sur votre serveur exchange : https://dl.duosecurity.com/duo-owa-latest.msi

Renseignez les infos que vous venez de récupérer :

 

Sélectionnez « Generate new session key » étant donné que ça sera pour l’instant notre seul serveur exchange :

 

Connectez-vous ensuite sur l’OWA avec un utilisateur et testez la double authentification.
La fenêtre de DUO apparaitra directement après que vous ayez rentré le mot de passe :

 

Suivez le petit guide, ensuite vous reviendrez au login et aurez la fenêtre pour utiliser votre moyen de double authentification (clé physique dans mon cas) :

 

Sources

 

Et voilà, on est bon pour cette longue procédure 🙂

 

A propos de l'auteur

Nicolas Simond

Ingénieur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

Subscribe
Notify of
guest

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

10 Commentaires
Plus récents
Plus anciens Populaires
Inline Feedbacks
View all comments
William
3 années plus tôt

Super tuto, Merci Nico 🙂

Matthieu
Matthieu
5 années plus tôt

Bonjour,
quelle est la config des VM (cpu/ram/hdd/…) ?
Serait-ce possible sans avoir d’ip WAN fixe? je ne pense pas car je ne vois pas comment renvoyer les records vers un nom de domaine et non un ip.
Ca fonctionne pour un server web (avec un ddns) mais quid pour un server mail?
merci pour ce tuto

Matthieu
Matthieu
Reply to  Nicolas Simond
5 années plus tôt

dommage, mais payer 31€/mois pour avoir une ip fixe… too much !

Matthieu
Matthieu
Reply to  Nicolas Simond
5 années plus tôt

Proximus (belgique) 30.25€/mois quand on a une abonnement « domestique » qui coute déjà 50€ pour du 50/4 avec une bande passante de 150go/mois et la télé…

Matthieu
Matthieu
Reply to  Nicolas Simond
5 années plus tôt

Quoi que, quand je vois ceci
comment image
on peut envoyer un mx record vers un nom de domaine, qui lui peut être redirigé vers une ip non statique via ddns…
tu vois ou je veux en venir ? 🙂