このドキュメントでは、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 でトラフィックを捕えてさらにテストすることです。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
07-Aug-2017 |
初版 |