内容

概要

前提条件

要件

使用するコンポーネント

問題

解決方法

概要

このドキュメントでは、ASA を通過する SMTP および ESMTP トラフィックに関連する接続の問題について、最善のトラブルシューティング方法を説明します。

前提条件

要件

このドキュメントに特有の要件はありません。

使用するコンポーネント

このドキュメントの情報は、Cisco 5500 シリーズ適応型セキュリティ アプライアンス（ASA）に基づいています。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。

問題

ASA で Telnet によってE メール サーバをテストし、ESMTP または SMTP 検査を有効にしているとき、HELO や EHLO などの特定のコマンドで 550 エラーが返されます。このエラーは、コマンドが理解されないことを示します。ESMTP または SMTP 検査を無効にすると、コマンドは理解されます。

解決方法

ESMTP および SMTP 検査では、特定のコマンドのみを ASA で許可するポリシーが実施されます。許可されていないメール コマンドを送信すると、そのコマンドは X で置き換えられ、そのコマンドはクライアントおよびサーバで無効となります。

一般的に許可されるコマンドは、『Cisco ASA シリーズ コマンド リファレンス』の「inspect esmtp」に記載されています。HELO と EHLO は一般的に許可されます。ただし、コマンドが認識されるかどうかは、テストの方法によって決まります。

たとえば、Telnet では各文字が別々のパケットで個別に送信されますが、実際のE メール クライアントおよびサーバでは、コマンド全体が 1 つのパケットで送信されます。Telnet を使用して「H」と入力すると、Telnet クライアントは「H」をE メール サーバに送信します。ESMTP および SMTP 検査では「H」が有効なコマンドとして認識されないので、ASA は「H」を「X」に置き換えて渡します。ELOの入力に進むと、各文字が個別に送信され、ASAによって各文字がXに変換されます。サーバはXXXXとして最後のコマンドを受信し、予期したとおりにエラーを送出します。

Telnet を使用して接続をテストする場合は、コマンド全体を 1 つのパケットで送信するようにアプリケーションを設定する必要があります（Microsoft Windows Telnet プログラムでは、1 文字ずつではなく、1 行ずつ送信できます）。 CTRL+] を押して Telnet セッションを終了し、「send HELO」と入力してください。この操作により、文字ごとではなく、コマンド全体が送信されます。

代替策として、Netcat などの別のプログラムを使用できます。Netcatはコマンドを1行ずつ送信し、ネットワークソケットとデータ転送をテストするための非常に強力なツールです。ただし、最適な解決策は、実際のE メール プログラムで接続をテストし、ASA でトラフィックを捕えてさらにテストすることです。