本文档介绍通过ASA排除SMTP和ESMTP流量连接问题的最佳方法。
本文档没有任何特定的要求。
本文档中的信息基于Cisco 5500系列自适应安全设备(ASA)。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
在ASA上通过Telnet测试电子邮件服务器并启用ESMTP或SMTP检测时,某些命令(如HELO或EHLO)会返回550错误,表示不理解该命令。禁用ESMTP或SMTP检测时,将理解这些命令。
ESMTP和SMTP检查强制实施仅允许通过ASA的特定命令的策略。如果发送的邮件命令不允许,则替换为X,这会使命令对客户端和服务器无效。
通常允许的命令列在《Cisco ASA系列命令参考》的inspect esmtp部分中。通常允许HELO和EHLO;但是,命令是否可识别取决于测试的方法。
例如,Telnet会在线路上的不同数据包中单独发送每个字符,但实际的电子邮件客户端和服务器会在一个数据包中发送整个命令。如果使用Telnet并键入H,则Telnet客户端会向电子邮件服务器发送H。由于ESMTP和SMTP检测不将H识别为有效命令,因此ASA会用X替换H并将其传递。如果继续键入ELO,则每个字符将单独发送,ASA将每个字符变为X。服务器将收到最终命令XXXX,并按预期错误。
如果使用Telnet测试连接,则必须将应用配置为在一个数据包中发送整个命令。(Microsoft Windows Telnet程序可以一次发送一行,而不是逐个字符发送。) 按CTRL+]退出Telnet会话,然后键入send HELO。此操作将发送整个命令,而不是单个字符。
作为替代方案,您可以使用其他程序,如Netcat。Netcat逐行发送命令,是测试网络套接字和数据传输的非常强大的工具。但是,最佳解决方案是使用实际的电子邮件程序测试连接,并捕获ASA上的流量以进行进一步测试。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
07-Aug-2017 |
初始版本 |