5 de noviembre de 2026 7 min de lectura

Exchange: Permitir solo remitentes externos seleccionados en una lista de distribución

Una lista de distribución en Exchange puede configurarse para que solo determinados remitentes externos puedan contactarla. Dos métodos con PowerShell: restricción de entrega con contactos de correo electrónico o regla de transporte. También se explican los límites de la comprobación de remitentes y cómo DMARC los subsana.

De forma predeterminada, una lista de distribución en Exchange solo acepta mensajes de remitentes autenticados, es decir, internos. Si un socio, proveedor o cliente también debe poder contactar con la lista sin abrirla a todo Internet, existen dos opciones: una restricción de entrega en el propio grupo o una regla de transporte. Ambas funcionan en Exchange Server 2016, 2019 y Subscription Edition.

Situación inicial: RequireSenderAuthenticationEnabled

La propiedad RequireSenderAuthenticationEnabled controla si un grupo acepta mensajes externos. Si está establecida en $true (valor predeterminado en los nuevos grupos de distribución), Exchange rechaza todos los mensajes de remitentes no autenticados. Por tanto, ambas variantes siguientes requieren desactivar esta comprobación:

Set-DistributionGroup -Identity "Projektteam" -RequireSenderAuthenticationEnabled $false
Opciones explicadas
OpciónEfecto
-IdentityEl grupo de distribución (nombre, alias o dirección de correo electrónico).
-RequireSenderAuthenticationEnabled $falseEl grupo también acepta mensajes de remitentes externos no autenticados.

Sin más restricciones, tras este paso cualquier remitente externo puede escribir a la lista. La limitación a remitentes concretos se realiza en el siguiente paso, idealmente durante la misma ventana de mantenimiento.

Variante 1: Restricción de entrega con contactos de correo electrónico

La lista de remitentes permitidos (AcceptMessagesOnlyFromSendersOrMembers) solo acepta objetos del propio directorio: buzones, usuarios de correo electrónico, contactos de correo electrónico y grupos. No se puede introducir una dirección SMTP sin más. Por ello, cree un contacto de correo electrónico para cada remitente externo. Para que el contacto no aparezca en la lista global de direcciones, ocúltelo:

$kontakt = @{
    Name                 = "Extern Max Muster"
    ExternalEmailAddress = "max.muster@partner.example"
    OrganizationalUnit   = "example.local/Kontakte/Extern"
}
New-MailContact @kontakt
Set-MailContact -Identity "Extern Max Muster" -HiddenFromAddressListsEnabled $true
Opciones explicadas
OpciónEfecto
NameNombre para mostrar del contacto en Active Directory. Un prefijo uniforme como «Externo» facilita el mantenimiento posterior.
ExternalEmailAddressLa dirección externa desde la que escribe el remitente.
OrganizationalUnitOU de destino en Active Directory. Si no se especifica, el contacto se crea en el contenedor predeterminado Users.
-HiddenFromAddressListsEnabled $trueOculta el contacto de la lista global de direcciones y de todas las listas de direcciones.

A continuación, añada el contacto como remitente permitido. La tabla hash con Add amplía la lista existente en lugar de sobrescribirla:

$erlaubt = @{ Add = "Extern Max Muster", "Extern Anna Beispiel" }
Set-DistributionGroup -Identity "Projektteam" -AcceptMessagesOnlyFromSendersOrMembers $erlaubt
Opciones explicadas
OpciónEfecto
-AcceptMessagesOnlyFromSendersOrMembersLista de remitentes autorizados para contactar con el grupo. Se admiten remitentes individuales y grupos; en el caso de los grupos, todos sus miembros pueden enviar.
@{ Add = ... }Añade entradas sin eliminar las existentes. Con @{ Remove = ... } se eliminan entradas; un valor sin tabla hash sustituye toda la lista.

En cuanto esta lista contiene al menos una entrada, Exchange rechaza a todos los demás remitentes, incluidos los internos. Si los empleados deben seguir pudiendo escribir a la lista, añada también un grupo adecuado, por ejemplo, el propio grupo de distribución (en ese caso podrán enviar todos sus miembros) o un grupo con todos los empleados. Los remitentes rechazados reciben un informe de no entrega con el estado 5.7.1.

Puede comprobar el estado actual de esta forma:

Get-DistributionGroup -Identity "Projektteam" |
    Format-List Name, RequireSenderAuthenticationEnabled,
        AcceptMessagesOnlyFrom, AcceptMessagesOnlyFromDLMembers

AcceptMessagesOnlyFromSendersOrMembers es un parámetro de recopilación: Exchange distribuye las entradas entre las propiedades AcceptMessagesOnlyFrom (remitentes individuales) y AcceptMessagesOnlyFromDLMembers (grupos). Por eso la consulta muestra estas dos propiedades. También encontrará la misma configuración en el Exchange Admin Center, en las propiedades del grupo, en Administración de entrega (Delivery management).

Esta variante es adecuada cuando solo se añaden unos pocos remitentes externos y la lista de remitentes permitidos debe ser visible en el propio objeto de grupo. La desventaja es el esfuerzo de mantenimiento: cada nuevo remitente necesita un contacto en Active Directory.

Variante 2: Regla de transporte sin contactos

Si internamente todos deben poder seguir escribiendo a la lista y solo se desea restringir a los remitentes externos, una regla de transporte es más sencilla. No requiere contactos y también puede aplicarse a dominios completos. RequireSenderAuthenticationEnabled también debe establecerse aquí en $false.

$regel = @{
    Name                              = "Projektteam: nur freigegebene externe Absender"
    SentTo                            = "projektteam@example.com"
    FromScope                         = "NotInOrganization"
    ExceptIfFromAddressMatchesPatterns = '^max\.muster@partner\.example$',
                                         '@lieferant\.example$'
    RejectMessageReasonText           = "Sie sind nicht berechtigt, an diese Adresse zu senden."
    RejectMessageEnhancedStatusCode   = "5.7.1"
}
New-TransportRule @regel
Opciones explicadas
OpciónEfecto
NameNombre de la regla en la lista de reglas de transporte.
SentToCondición: el mensaje está dirigido a este grupo.
FromScope NotInOrganizationCondición: el remitente no pertenece a la propia organización. Por tanto, los mensajes internos no se ven afectados.
ExceptIfFromAddressMatchesPatternsExcepción: direcciones de remitente que coinciden con una de las expresiones regulares. ^…$ ancla una dirección individual, @domain$ autoriza un dominio completo. Los puntos se escapan con \..
RejectMessageReasonTextTexto del informe de no entrega para el remitente rechazado.
RejectMessageEnhancedStatusCodeCódigo de estado ampliado en el informe de no entrega; 5.7.1 indica falta de autorización.

Sin el anclaje con ^ y $, un patrón como max\.muster@partner\.example también coincidiría con max.muster@partner.example.net. Añada nuevos remitentes con Set-TransportRule y la lista completa y ampliada de patrones; el parámetro sustituye la lista existente.

Límite de ambas variantes: la dirección del remitente puede falsificarse

Ambas variantes solo comprueban la dirección del remitente. Exchange no determina si el mensaje procede realmente del socio autorizado. Quien conozca la dirección de un remitente autorizado puede falsificarla y llegar así a la lista. En una lista con participantes internos, esto abre una vía para el phishing que, además, aparenta proceder de una dirección conocida.

SPF, DKIM y DMARC cierran esta brecha. Si el dominio del socio tiene una política DMARC con p=reject o p=quarantine y su puerta de enlace de correo aplica esta política, los mensajes falsificados de ese dominio ni siquiera llegan a Exchange. En dominios sin política DMARC o con p=none, falta esta protección.

Si su puerta de enlace escribe el resultado de la comprobación en el encabezado Authentication-Results, una segunda regla de transporte puede rechazar adicionalmente a los remitentes autorizados si DMARC no se ha superado:

$regel = @{
    Name                            = "Projektteam: freigegebene Absender nur mit DMARC pass"
    SentTo                          = "projektteam@example.com"
    FromScope                       = "NotInOrganization"
    FromAddressMatchesPatterns      = '^max\.muster@partner\.example$',
                                      '@lieferant\.example$'
    ExceptIfHeaderMatchesMessageHeader = "Authentication-Results"
    ExceptIfHeaderMatchesPatterns   = 'dmarc=pass'
    RejectMessageReasonText         = "Absender konnte nicht verifiziert werden."
    RejectMessageEnhancedStatusCode = "5.7.1"
}
New-TransportRule @regel
Opciones explicadas
OpciónEfecto
FromAddressMatchesPatternsCondición: la regla solo se aplica a los remitentes autorizados, con los mismos patrones que en la primera regla.
ExceptIfHeaderMatchesMessageHeaderNombre del encabezado que comprueba la excepción.
ExceptIfHeaderMatchesPatternsExcepción: si el encabezado contiene dmarc=pass, se entrega el mensaje. Se rechazan todos los demás mensajes de los remitentes autorizados.

Esta regla solo funciona de forma fiable si la puerta de enlace elimina o sobrescribe los encabezados Authentication-Results entrantes desde Internet. De lo contrario, un remitente puede incluir por sí mismo el encabezado con dmarc=pass. La documentación de su puerta de enlace indica qué encabezados establece y si elimina encabezados externos; Exchange no evalúa DMARC por sí mismo.

Qué variante es adecuada

La restricción de entrega con contactos es adecuada para listas con un círculo fijo y reducido de remitentes externos y, si se desea, también restringe a los remitentes internos. La regla de transporte es adecuada cuando todos los usuarios internos pueden enviar, se deben autorizar dominios completos de socios o no se desean crear contactos en Active Directory. Independientemente de la variante, compruebe la política DMARC de cada dominio autorizado y documente quién mantiene la lista de remitentes permitidos.

Fuentes

  1. Microsoft Learn: Set-DistributionGroup

    Parámetros AcceptMessagesOnlyFromSendersOrMembers y RequireSenderAuthenticationEnabled, tipos de objeto permitidos.

    https://learn.microsoft.com/en-us/powershell/module/exchangepowershell/set-distributiongroup?view=exchange-ps
  2. Microsoft Learn: Recipient resolution in Exchange Server

    Cómo evalúa el Categorizer las restricciones de entrega y la autenticación del remitente.

    https://learn.microsoft.com/en-us/exchange/mail-flow/mail-routing/recipient-resolution
  3. Microsoft Learn: New-MailContact

    Creación de contactos de correo electrónico para direcciones externas.

    https://learn.microsoft.com/en-us/powershell/module/exchangepowershell/new-mailcontact?view=exchange-ps
  4. Microsoft Learn: New-TransportRule

    Condiciones, excepciones y acciones para reglas de transporte, incluidas FromScope y HeaderMatchesPatterns.

    https://learn.microsoft.com/en-us/powershell/module/exchangepowershell/new-transportrule?view=exchange-ps
  5. RFC 7489: Domain-based Message Authentication, Reporting, and Conformance (DMARC)

    Especificación de las políticas DMARC p=none, quarantine y reject.

    https://datatracker.ietf.org/doc/html/rfc7489
  6. RFC 8601: Message Header Field for Indicating Message Authentication Status

    Estructura del encabezado Authentication-Results e indicación de que los sistemas receptores deben eliminar instancias externas.

    https://datatracker.ietf.org/doc/html/rfc8601

Comentarios

Los comentarios se cargan desde GitHub / Giscus.