dimanche 5 janvier 2014

E2K7 : relayer du courrier via le serveur HUB

Publication initiale: mercredi 18 février 2009

Dans ce billet nous verrons les points à vérifier en cas de problème pour relayer des messages SMTP via Exchange 2007.
Autoriser la connexion des clients anonymes
Par défaut le connecteur de réception d’un serveur HUB est sécurisé.Ce dernier n’accepte pas les connexions anonymes. En effet il n’est pas recommandé de positionner un serveur HUB en frontal sur internet. Cette tâche incombe dans l’idéal au serveur EDGE ou à une passerelle SMTP dédiée. Ci-dessous la cmd-let EMS pour ajouter le groupe "anonymous" sur le connecteur de réception :
Set-ReceiveConnector -Name "Default Server Name" -Server HubA –PermissionGroups AnonymousUsers,ExchangeUsers,ExchangeServers,ExchangeLegacyServers
Il est également possible depuis la console EMC, dans les propriétés du connecteur de réception, onglet "Permission Groups", de cocher la case "Anonymous". Pour plus d’information :How to Configure Internet Mail Flow Directly Through a HUB

Autoriser les clients anonymes à relayer
Les clients anonymes une fois connectés ne peuvent pas relayer par défaut. Pour cela deux possibilités :

  • Définir le connecteur de réception comme "Externally secured"
  • Attribuer la permission "ms-Exch-SMTP-Accept-Any-Recipient"

Pour définir le connecteur comme "Externally secured", il est recommandé de créer un nouveau connecteur de réception scopé (restreint) à certains serveurs distant bien définis (remote IP address).  Ensuite voici les settings à choisir (dans l’ordre) :


  • Permission Groups" : Exchange Servers (uniquement)
  • "Authentication" : "Externally secured" (uniquement)

Les permissions suivantes sont alors attribuées au groupe "Anonymous" :


  • ms-Exch-SMTP-Accept-Authoritative-Domain
  • ms-Exch-Bypass-Anti-Spam
  • ms-Exch-Bypass-Message-Size-Limit
  • ms-Exch-SMTP-Accept-Exch50
  • ms-Exch-Accept-Headers-Routing
  • ms-Exch-SMTP-Submit
  • ms-Exch-SMTP-Accept-Any-Recipient
  • ms-Exch-SMTP-Accept-Authentication-Flag
  • ms-Exch-SMTP-Accept-Any-Sender

Toute la sécurité d’Exchange est by-passée (taille msg, filtres antispam..)

Pour accorder uniquement la permission de relayer, au lieu de configurer le connecteur comme "Externally secured", utiliser la cmd-let suivante pour ne donner que la permission nécessaire au relai :

Get-ReceiveConnector "Relay connector" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"
Pour les réfractaires au management shell, vous pouvez aussi utiliser ADSIEdit pour ajouter la permission :


Définir le domaine par défaut du connecteur de réception
Malgrés le fait que les clients anonymes soient autorisés à relayer via le serveur HUB, ce dernier peut refuser les messages pour une toute autre raison.

Si l’adresse SMTP de l’expéditeur n’est pas correcte, Exchange la refusera avec un message du type “501 5.1.7 Invalid Address” visible dans les logs du connecteur de réception.

Par exemple une adresse d’expéditeur du type "john" (MAIL FROM : john) sera rejetée. Exchange 2003 quant à lui acceptait ce type d’adresse.

Cela vient du fait que dans Exchange 2007 le connecteur de réception n’ajoute pas par défaut de domaine SMTP à l’adresse de l’expéditeur.

Pour modifier le domaine par défaut d’un connecteur :

Set-ReceiveConnector -identity “<YourReceiveConnectorName>” -DefaultDomain “<YourSMTPDomainName>”
Suite à la modification, Exchange 2007 traduira implicitement "john" en "john@domain_par_défaut.com" et acceptera l’addresse.

Références :
Allowing application servers to relay off
KB 944302 : Mail Server Fails to Send/Relay Mail Through E2K7

Formats d’adresse non supportés
Le format d’adresse SMTP du type Sender@[x.x.x.x] n’est pas supporté dans Exchange 2007, contrairement à Exchange 2003.

Dans ce cas de figure l’erreur “501 5.1.7 Invalid Address” vous guette..

Références :
TECHNET : SMTP Addressing Format Not Supported
EXCHANGEPEDIA.COM : Exchange Server 2007 and Address Literals

Utiliser telnet pour tester l’envoi d’un message
En cas d’erreur ou pour vérifier le bon fonctionnement du serveur, nous pouvons tester l’envoi d’un message via le client telnet.

How to Use Telnet to Test SMTP Communication

Activer les logs du connecteur de réception
Pour consulter l’historique des communications SMTP entre un serveur distant et Exchange 2007, activez l’enregistrement des logs au niveau du connecteur de réception concerné.

Depuis la console EMC, aller dans : * configuration du serveur * serveurs HUB * vôtre serveur HUB * aller dans les propriétés du connecteur de réception concerné * passer le niveau de log dans l’onglet général sur "verbose".

Eventuellement redémarrer le service MSExchangeTransport. Consulter ensuite les logs par défaut dans le dossier :

C:\Program Files\Microsoft\Exchange Server\TransportRoles\Logs\ProtocolLog\SmtpReceive
Managing Protocol Logging

Aucun commentaire:

Enregistrer un commentaire