El servidor de perímetro de Exchange Server 2007, se encarga, entre otras cosas, de protegernos contra el SPAM y correo no deseado.
En la siguiente tabla observamos el orden de ejecución de los eventos SMTP.
|
Secuencia
|
Evento SMTP
|
Descripción
|
|
1
|
OnConnectEvent |
Este evento se desencadena en la conexión inicial desde un host SMTP remoto. |
| 2 |
OnHeloCommand |
Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP HELO. |
| 3 |
OnEhloCommand |
Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP EHLO. |
| 4 |
OnAuthCommand |
Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP AUTH. |
| 5 |
OnEndOfAuthentication |
Este evento se desencadena cuando el host SMTP remoto ha completado la autenticación. |
| 6 |
OnMailCommand |
Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP MAIL FROM. |
| 7 |
OnRcptCommand |
Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP RCPT TO. |
| 8 |
OnDataCommand |
Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP DATA. |
| 9 |
OnEndOfHeaders |
Este evento se desencadena cuando el host SMTP remoto ha completado el envío de encabezados de mensajes de correo electrónico. |
| 10 |
OnEndOfData |
Este evento se desencadena cuando el host SMTP remoto emite <CRLF>.<CRLF>, lo cual indica el fin de los datos. |
| ** |
OnHelpCommand |
Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP HELP. Este evento puede ocurrir en cualquier momento después del evento SMTP OnConnectEvent y antes del evento SMTP OnDisconnectEvent. |
| ** |
OnNoopCommand |
Este evento se desencadena cuando el host SMTP remoto emite el verbo SMTP NOOP. Este evento puede ocurrir en cualquier momento después del evento SMTP OnConnectEvent y antes del evento SMTP OnDisconnectEvent. |
| ** |
OnReject |
Este evento se desencadena cuando el host SMTP de recepción emite un código de notificación de estado de entrega (DSN) temporal o permanente al host SMTP emisor. Este evento puede ocurrir en cualquier momento después del evento SMTP OnConnectEvent y antes del evento SMTP OnDisconnectEvent. |
| ** |
OnRsetCommand |
Este evento se desencadena cuando el host SMTP emisor emite el verbo SMTP RSET. Este evento puede ocurrir en cualquier momento después del evento SMTP OnConnectEvent y antes del evento SMTP OnDisconnectEvent. |
| 11 |
OnDisconnectEvent |
Este evento se desencadena cuando el host SMTP emisor o de recepción se desconecta de la conversación SMTP. |
| 12 |
OnSubmittedMessage |
Este evento se desencadena cuando se envía un mensaje a las colas de envío del host SMTP de recepción. Los mensajes que lleguen a través de envío SMTP, MAPI o a través de los directorios Pickup y Replay encontrarán este evento. |
| 13 |
OnResolvedMessage |
Este evento se desencadena una vez se hayan resuelto todos los destinatarios pero antes de que se determine el siguiente salto para cada uno de ellos. El evento de enrutamiento OnResolvedMessage permite que los eventos de enrutamiento posteriores invaliden el comportamiento de enrutamiento predeterminado mediante la utilización del método por destinatario SetRoutingOverride. |
| 14 |
OnRoutedMessage |
Este evento se desencadena una vez que los mensajes se han categorizado, las listas de distribución se han expandido y se han resuelto los destinatarios. |
La principal ventaja de los agentes de transporte en el servidor de perímetro o servidor de transporte interno de Exchange Server 2007, es que se pueden registrar en cualquiera de los eventos SMTP y actuar sobre una conexión, mensaje, contenido, etc. en un determinado momento.
Cuando un agente de transporte de configura, se asignan dos propiedades que determinan el orden de ejecución:
- La prioridad de ejecución
- El evento SMTP que tiene asignado en la lista de eventos
La prioridad se puede cambiar desde el Shell de Administración de Exchange, sin embargo el momento en que finalmente el agente se ejecute va a estar dado por ambas propiedades.
Con el cmdlet Get-TransportAgent veremos los agentes habilitados y la prioridad de ejecución, mientras que con Set-TransportAgent, configuraremos el agente, por ejemplo, podremos modificar la prioridad.
En la siguiente tabla observamos la lista de agentes de transporte que el servidor de perímetro instala por defecto y los eventos SMTP en los que se registran.
| Nombre del agente |
Prioridad |
Eventos SMTP |
| Agente de filtro de conexión |
1 |
OnConnectEvent, OnMailCommand, OnRcptComand, OnEndOfHeaders |
| Agente de reescritura de direcciones entrantes |
2 |
OnRcptCommand, OnEndOfHeaders |
|
Agente Regla de perímetro
|
3 |
OnEndOfData |
| Agente de filtro de contenido |
4 |
OnEndOfData |
| Agente de Id. de remitente |
5 |
OnEndOfHeaders |
| Agente de filtro de remitentes |
6 |
OnMailCommand, OnEndOfHeaders |
| Agente de filtro de destinatarios |
7 |
OnRcptCommand |
| Agente de análisis de protocolo |
8 |
OnEndOfHeaders, OnEndOfData, OnReject, OnRsetCommand, OnDisconnectEvent |
| Agente de filtro de documentos adjuntos |
9 |
OnEndOfData |
| Agente de reescritura de direcciones salientes |
10 |
OnRcptCommand, OnEndOfHeaders |
Con el cmdlet Get-TransportPipeline podemos ver todos los agentes de transporte habilitados, y aquellos eventos SMTP en los que se han registrado.
1. Agente de filtro de conexión
El primer agente de transporte que se activa cuando se inicia una conexión SMTP entrante a la organización es el agente de filtro de conexión. Este agente se encarga de controlar las direcciones IP que intentan iniciar una conexión entrante. Si la IP de origen está en la lista de IPs bloqueadas, la conexión se cerrará inmediatamente. Por el contrario, si la IP está en la lista de IPs permitidas, no se harán más comprobaciones y se pasará al siguiente agente.
Adicionalmente, podemos bloquear una IP durante un periodo determinado, por ejemplo si detectamos una oleada de correo no deseado desde un origen identificado.
Además, este mismo agente se encarga de consultar a los proveedores de listas negras (RBL) y actuar en consecuencia. La configuración es bastante sencilla, basta con crear las reglas correspondientes para cada proveedor y asociar la regla a una respuesta que nos especifique el proveedor de RBL.
El servidor de perímetro de Exchange Server 2007 realiza las consultas utilizando el dominio de búsqueda, recibiendo una respuesta en formato 127.0.0.X, que debemos hacer coincidir con la máscara que especificamos en la regla. De esta forma cuando se reciba la respuesta identificada, el agente cerrará la conexión, evitando que el mensaje salga del servidor remitente.
Si por algún motivo queremos que los mensajes enviados a algún destinatario no se filtren utilizando este agente, podemos agregar la dirección SMTP a la a la lista de excepciones.
A continuación observamos el flujo de decisiones que realiza el agente de filtrado de conexión.
2. Agente de filtro de remitente
Después de aplicar el filtro de direcciones IP, Exchange 2007 analiza la dirección del remitente, en busca que alguna configuración que permita o bloquee el mensaje entrante.
Este agente se configura especificando las direcciones o dominios SMTP que queremos bloquear, evitando así la entrega del mensaje. Es importante saber que el mensaje en este segundo nivel de filtrado tampoco llega a salir del servidor de origen, por lo tanto evitamos generar NDRs sin necesidad.
Así mismo, podemos configurar la acción de filtrado, que consiste en rechazar el mensaje o marcarlo y seguir su procesamiento. Si se selecciona esta última opción, el agente de filtrado de contenido, tendrá en cuenta el resultado a la hora de establecer una valoración SCL final.
El flujo de decisión de este segundo agente de filtrado es el siguiente
Hasta la siguiente entrega.