
Comment configurer le relais SMTP Exchange Server 2016 – Serveur d’impression
Dans la plupart des organisations, plusieurs appareils ou applications doivent utiliser un service SMTP pour envoyer des e-mails. Un serveur Exchange 2016 peut vous fournir ce service, mais la configuration requise sur le serveur dépend des exigences de relais SMTP de votre scénario.
Les étapes de configuration du relais SMTP Exchange Server 2016 sont les suivantes:
- Déterminez si votre scénario est un relais interne ou un relais externe
- Déterminez si les appareils et les applications s'authentifieront ou se connecteront de manière anonyme
- Pour le relais authentifié, configurez le certificat TLS pour le connecteur frontal client
- Pour un relais anonyme, configurez un nouveau connecteur de réception limité à des adresses IP distantes spécifiques
Détermination des scénarios de relais internes et externes
Il existe généralement deux types de scénarios de relais SMTP pour lesquels Exchange Server 2016 est utilisé:
- Relais interne – les appareils et applications qui doivent envoyer des e-mails uniquement aux destinataires internes de l'organisation Exchange.
- Relais externe – les appareils et applications qui doivent envoyer des e-mails à des destinataires externes.
Jetons un coup d'œil à chacun de ces scénarios, puis à quelques considérations supplémentaires lorsque vous déployez cela dans vos propres environnements de production.
Relais SMTP interne avec Exchange Server 2016
Lors de la première installation d'Exchange Server 2016, la routine d'installation crée automatiquement un connecteur de réception préconfiguré pour être utilisé pour recevoir des messages électroniques d'expéditeurs anonymes vers des destinataires internes. Cela permet aux e-mails Internet entrants d'être reçus par le serveur et convient également aux scénarios de relais internes.
Le connecteur de réception est nommé «SERVERNAMEDefault Frontend SERVERNAME», par exemple, «EXSERVERDefault Frontend EXSERVER» dans mon environnement de test.
Liaisons d'identité activées
——– ——– ——-
EXSERVER Default EXSERVER 0.0.0.0:2525, [::]: 2525 Vrai
EXSERVER Client Proxy EXSERVER [::]: 465, 0.0.0.0:465 Vrai
EXSERVER Frontend par défaut EXSERVER [::]: 25, 0.0.0.0:25 Vrai
EXSERVER Outbound Proxy Frontend EXS … [::]: 717, 0.0.0.0:717 Vrai
EXSERVER Client Frontend EXSERVER [::]: 587, 0.0.0.0:587 Vrai
[[[[PS] C:>Avoir–ReceiveConnector Identité Liaisons Activée –––– –––– –––– EXSERVERDéfaut EXSERVER 0.0.0.0:2525, [[[[::]:2525 Vrai EXSERVERClient Procuration EXSERVER [[[[::]:465, 0.0.0.0:465 Vrai EXSERVERDéfaut L'extrémité avant EXSERVER [[[[::]:25, 0.0.0.0:25 Vrai EXSERVERSortant Procuration L'extrémité avant EXS... [[[[::]:717, 0.0.0.0:717 Vrai EXSERVERClient L'extrémité avant EXSERVER [[[[::]:587, 0.0.0.0:587 Vrai |
Vous pouvez tester ce connecteur en établissant une connexion SMTP à l'aide de Telnet et en émettant des commandes SMTP. Par exemple:
C: > telnet exserver 25
220 EXSERVER.exchange2016demo.com Service Microsoft ESMTP MAIL prêt le jeu 22
2015 oct. 11:39:23 +1000
helo
250 EXSERVER.exchange2016demo.com Bonjour [192.168.0.30]
e-mail de: test@test.com
250 2.1.0 Expéditeur OK
rcpt à: adam.wally@exchange2016demo.com
250 2.1.5 Destinataire OK
Les données
354 Démarrer la saisie du courrier; terminer par .
Objet: E-mail de test
Essai
.
250 2.6.0
InternalId=854698491929, Hostname=EXSERVER.exchange2016demo.com] Courrier en file d'attente pour
livraison
1 2 3 4 5 6 sept 8 9 dix 11 12 13 14 15 16 17 18 |
C:>telnet exserver 25 220 EXSERVER.exchange2016demo.com Microsoft ESMTP COURRIER Un service prêt à jeu, 22 oct 2015 11:39:23 +1000 helo 250 EXSERVER.exchange2016demo.com Bonjour [[[[192.168.0.30] courrier de: tester@tester.com 250 2.1.0 Expéditeur D'accord rcpt à: Adam.wally@exchange2016demo.com 250 2.1.5 Bénéficiaire D'accord Les données 354 Début courrier contribution; fin avec . Matière: Tester email Essai . 250 2.6.0 <f7c2f921–ff7e–4ce4–b2eb–a70dc52f225f@EXSERVER.exchange2016demo.com> [[[[ InternalId=854698491929, Nom d'hôte=EXSERVER.exchange2016demo.com] En file d'attente courrier pour livraison |
Il n'y a donc pas de configuration spécifique requise sur le serveur ou les connecteurs pour autoriser ce scénario, mais il est recommandé d'utiliser un alias DNS au lieu du vrai nom du serveur. Cela vous permettra de configurer tous vos appareils et applications avec l'alias DNS, et vous pourrez ensuite déplacer cet alias DNS pour pointer vers un autre serveur Exchange lors d'une migration.
Relais SMTP externe avec Exchange Server 2016
Suite à la démonstration précédente, voyons ce qui se passe si j'essaie d'utiliser Telnet pour envoyer un e-mail à partir d'une adresse interne valide à un destinataire externe.
220 EXSERVER.exchange2016demo.com Service Microsoft ESMTP MAIL prêt le jeu 22
Octobre 2015 12:04:45 +1000
helo
250 EXSERVER.exchange2016demo.com Bonjour [192.168.0.30]
e-mail de: adam.wally@exchange2016demo.com
250 2.1.0 Expéditeur OK
rcpt à: exchangeerverpro@gmail.com
550 5.7.54 SMTP; Impossible de relayer le destinataire dans un domaine non accepté
220 EXSERVER.exchange2016demo.com Microsoft ESMTP COURRIER Un service prêt à jeu, 22 oct 2015 12:04:45 +1000 helo 250 EXSERVER.exchange2016demo.com Bonjour [[[[192.168.0.30] courrier de: Adam.wally@exchange2016demo.com 250 2.1.0 Expéditeur D'accord rcpt à: exchangeerverpro@Gmail.com 550 5.7.54 SMTP; Incapable à relais bénéficiaire dans non–accepté domaine |
Un code d'erreur SMTP "550 5.7.54, Impossible de relayer le destinataire dans un domaine non accepté" est reçu à la place. Le connecteur de réception ne permettra pas à un expéditeur anonyme et non authentifié de se relayer vers des noms de domaine externes, ce qui empêche votre serveur d'être exploité en tant que relais ouvert.
Vous pouvez résoudre ce problème de deux manières et autoriser vos appareils et applications à envoyer à des destinataires externes:
- Utilisation de l'authentification pour les connexions SMTP
- Configuration d'un connecteur de relais SMTP anonyme
Relais SMTP externe avec Exchange Server 2016 à l'aide de l'authentification
La première méthode consiste à utiliser des connexions SMTP authentifiées. Exchange Server 2016 possède un connecteur de réception conçu pour être utilisé par les clients qui doivent envoyer via SMTP appelé «SERVERNAMEClient Frontend SERVERNAME», par exemple «EXSERVERClient Frontend EXSERVER» dans mon environnement de test.
Liaisons d'identité activées
——– ——– ——-
EXSERVER Default EXSERVER 0.0.0.0:2525, [::]: 2525 Vrai
EXSERVER Client Proxy EXSERVER [::]: 465, 0.0.0.0:465 Vrai
EXSERVER Frontend par défaut EXSERVER [::]: 25, 0.0.0.0:25 Vrai
EXSERVER Outbound Proxy Frontend EXS … [::]: 717, 0.0.0.0:717 Vrai
EXSERVER Client Frontend EXSERVER [::]: 587, 0.0.0.0:587 Vrai
[[[[PS] C:>Avoir–ReceiveConnector Identité Liaisons Activée –––– –––– –––– EXSERVERDéfaut EXSERVER 0.0.0.0:2525, [[[[::]:2525 Vrai EXSERVERClient Procuration EXSERVER [[[[::]:465, 0.0.0.0:465 Vrai EXSERVERDéfaut L'extrémité avant EXSERVER [[[[::]:25, 0.0.0.0:25 Vrai EXSERVERSortant Procuration L'extrémité avant EXS... [[[[::]:717, 0.0.0.0:717 Vrai EXSERVERClient L'extrémité avant EXSERVER [[[[::]:587, 0.0.0.0:587 Vrai |
Une configuration minimale est requise pour que cela fonctionne. En supposant que vous avez déjà configuré un certificat SSL pour Exchange Server 2016 et ajouté un alias DNS pour vos appareils et applications SMTP à utiliser (j'utilise un alias DNS de mail.exchange2016demo.com dans cet exemple), vous devez également définir TlsCertificateName pour le connecteur de réception.
Utilisez Get-ExchangeCertificate pour identifier l'empreinte numérique du certificat SSL que vous utiliserez.
Sujet des services d'empreinte numérique
———- ——– ——-
FC5259C0528657EF22BB818CA9B23FD220A9DE83 … WS .. CN = mail.exchange2016demo.com, OU = IT, O = LockLAN Systems Pty Ltd, …
FE6528BE1548D81C794AE9A00D144FF3D16E0CD2 …. S .. CN = Certificat d'authentification Microsoft Exchange Server
DAB089E53CA660DEF7B8EE303212C31C0E3D3499 IP.WS .. CN = EXSERVER
17839AF62AA3A1CBBD5F7EC81E92A609976D8AD9 ……. CN = WMSvc-EXSERVER
[[[[PS] C:>Avoir–ExchangeCertificate Empreinte Prestations de service Matière ––––– –––– –––– FC5259C0528657EF22BB818CA9B23FD220A9DE83 ...WS.. CN=courrier.exchange2016demo.com, OU=IL, O=LockLAN Les systèmes Pty Ltd,... FE6528BE1548D81C794AE9A00D144FF3D16E0CD2 ....S.. CN=Microsoft Échange Serveur Auth Certificat DAB089E53CA660DEF7B8EE303212C31C0E3D3499 IP.WS.. CN=EXSERVER 17839AF62AA3A1CBBD5F7EC81E92A609976D8AD9 ....... CN=WMSvc–EXSERVER |
La syntaxe de la chaîne TlsCertificateName est composée de deux attributs différents du certificat, j'utilise donc les commandes suivantes pour appliquer la configuration à mon connecteur de réception.
[PS] C: > $ tlscertificatename = "$ ($ cert. émetteur)$ ($ cert.Subject) "
[PS] C: > Set-ReceiveConnector "EXSERVER Client Frontend EXSERVER" -Fqdn mail.exchange2016demo.com -TlsCertificateName $ tlscertificatename
[[[[PS] C:>$cert = Avoir–ExchangeCertificate –Empreinte FC5259C0528657EF22BB818CA9B23FD220A9DE83 [[[[PS] C:>$tlscertificatename = "$ ($ cert. émetteur) [[[[PS] C:>Ensemble–ReceiveConnector "EXSERVER Client Frontend EXSERVER" –Fqdn courrier.exchange2016demo.com –TlsCertificateName $tlscertificatename |
Pour tester à l'aide du connecteur client frontal pour envoyer un e-mail, je vais utiliser l'applet de commande Send-MailMessage de PowerShell au lieu de Telnet. Commencez par capturer des informations d'identification valides à utiliser pour l'authentification.
PS C: > $ credential = Get-Credential
PS C:>$accréditation = Avoir–Identifiant |
Ensuite, utilisez l'applet de commande Send-MailMessage avec des paramètres spécifiant le serveur, vers et depuis les adresses, la ligne d'objet et le numéro de port.
PS C: > Send-MailMessage -SmtpServer mail.exchange2016demo.com -Credential $ credential -From 'adam.wally@exchange2016demo.com' -To 'exchangeerverpro@gmail.com' -Subject 'Test email' -Port 587 -UseSsl
PS C:>Envoyer–MailMessage –SmtpServer courrier.exchange2016demo.com –Identifiant $accréditation –De «adam.wally@exchange2016demo.com» –À «exchangeerverpro@gmail.com» –Matière «E-mail de test» –Port 587 –UseSsl |
Dans l'exemple ci-dessus, l'e-mail est correctement reçu par le destinataire externe. Ainsi, tout appareil ou application du réseau qui peut utiliser SMTP authentifié peut être configuré pour utiliser ce connecteur en écoutant sur le port 587 de votre serveur Exchange 2016.
Relais SMTP externe avec Exchange Server 2016 à l'aide de connexions anonymes
Lorsque SMTP authentifié n'est pas une option, vous pouvez créer un nouveau connecteur de réception sur le serveur Exchange 2016 qui permettra le relais SMTP anonyme à partir d'une liste spécifique d'adresses IP ou de plages IP.
Dans le Centre d'administration Exchange, accédez à flux de messagerie puis recevoir des connecteurs. Sélectionnez le serveur sur lequel vous souhaitez créer le nouveau connecteur de réception et cliquez sur le bouton "+" pour démarrer l'assistant.
Donnez un nom au nouveau connecteur. J'aime garder le nom cohérent avec les autres connecteurs par défaut. Met le Rôle à «Frontend Transport», et le Type à "Personnalisé".
Le défaut Liaisons de carte réseau vont bien. Cela représente l'IP et le port que le serveur sera écoute activé pour les connexions. Plusieurs connecteurs de réception sur le service de transport frontal peuvent écouter sur le même port de TCP 25.
Supprimez la plage IP par défaut du Paramètres réseau à distance, puis ajoutez les adresses IP ou les plages IP spécifiques à partir desquelles vous souhaitez autoriser le relais SMTP anonyme. Je ne recommande pas d'ajouter des sous-réseaux IP entiers qui contiennent d'autres serveurs Exchange car cela peut entraîner des problèmes avec les communications de serveur à serveur.
Cliquez sur Terminer pour terminer l'assistant, puis une configuration supplémentaire est encore requise.
Dans Exchange Management Shell, exécutez les deux commandes suivantes.
[PS] C: > Get-ReceiveConnector "EXSERVER Anon Relay EXSERVER" | Add-ADPermission -User 'NT AUTHORITY Anonymous Logon' -ExtendedRights MS-Exch-SMTP-Accept-Any-Recipient
[[[[PS] C:>Ensemble–ReceiveConnector "EXSERVER Anon Relay EXSERVER" –PermissionGroups AnonymousUsers [[[[PS] C:>Avoir–ReceiveConnector "EXSERVER Anon Relay EXSERVER" | Ajouter–ADPermission –Utilisateur 'AUTORITÉ NT Ouverture de session anonyme' –ExtendedRights MME–Exch–SMTP–J'accepte–Tout–Bénéficiaire |
Nous pouvons maintenant tester le connecteur à l'aide de Telnet à partir de l'adresse IP qui a été ajoutée aux paramètres réseau à distance du connecteur de réception. Dans mon environnement de test, cette adresse IP sera désormais autorisée à envoyer des e-mails depuis n'importe quelle adresse e-mail (qu'il s'agisse d'une adresse interne valide ou non) vers n'importe quelle adresse externe.
220 EXSERVER.exchange2016demo.com Service Microsoft ESMTP MAIL prêt le jeu 22
Octobre 2015 12:59:39 +1000
helo
250 EXSERVER.exchange2016demo.com Bonjour [192.168.0.30]
e-mail de: test@test.com
250 2.1.0 Expéditeur OK
rcpt à: exchangeerverpro@gmail.com
250 2.1.5 Destinataire OK
Les données
354 Démarrer la saisie du courrier; terminer par .
Objet: test
.
250 2.6.0
InternalId=863288426497, Hostname=EXSERVER.exchange2016demo.com] Courrier en file d'attente pour
livraison
220 EXSERVER.exchange2016demo.com Microsoft ESMTP COURRIER Un service prêt à jeu, 22 oct 2015 12:59:39 +1000 helo 250 EXSERVER.exchange2016demo.com Bonjour [[[[192.168.0.30] courrier de: tester@tester.com 250 2.1.0 Expéditeur D'accord rcpt à: exchangeerverpro@Gmail.com 250 2.1.5 Bénéficiaire D'accord Les données 354 Début courrier contribution; fin avec . Matière: tester . 250 2.6.0 <e1739c5f–db11–4fdd–aa27–a9702bc15b15@EXSERVER.exchange2016demo.com> [[[[ InternalId=863288426497, Nom d'hôte=EXSERVER.exchange2016demo.com] En file d'attente courrier pour livraison |
Considérations supplémentaires
Voici quelques éléments supplémentaires que vous devez prendre en compte lorsque vous fournissez des services de relais SMTP avec Exchange Server 2016 pour votre environnement.
Haute disponibilité et équilibrage de charge
Si vous souhaitez fournir un service SMTP hautement disponible, un équilibreur de charge est la solution naturelle. Si vous prévoyez d'équilibrer la charge, vous devrez vous assurer que les mêmes connecteurs de réception existent sur tous les serveurs du pool à charge équilibrée. Cela signifie créer le même connecteur de relais sur plusieurs serveurs et gérer la même liste d'adresses IP autorisées sur ces connecteurs.
Cependant, comme vous le verrez en lisant mon article sur les problèmes d'équilibrage de charge du trafic SMTP, lorsqu'un équilibreur de charge est le NAT source des connexions, la seule adresse IP qui apparaîtra sur le serveur Exchange est celle de l'équilibreur de charge lui-même, pas la source appareil ou application. Bien que cela simplifie la configuration du connecteur de réception (seule l'IP de l'équilibreur de charge doit être ajoutée en tant qu'IP autorisée), cela ouvre un certain nombre de problèmes:
- Le contrôle d'accès (que les IP sont autorisées à envoyer) doit être appliqué à l'équilibreur de charge, sinon vous risquez d'avoir un service de relais SMTP anonyme grand ouvert sur votre réseau
- Selon l'équilibreur de charge, les sondes d'intégrité vers les serveurs Exchange peuvent ne pas détecter toutes les conditions d'intégrité, ce qui entraîne l'envoi de trafic vers des serveurs malsains (et l'échec)
- Les connexions établies via l'équilibreur de charge sont anonymes et, dans certains cas, introuvables à l'adresse IP source (selon la capacité de journalisation de votre équilibreur de charge)
Vous pouvez en savoir plus sur ces problèmes ici.
Si un équilibreur de charge n'est pas une option pour vous et que vous souhaitez toujours une haute disponibilité pour les services SMTP, vous pouvez alors envisager la répétition DNS. Cependant, de nombreux appareils et applications ne gèrent pas le round robin DNS aussi bien qu'Outlook ou un navigateur Web. Certains appareils, lorsqu'ils tentent de se connecter à l'une des adresses IP disponibles dans le round robin DNS et que cette adresse IP ne répond pas, n'essaieront pas les autres adresses IP disponibles et considéreront simplement l'échec de la tentative de connexion. Donc, cela dépend vraiment de la façon dont vos appareils et applications gèrent cette situation pour savoir si le round robin DNS sera adapté à votre environnement.
Sécurité vs commodité
De nombreuses organisations optent simplement pour l'option de relais anonyme et configurent un connecteur qui permet à une large gamme d'adresses IP de relayer les e-mails n'importe où. Il s'agit de l'approche la plus simple, mais clairement pas la meilleure en termes de sécurité et d'audit. Le relais anonyme s'appuie sur des adresses IP fiables et identifiables. Si les adresses IP se trouvent dans un pool DHCP, sont associées à un équilibreur de charge (voir ci-dessus), sont multi-utilisateurs (tels que des serveurs de terminaux) ou si l'IP / l'hôte lui-même est compromis d'une manière ou d'une autre, votre capacité à tracer les e-mails revenir à la source réelle est difficile, voire impossible.
Bien que l'authentification ajoute une certaine complexité, cela peut valoir la peine du point de vue de la sécurité. Cependant, cela signifie gérer les informations d'identification pour tous vos appareils et applications. Le partage des informations d'identification SMTP sur plusieurs systèmes peut sembler un moyen d'éviter la complexité, mais il réintroduit les problèmes associés au SMTP anonyme.
Chiffrement
Dans le tutoriel ci-dessus, j'ai démontré la configuration d'un nom de certificat TLS pour un connecteur de réception et j'ai également utilisé TLS / SSL pour mes tests avec Send-MailMessage. Si vous comptez utiliser l'authentification pour SMTP dans votre environnement ou si le trafic SMTP est sensible de quelque manière que ce soit, vous devez le protéger avec le cryptage TLS / SSL.
Connecteurs de réception multiples
Vous vous demandez peut-être comment le serveur Exchange est capable de faire la différence entre le trafic destiné à un connecteur de réception et un autre connecteur de réception, lorsque les deux écoutent sur la même adresse IP et le même numéro de port, par exemple «EXSERVERDefault Frontend EXSERVER» et «EXSERVERAnon Relay EXSERVER ”.
La réponse est dans le Paramètres réseau à distance des connecteurs de réception. Exchange utilisera le connecteur de réception qui est le correspondance la plus spécifique pour l'adresse IP source de la connexion SMTP.
Dans mes exemples ci-dessus, cela signifie que le connecteur par défaut avec ses paramètres de réseau distant de 0.0.0.0-255.255.255.255 (qui est essentiellement «n'importe où») est moins spécifique que le connecteur de relais avec ses paramètres de réseau distant de 192.168.0.30. Ainsi, lorsqu'une connexion SMTP provient de l'IP 192.168.0.30 vers le port 25 du serveur, elle sera gérée par le connecteur de relais, tandis que tout le reste se connectant au port 25 sera géré par le connecteur par défaut.
Dépannage
L'un des problèmes les plus courants lors du dépannage du comportement du connecteur de réception sur un serveur Exchange est de déterminer quel connecteur gère réellement une connexion donnée. Il existe deux façons d'aborder ce type de dépannage.
La première consiste à définir différentes bannières SMTP sur chaque connecteur. Le MVP Exchange Jeff Guillet a un exemple PowerShell que vous pouvez exécuter pour configurer la bannière SMTP de chaque connecteur avec le nom du connecteur lui-même, de sorte que lorsque vous vous connectez à Telnet, vous pouvez immédiatement voir à quel connecteur de réception vous êtes connecté.
[[[[PS] C:>$rc = Avoir–ReceiveConnector –Serveur EXSERVER [[[[PS] C:>$rc | % Ensemble–ReceiveConnector $_.Identité –ProtocolLoggingLevel Verbeux –Bannière "220 $ _" |
Maintenant, lorsque vous utilisez Telnet pour vous connecter, vous verrez le nom du connecteur dans la bannière.
C: > telnet exserver 25
220 EXSERVER Anon Relay EXSERVER
C:>telnet exserver 25 220 EXSERVERAnon Relais EXSERVER |
L'autre méthode de dépannage consiste à utiliser la journalisation du protocole. Dans l'exemple PowerShell ci-dessus, le niveau de journal de protocole pour chaque connecteur a également été défini sur «Verbose». Vous pouvez définir cela sur des connecteurs individuels si vous en avez besoin en exécutant Set-ReceiveConnector.
[[[[PS] C:>Ensemble–ReceiveConnector "EXSERVER Anon Relay EXSERVER" –ProtocolLoggingLevel Verbeux |
Vous pouvez ensuite consulter les journaux de protocole pour déterminer ce qui se passe avec les connexions SMTP. Je recommande généralement de laisser la journalisation de protocole activée pour les connecteurs de réception à tout moment.
Sommaire
Cet article montre comment Exchange Server 2016 peut être utilisé pour fournir des services de relais SMTP aux périphériques et applications de votre réseau. Comme vous pouvez le voir, il existe plusieurs approches que vous pouvez adopter pour y parvenir, chacune étant adaptée à différents scénarios et chacune ayant des avantages et des inconvénients associés.
Les besoins de relais internes sont déjà satisfaits avec la configuration par défaut d'un Exchange 2016, et SMTP authentifié pour relais externe est également disponible avec une configuration minimale. Lorsqu'un relais anonyme est requis, un connecteur de réception supplémentaire peut être facilement configuré.
Je vous recommande de prendre en compte vos besoins réels et de mettre en œuvre la solution la plus appropriée pour y répondre, au lieu de simplement configurer un connecteur de relais anonyme pour tous les appareils et applications de votre réseau.
Paul est un MVP Microsoft pour les applications et services Office et un auteur Pluralsight. Il travaille en tant que consultant, écrivain et formateur spécialisé dans Office 365 et Exchange Server.
Commentaires
Laisser un commentaire