Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Problema

Soluzione

Introduzione

In questo documento viene descritto il modo migliore per risolvere i problemi di connettività con il traffico SMTP e ESMTP tramite un'appliance ASA.

Prerequisiti

Requisiti

Nessun requisito specifico previsto per questo documento.

Componenti usati

Per la stesura del documento, è stato usato un Cisco serie 5500 Adaptive Security Appliance (ASA).

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Problema

Quando si prova un server e-mail tramite Telnet sull'appliance ASA e l'ispezione ESMTP o SMTP è abilitata, alcuni comandi, ad esempio HELO o EHLO, restituiscono un errore 550 che indica che il comando non è stato compreso. Quando l'ispezione ESMTP o SMTP è disabilitata, i comandi sono riconosciuti.

Soluzione

L'ispezione ESMTP e SMTP applicano una policy che consente solo alcuni comandi tramite l'appliance ASA. Se viene inviato un comando di posta elettronica non consentito, viene sostituito da Xs, che rende il comando non valido per il client e il server.

I comandi normalmente consentiti sono elencati nella sezione inspect esmtp della guida di riferimento dei comandi delle serie Cisco ASA. HELO e EHLO sono normalmente consentiti; tuttavia, il riconoscimento del comando dipende dal metodo con cui si esegue il test.

Ad esempio, Telnet invia ogni carattere singolarmente in un pacchetto diverso in transito, ma i client e i server di posta elettronica effettivi inviano l'intero comando in un pacchetto. Se si utilizza Telnet e si digita H, il client Telnet invia una H al server di posta elettronica. Poiché l'ispezione ESMTP e SMTP non riconoscono H come comando valido, l'ASA sostituisce H con una X e lo passa. Se si continua a digitare ELO, ogni carattere viene inviato singolarmente e l'ASA trasforma ogni carattere in una X. Il server riceve il comando finale come XXXX e restituisce un errore come previsto.

Se si utilizza Telnet per verificare la connettività, è necessario configurare l'applicazione in modo che invii l'intero comando in un unico pacchetto. Il programma Microsoft Windows Telnet consente di inviare una riga alla volta anziché carattere per carattere. Premere CTRL+] per uscire dalla sessione Telnet e digitare send HELO. Questa azione invia l'intero comando anziché singoli caratteri.

In alternativa, è possibile utilizzare un altro programma, ad esempio Netcat. Netcat invia comandi riga per riga ed è uno strumento molto potente per testare i socket di rete e i trasferimenti di dati. Tuttavia, la soluzione migliore è quella di verificare la connettività con un programma di e-mail effettivo e acquisire il traffico sull'appliance ASA per ulteriori test.