Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Problema

Solução

Introduction

Este documento descreve a melhor maneira de resolver problemas de conectividade com tráfego SMTP e ESMTP por meio de um ASA.

Prerequisites

Requirements

Não existem requisitos específicos para este documento.

Componentes Utilizados

As informações neste documento são baseadas no Cisco 5500 Series Adaptive Security Appliance (ASA).

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Problema

Quando você testa um servidor de e-mail por meio de Telnet no ASA e a inspeção de ESMTP ou SMTP está habilitada, determinados comandos, como HELO ou EHLO, retornam um erro 550 que indica que o comando não é entendido. Quando a inspeção de ESMTP ou SMTP é desabilitada, os comandos são entendidos.

Solução

A inspeção de ESMTP e SMTP aplica uma política que permite somente determinados comandos através do ASA. Se um comando de correio for enviado que não é permitido, ele será substituído por Xs, o que torna o comando inválido para o cliente e o servidor.

Os comandos que são normalmente permitidos estão listados na seção inspect esmtp da Referência de Comandos do Cisco ASA Series. São normalmente permitidos HELO e EHLO; no entanto, se o comando é reconhecido depende do método pelo qual você testa.

Por exemplo, o Telnet envia cada caractere individualmente em um pacote diferente no fio, mas os clientes de e-mail e servidores reais enviam o comando inteiro em um pacote. Se você usa Telnet e digita H, o cliente Telnet envia um H ao servidor de e-mail. Como a inspeção de ESMTP e SMTP não reconhece H como um comando válido, o ASA substitui o H por um X e o passa junto. Se você prosseguir para o tipo ELO, cada caractere será enviado individualmente e o ASA transformará cada caractere em um X. O servidor recebe o comando final como XXXX e sai com erros conforme esperado.

Se você usar o Telnet para testar a conectividade, deverá configurar o aplicativo para enviar o comando inteiro em um pacote. (O programa Telnet do Microsoft Windows pode enviar uma linha de cada vez, em vez de um caractere por caractere.) Pressione CTRL+] para sair da sessão Telnet e digite send HELO. Esta ação envia o comando inteiro em vez de caracteres individuais.

Como alternativa, você pode usar outro programa, como o Netcat. O Netcat envia comandos linha por linha e é uma ferramenta muito poderosa para testar soquetes de rede e transferências de dados. No entanto, a melhor solução é testar a conectividade com um programa de e-mail real e capturar o tráfego no ASA para testes adicionais.