Introdução
Este documento descreve como solucionar problemas de conexões intermitentes e canceladas durante o recebimento e a entrega de e-mail.
Pré-requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Cisco Private Internet eXchange (PIX) ou Adaptive Security Appliance (ASA) versão 7.x ou superior
- Dispositivo de segurança de e-mail (ESA) da Cisco
Informações de Apoio
Os gateways de e-mail Cisco ESA são firewalls de e-mail inerentemente. Isso elimina a necessidade de um firewall upstream, como um Cisco PIX ou ASA, para inspecionar o tráfego de e-mail de e para um ESA. É recomendável desativar os recursos de Inspeção de Aplicativos ESMTP (Extended Simple Mail Transfer Protocol) no firewall para qualquer endereço de host de dispositivo de segurança. Por padrão, a inspeção de protocolo ESMTP é ativada para todas as conexões que passam pelos firewalls da Cisco. Isso significa que todos os comandos emitidos entre os gateways de e-mail através da porta 25 do TCP, bem como cabeçalhos de mensagens individuais, são analisados para aderir estritamente às especificações de RFC (Request for Comments, Solicitação de Comentários) que incluem 821, 1123 e 1870 do RFC. Existem valores padrão definidos para o número máximo de destinatários e tamanhos de mensagem que podem causar problemas com a entrega de e para o seu ESA. Esses padrões de configuração específicos são descritos aqui (retirados da Cisco Command Lookup Tool).
O comando inspect esmtp inclui a funcionalidade anteriormente fornecida pelo comando fixup smtp e fornece suporte adicional para alguns comandos ESMTP. A inspeção de aplicativos ESMTP adiciona suporte para oito comandos ESMTP, incluindo AUTH, EHLO, ETRN, HELP, SAML, SEND, SOML e VRFY. Junto com o suporte a sete comandos RFC 821 (DATA, HELO, MAIL, NOOP, QUIT, RCPT, RSET), o Security Appliance oferece suporte a um total de 15 comandos SMTP. Outros comandos ESMTP, como ATRN, STARTLS, ONEX, VERB, CHUNKING, e extensões privadas não são suportados. Comandos não suportados são convertidos em Xs, que são rejeitados pelo servidor interno. Isso resulta em uma mensagem como 500 Command unknown: XXX. Comandos incompletos são descartados.
O comando inspect esmtp altera os caracteres no banner SMTP do servidor para asteriscos, exceto os caracteres "2", "0" e "0". Os caracteres de retorno de carro (CR) e de avanço de linha (LF) são ignorados. Com a inspeção de SMTP habilitada, uma sessão usada para SMTP interativo espera por um comando válido e a máquina de estado de firewall esmtp mantém os estados corretos para a sessão se essas regras não forem observadas:
- Os comandos SMTP devem ter pelo menos quatro caracteres.
- Os comandos SMTP devem ser terminados com retorno de carro e alimentação de linha.
- Os comandos SMTP devem aguardar uma resposta antes de emitir a próxima resposta.
Um servidor SMTP responde a solicitações do cliente com códigos numéricos de resposta e strings opcionais legíveis por humanos. A inspeção de aplicativos SMTP controla e reduz os comandos que o usuário pode usar, bem como as mensagens que o servidor retorna. A inspeção de SMTP executa três tarefas principais:
- Restringe as solicitações SMTP a sete comandos SMTP básicos e oito comandos estendidos.
- Monitora a sequência de comando-resposta SMTP.
- Gera uma trilha de auditoria. A 108002 do registro de auditoria é gerada quando um caractere inválido inserido no endereço de email é substituído. Para obter mais informações, consulte RFC 821.
Uma inspeção de SMTP monitora a sequência de comandos e respostas para as seguintes assinaturas anômalas:
- Comandos truncados.
- Encerramento de comando incorreto (não encerrado com <CR><LR>).
- Se a interface PHY para assinatura do PCI Express (PIPE) for encontrada como um parâmetro do comando MAIL from ou RCPT to, a sessão será fechada. Ele não pode ser configurado pelo usuário.
- Transição inesperada pelo servidor SMTP.
- Para comandos desconhecidos, o Security Appliance altera todos os caracteres do pacote para X. Nesse caso, o servidor gerará um código de erro para o cliente. Devido à alteração no pacote, a soma de verificação TCP precisa ser recalculada ou ajustada.
- Edição de fluxo TCP.
A saída de show service-policy inspect ESMTP fornece os valores de inspeção padrão e suas ações correspondentes.
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, as mensagens não serão entregues ou recebidas corretamente pelo Cisco ESA. Uma ou mais dessas mensagens são vistas nos mail_logs do dispositivo Cisco ESA:
- Mensagem anulada MID XXX
- Recebimento de ICID anulado 21916 perdido
- ICID 21916 fechar
- Erro de conexão: DCID: XXX domínio:example.com IP: 10.1.2.3 porta: 25 detalhes: [Erro 60]
Interface de tempo limite da operação: 10.10.10.1 motivo: erro de rede
Solução
Algumas dessas configurações padrão podem afetar itens como a entrega de mensagens criptografadas TLS (Transport Layer Security), campanhas de listas de mala direta e solução de problemas. Uma política melhor pode fazer com que você utilize o firewall para inspecionar todo o tráfego de e-mail restante que não passa primeiro pelo Security Appliance, enquanto isenta todo o tráfego que passa. Este exemplo ilustra como ajustar a configuração padrão (observada anteriormente) para isentar o ESMTP Application Inspection para um único endereço de host de segurança.
Você pode definir todo o tráfego de e para o endereço interno dos Cisco ESAs para referência em um mapa de classe de Estrutura de política modular (MPF - Modular Policy Framework):
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
Isso cria um novo mapa de classe para corresponder ou selecionar especificamente o tráfego a ser tratado de forma diferente:
class-map ironport_esa
match address ironport_esa_internal
Esta seção vincula o novo mapa de classe Cisco e desativa os recursos de inspeção de protocolo ESMTP:
policy-map global_policy
class ironport_esa
no inspect esmtp
Observe também a instrução de conversão de endereço que pode ajudar a controlar o número de conexões de entrada e semiabertas (embrionárias) para o endereço. Isso é útil para combater ataques de negação de serviço (DoS), mas pode interferir nas taxas de entrega.
Formatar para rastrear parâmetros dos comandos NAT e STATIC ... [tcp (max_conns)] [max_embrionic].
Este exemplo especifica limites de 50 conexões TCP totais e 100 tentativas de conexão semiaberta ou embrionária:
static (inside,outside) 1.1.1.1 192.168.1.1 netmask 255.255.255.255 tcp 50 100