Revista Informática

Relay anónimo en Exchange 2010

Publicado el 01 mayo 2015 por Aprendiendoexchange

En esta entrada vamos a ver como configurar un conector para relay anónimo en Exchange 2010.

Por qué habilitar el relay anónimo en Exchange 2010?

Si bien lo ideal sería que toda aplicación o dispositivo que requiera enviar correo externo se autentique con el servidor, la realidad es que esto no es posible en todos los casos, por lo que a falta de una mejor alternativa, habilitar el relay smtp anónimo a una o más direcciones IP específicas puede ser el único camino.

Esto no sería globalmente un "" donde se podría hacer utilizando nuestro servidor de correo ya que entre otras cosas estaríamos habilitando esta posibilidad a direcciones IP puntuales, en adición a que este conector no debería de ser accesible desde internet. De cualquier modo, se debe tener en cuenta que cualquier aplicación alojada en los equipos con las IP permitidas podrían enviar correo externo.

Dicho esto, la recomendación es que las aplicaciones o dispositivos que requieran enviar correo a través de Exchange se autentiquen con un usuario y contraseña, si esto no es posible podemos configurar un conector de recepción para que se haga relay a través de este hacia internet.

Cómo crear un conector de recepción para relay?

Lo primero que vamos a hacer es crear un conector SMTP de recepción dedicado a la función de relay. Para esto abrimos el shell de Exchange ( EMS) y ejecutamos el siguiente comando:

New-ReceiveConnector -Name "AppRelayAnon" -Bindings 0.0.0.0:25 -RemoteIPRanges 192.168.1.245 -Server servidorExchange -Banner "220 Conector para relay anonimo" -PermissionGroups AnonymousUsers

Relay anónimo en Exchange 2010

En este punto tenemos un conector creado con las siguientes características:

  • Escucha en todas las direcciones IP del servidor en el puerto 25 (0.0.0.0 25)
  • Se habilita a que se conecte únicamente la IP 192.168.1.245 ( RemoteIPRanges). Se puede especificar más de una dirección separando con comas, adicionalmente pueden editarlo por la EMC)

  • Como escucha en el puerto 25 al igual que el conector predeterminado, opcionalmente especificamos un " Banner" para simplificar un eventual proceso de troubleshooting.

  • Le damos permisos a usuarios anónimos ( mientras vengan desde la IP especificada)

Para habilitar el relay hacia fuera de la organización ( por ejemplo internet), faltaría dar permisos adicionales sobre el conector:

Get-ReceiveConnector AppRelayAnon | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "MS-Exch-SMTP-Accept-Any-Recipient"

Relay anónimo en Exchange 2010

Cómo validar que el relay este funcionando?

Para validar que este funcionando el relay vamos a utilizar el comando telnet especificando un destinatario externo, si el relay no esta habilitado deberíamos recibir un error " 550 Unable to relay", de lo contrario tendríamos que ver un " Recipient Ok". Esto sería recomendable ejecutarlo 2 veces; 1 desde un equipo con una IP en la lista de direcciones permitidas y otra desde cualquier otro equipo para verificar que solo este aplicando a las IP específicas ( si la IP no esta listada no podría conectarse al conector).

Para validar el funcionamiento con telnet seguir los pasos a continuación:

1. Abrir el CMD

2. Ejecutar Telnet hacia el servidor en el puerto del conector recientemente creado:

Telnet servidor 25

3. Ejecutamos el comando " helo "

4. Especificamos el remitente con el comando " Mail From" (puede ser una dirección no existente, en este caso estoy usando la dirección de un usuario con buzón):

Mail From: [email protected]

5. Especificamos un destinatario externo para validar el relay habilitado ( en este caso también voy a especificar un destinatario interno para mostrar de que forma llega el correo):

Rcpt to: [email protected]

6. Ejecutamos el comando Data e ingresamos un texto de prueba:

7. Para finalizar la conexión y enviar el correo ingresamos "." ( punto sin comillas):

Relay anónimo en Exchange 2010

Estos mismos pasos los podemos ejecutar sobre otros conectores, por ejemplo sobre el predeterminado, si no devuelve " 550 Unable to relay" en principio podríamos decir que el relay esta " abierto ".

Luego de realizar la prueba recibimos el correo y como podrán ver en la imagen llega con la dirección de correo en lugar de con el nombre para mostrar ( display name):

Relay anónimo en Exchange 2010

Si el requerimiento incluye que el correo llegue con el nombre para mostrar debemos crear el conector de otra manera, en este caso hay que tener en cuenta que en adición a eliminar varias restricciones, los equipos que se conecten a este nuevo conector pasarían por alto los filtros .

Antes de proceder con la prueba voy a remover el conector anteriormente creado con el comando Remove-ReceiveConnector:

Remove-ReceiveConnector AppRelayAnon

Relay anónimo en Exchange 2010

Para crear el nuevo conector abrimos el EMS y ejecutamos el siguiente comando:

New-ReceiveConnector -Name "AppRelay" -Bindings 0.0.0.0:25 -RemoteIPRanges 192.168.1.245 -server servidorExchange -Banner "220 Conector para relay" - AuthMechanism Tls,ExternalAuthoritative -PermissionGroups ExchangeServers

Relay anónimo en Exchange 2010

La diferencia en este caso respecto al anterior es que modificamos el mecanismo de autenticación incluyendo " ExternalAuthoritative" y en permisos especificamos " ExchangeServers" en lugar de " AnonymousUsers ".

Ahora realizamos nuevamente la prueba de telnet:

Relay anónimo en Exchange 2010

El correo llega del siguiente modo:

Relay anónimo en Exchange 2010

Como se puede ver en la imagen ya no aparece la dirección de correo sino que el display name del usuario.

Por información sobre relay en Exchange 2013 pueden ver el siguiente artículo:

Volver a la Portada de Logo Paperblog