Introducción
Este documento describe cómo resolver problemas intermitentes y conexiones abortadas durante la recepción y entrega de correo.
Prerequisites
Cisco recomienda que tenga conocimiento sobre estos temas:
- Cisco Private Internet eXchange (PIX) o Adaptive Security Appliance (ASA) versión 7.x y posteriores
- Dispositivo de seguridad Cisco Email Security Appliance (ESA)
Antecedentes
Los gateways de correo electrónico de Cisco ESA son firewalls de correo electrónico inherentes. Esto elimina la necesidad de un firewall ascendente, como un Cisco PIX o ASA, para inspeccionar el tráfico de correo hacia y desde un ESA. Se recomienda desactivar las funciones de inspección de aplicaciones del protocolo simple de transferencia de correo ampliado (ESMTP) en el firewall para las direcciones de host de cualquier dispositivo de seguridad. De forma predeterminada, la inspección del protocolo ESMTP está habilitada para todas las conexiones que pasan a través de los firewalls de Cisco. Esto significa que todos los comandos emitidos entre gateways de correo a través del puerto TCP 25, así como los encabezados de mensajes individuales, se analizan para cumplir estrictamente con las especificaciones de solicitud de comentarios (RFC) que incluyen RFC 821, 1123 y 1870. Hay valores predeterminados definidos para el número máximo de destinatarios y tamaños de mensaje que pueden causar problemas con la entrega a y desde su ESA. Estos valores predeterminados de configuración específicos se describen aquí (tomados de la herramienta Cisco Command Lookup).
El comando inspect esmtp incluye la funcionalidad provista previamente por el comando fixup smtp, y proporciona soporte adicional para algunos comandos ESMTP. La inspección de la aplicación ESMTP agrega soporte para ocho comandos ESMTP, incluidos AUTH, EHLO, ETRN, HELP, SAML, SEND, SOML y VRFY. Junto con la compatibilidad con siete comandos RFC 821 (DATA, HELO, MAIL, NOOP, QUIT, RCPT, RSET), el dispositivo de seguridad admite un total de 15 comandos SMTP. Otros comandos ESMTP, como ATRN, STARTLS, ONEX, VERB, CHUNKING, y extensiones privadas no son compatibles. Los comandos no admitidos se traducen en Xs, que son rechazados por el servidor interno. Esto da como resultado un mensaje como 500 Command unknown: XXX. Los comandos incompletos se descartan.
El comando inspect esmtp cambia los caracteres en el banner SMTP del servidor a asteriscos excepto por los caracteres "2", "0", "0". Se omiten los caracteres de retorno de carro (CR) y avance de línea (LF). Con la inspección SMTP habilitada, una sesión utilizada para el SMTP interactivo espera un comando válido y la máquina de estado esmtp del firewall mantiene los estados correctos para la sesión si estas reglas no se observan:
- Los comandos SMTP deben tener al menos cuatro caracteres de longitud.
- Los comandos SMTP deben terminar con retorno de carro y avance de línea.
- Los comandos SMTP deben esperar una respuesta antes de emitir la siguiente respuesta.
Un servidor SMTP responde a las solicitudes de los clientes con códigos de respuesta numéricos y cadenas opcionales legibles por las personas. La inspección de aplicaciones SMTP controla y reduce los comandos que puede utilizar el usuario, así como los mensajes que devuelve el servidor. La inspección SMTP realiza tres tareas principales:
- Restringe las solicitudes SMTP a siete comandos SMTP básicos y ocho comandos extendidos.
- Supervisa la secuencia de respuesta a comandos SMTP.
- Genera una pista de auditoría. El registro de auditoría 108002 se genera cuando se reemplaza un carácter no válido incrustado en la dirección de correo. Para obtener más información, vea RFC 821.
Una inspección SMTP supervisa la secuencia de comandos y respuestas en busca de las siguientes firmas anómalas:
- Comandos truncados.
- Terminación de comando incorrecta (no terminada con <CR><LR>).
- Si se encuentra la firma de la interfaz PHY para PCI Express (PIPE) como parámetro de un comando MAIL from o RCPT to, la sesión se cierra. No es configurable por el usuario.
- Transición inesperada por el servidor SMTP.
- Para los comandos desconocidos, el dispositivo de seguridad cambia todos los caracteres del paquete a X. En este caso, el servidor generará un código de error para el cliente. Debido al cambio en el paquete, la suma de comprobación de TCP tiene que ser recalculada o ajustada.
- Edición de flujo TCP.
El resultado de show service-policy inspect ESMTP proporciona los valores de inspección predeterminados y sus acciones correspondientes.
Global policy:
Service-policy: global_policy
Class-map: inspection_default
Inspect: esmtp _default_esmtp_map, packet 104468, drop 0, reset-drop 0
mask-banner, count 639 obfuscate the SMTP banner greeting
match cmd line length gt 512 deny all SMTP commands (and close connection)
drop-connection log, packet 0
match cmd RCPT count gt 100 drop all messages (and connection) with more
than 100 recipients
drop-connection log, packet 0
match body line length gt 998 log all messages with lines > 998 chars
log, packet 0
match header line length gt 998 drop all messages (and connection)
with headers > 998 chars
drop-connection log, packet 41
match sender-address length gt 320 drop all messages (and connection) with
envelope sender > 320 bytes
drop-connection log, packet 0
match MIME filename length gt 255 drop all messages (and connection) with
MIME attachment filenames > 255 bytes
drop-connection log, packet 0
match ehlo-reply-parameter others obfuscate extended commands not explicitly
noted in the RFCs (such as STARTTLS)
mask, packet 2555
Problema
Ocasionalmente, el ESA de Cisco no entregará o recibirá correctamente los mensajes. Uno o más de estos mensajes se ven en los registros de correo del dispositivo Cisco ESA:
- Mensaje cancelado MEDIA XXX
- Recepción anulada ICID 21916 perdida
- ICID 21916 cerrar
- Error de conexión: DCID: XXX domain:example.com IP: 10.1.2.3 port: 25 details: [Error 60]
Interfaz con tiempo de espera de funcionamiento agotado: 10.10.10.1 motivo: error de red
Solución
Algunas de estas configuraciones predeterminadas podrían afectar a aspectos como la entrega de mensajes cifrados de seguridad de la capa de transporte (TLS), campañas de listas de correo y solución de problemas. Una política mejor podría obligarle a utilizar el firewall para inspeccionar todo el tráfico de correo electrónico restante que no pasa primero a través del dispositivo de seguridad, a la vez que se exime todo el tráfico que tiene. Este ejemplo ilustra cómo ajustar la configuración predeterminada (anotada anteriormente) para eximir la Inspección de aplicación ESMTP para una sola dirección de host de seguridad.
Puede definir todo el tráfico hacia y desde la dirección interna de los ESA de Cisco como referencia en un mapa de clase del Marco de políticas modulares (MPF):
access-list ironport_esa_internal extended permit ip any 192.168.1.1
access-list ironport_esa_internal extended permit ip 192.168.1.1 any
Esto crea un nuevo mapa de clase para hacer coincidir o seleccionar específicamente el tráfico que se tratará de manera diferente:
class-map ironport_esa
match address ironport_esa_internal
Esta sección enlaza el nuevo mapa de clase de Cisco e inhabilita las funciones de inspección del protocolo ESMTP:
policy-map global_policy
class ironport_esa
no inspect esmtp
También observe la declaración de traducción de direcciones que puede ayudar a controlar el número de conexiones entrantes y semiabiertas (embrionarias) a la dirección. Esto resulta útil para combatir los ataques de denegación de servicio (DoS), pero puede interferir con los índices de entrega.
Formato para los parámetros de seguimiento de los comandos NAT y STATIC ... [tcp (max_conns)] [max_embryonic].
Este ejemplo especifica límites de 50 conexiones TCP totales y 100 intentos de conexión semiabierta o embrionaria:
static (inside,outside) 1.1.1.1 192.168.1.1 netmask 255.255.255.255 tcp 50 100