postfix ログにクライアントからのコマンドとして ??? が表示される

postfix ログにクライアントからのコマンドとして ??? が表示される

私は postfix 3.1.0-3ubuntu0.4 パッケージを使用して Ubuntu 18.04.6 LTS サーバーを実行しています。

Apple Mail クライアントと Postbox クライアントの両方で、最初に SMTP サービスに電子メールを送信するときに奇妙な遅延が発生します。最終的に Apple Mail は再試行して動作しますが、Postbox は諦めます。

最初のやり取りでは、電子メール クライアントはサーバーの挨拶の後にコマンドとして「???」を送信しているように見えます。少なくとも、postfix によってそのようにログに記録されます。ログの行は次のようになります (実際の IP アドレスは編集されています)。

Nov 23 17:11:09 mail postfix/smtpd[3367]: < ipxx-xxx-xxx-xxx.ph.ph.cox.net[xx.xxx.xxx.xxx]: ???

サーバーは次のように応答します: 502 5.5.2 Error: command not recognized

一体何が起こっているのでしょうか? 文字列 '???' が有効な SMTP コマンドであるとみなされている箇所がどこにも見つかりません。これは古いシステム用のハックのようなものでしょうか?

上記の両方のクライアントはこれを送信しているように見えますが、iOS 電子メール クライアントは送信しません。

これに関するドキュメントや、これを postfix 設定として許容するドキュメントは見つかりませんでした。

答え1

Postfixは非印刷可能()?ログ内の文字。

これが起こる可能性がある1つの方法は、クライアントがTLS接続を確立するように指示されているが、Postfixがプレーンテキストで話しているポート番号を使用している場合です。バイナリTLS1.3 ClientHelloは有効なSMTPコマンドではないため、ログでは?として表示されます。サーバーは、STARTTLS互換性ハックを介して既存の暗号化されていないSMTP接続を安全なチャネルにアップグレードすることを提案しますが、通常は気付かれません。賢いMUAはこの間違いを認識し、構成から逸脱した設定で再試行します。頭がいい危険な領域に簡単に踏み込む可能性があります。

postfix がそれを許可するように設定されていると仮定すると、クライアントがポート 465/tcp (「TLS プロトコル経由のメッセージ送信」) を使用するように設定し、TLS をすぐに使用するように指示します。これは、メールを送信するための推奨される安全なオプションです。関連するオプションを識別するのに役立つキーワードをいくつか示します。

ポート メッセージ送信用に予約されています ソフトウェア設定でラベル付けされているもの
465 TLS経由のSMTP(推奨 暗黙TLS、TLS、SMTPS、クリーンTLS、ラッパーモード
587 オプションの TLS を使用した SMTP プレーンテキスト 明示的なTLS、STARTTLS、オプションTLS、RFC 3207

関連情報