목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

문제

솔루션

소개

이 문서에서는 ASA를 통해 SMTP 및 ESMTP 트래픽의 연결 문제를 해결하는 가장 좋은 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

이 문서에 대한 특정 요건이 없습니다.

사용되는 구성 요소

이 문서의 정보는 Cisco 5500 Series ASA(Adaptive Security Appliance)를 기반으로 합니다.

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.

문제

ASA에서 텔넷을 통해 이메일 서버를 테스트하고 ESMTP 또는 SMTP 검사가 활성화된 경우 HELO 또는 EHLO와 같은 특정 명령은 명령이 인식되지 않음을 나타내는 550 오류를 반환합니다. ESMTP 또는 SMTP 검사가 비활성화되면 명령이 인식됩니다.

솔루션

ESMTP 및 SMTP 검사는 ASA를 통해 특정 명령만 허용하는 정책을 적용합니다. 허용되지 않는 메일 명령이 전송되면 Xs로 대체되며, 이로 인해 클라이언트와 서버에 명령이 유효하지 않게 됩니다.

일반적으로 허용되는 명령은 Cisco ASA Series 명령 참조의 inspect esmtp 섹션에 나열됩니다. HELO 및 EHLO는 일반적으로 허용됩니다. 그러나 명령이 인식되는지 여부는 테스트할 방법에 따라 달라집니다.

예를 들어 텔넷은 각 문자를 와이어 상의 다른 패킷에 개별적으로 전송하지만, 실제 이메일 클라이언트와 서버는 전체 명령을 하나의 패킷으로 전송합니다. 텔넷을 사용하고 H를 입력하면 텔넷 클라이언트가 이메일 서버에 H를 전송합니다. ESMTP 및 SMTP 검사는 H를 유효한 명령으로 인식하지 않으므로 ASA는 H를 X로 대체하고 이를 전달합니다. ELO를 계속 입력하면 각 문자가 개별적으로 전송되고 ASA는 각 문자를 X로 변환합니다. 서버는 XXXX로 마지막 명령을 수신하고 오류가 예상대로 출력됩니다.

연결을 테스트하기 위해 텔넷을 사용하는 경우 하나의 패킷에서 전체 명령을 전송하도록 애플리케이션을 구성해야 합니다. Microsoft Windows Telnet 프로그램은 문자 대신 한 번에 한 줄을 보낼 수 있습니다. 텔넷 세션을 종료하려면 CTRL+]를 누르고 send HELO를 입력합니다. 이 작업은 개별 문자 대신 전체 명령을 전송합니다.

대안으로 Netcat과 같은 다른 프로그램을 사용할 수 있습니다. Netcat은 명령줄을 한 줄에 하나씩 전송하며 네트워크 소켓 및 데이터 전송을 테스트하는 매우 강력한 툴입니다. 그러나 최상의 솔루션은 실제 이메일 프로그램으로 연결을 테스트하고 ASA에서 트래픽을 캡처하여 추가 테스트를 수행하는 것입니다.