sendmailを使用して電子メールを送信するときにSTARTTLS使用量を確認する方法は?

sendmailを使用して電子メールを送信するときにSTARTTLS使用量を確認する方法は?

sendmail問題が発生した場合は、Eメール通知を送信するようにDebianを実行している小さなVPSにインストールして設定しました。現在の設定はうまく機能しているようですが、これらの通知にはいくつかの機密データが含まれる可能性があるため、暗号化したいと思います。

そのため、sendmailconfigコマンドを数回実行しながらsendmailSTARTTLSを使用するように設定できることがわかりました。

Everything you need to support STARTTLS (encrypted mail transmission
and user authentication via certificates) is installed and configured
but is *NOT* being used.

To enable sendmail to use STARTTLS, you need to:
1) Add this line to /etc/mail/sendmail.mc and optionally
   to /etc/mail/submit.mc:
  include(`/etc/mail/tls/starttls.m4')dnl
2) Run sendmailconfig
3) Restart sendmail

上記の説明を適切な設定ファイルに追加しましたが、すべてがまだ機能しているようです。ただし、パラメータを含むテストEメールを送信すると、-vコンソール出力は以前のテストと全く異なりません(050 250-STARTTLSまたは同じステートメントが表示されますが、050 >>> STARTTLSSTARTTLSを設定する前にも印刷されます)。

sendmailそれでは、電子メールが実際に暗号化されていることをどのように確認できますか?

問題の更新 n.1

いくつかのコメントで提案されているように、最初の数時間の間に行われたいくつかのテストの会話を添付します。
編むこれ会話、これはローカルSMTPを使用して分割された会話です。

$ netcat -Cw 60 localhost 25
220 mail.MYDOMAIN.com ESMTP Sendmail 8.15.2/8.15.2/Debian-14~deb10u1; Fri, 5 Jun 2020 14:40:15 GMT; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
EHLO localhost
250-mail.MYDOMAIN.com Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-STARTTLS
250-DELIVERBY
250 HELP
MAIL FROM: <[email protected]>
250 2.1.0 <[email protected]>... Sender ok
RCPT TO: <[email protected]>
250 2.1.5 <[email protected]>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
From: <[email protected]>         
To: <[email protected]>
Subject: Sendmail test

.
250 2.0.0 055EeF7x000698 Message accepted for delivery
QUIT
221 2.0.0 mail.MYDOMAIN.com closing connection

ただし、Outlook SMTPサーバーで同じ操作を実行しようとすると(上記の通知の受信者が私の無料のOutlookメールであるため)、会話は2番目のステップで停止します。

$ netcat -Cw 60 smtp-mail.outlook.com 25
220 LO2P265CA0139.outlook.office365.com Microsoft ESMTP MAIL Service ready at Fri, 5 Jun 2020 14:56:40 +0000
EHLO mail.MYDOMAIN.com
250-LO2P265CA0139.outlook.office365.com Hello [MYIP]
250-SIZE 157286400
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 SMTPUTF8
MAIL FROM: <[email protected]>
530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [LO2P265CA0139.GBRP265.PROD.OUTLOOK.COM]

また、STARTTLS設定の前後に送信されたいくつかのEメールのヘッダーを比較して、興味深い違いを見つけました。

Received: from mail.MYDOMAIN.com (localhost [127.0.0.1])
    by mail.MYDOMAIN.com (8.15.2/8.15.2/Debian-14~deb10u1) with ESMTPS id 054G4khN002213
    (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT)
    for <[email protected]>; Thu, 4 Jun 2020 16:04:46 GMT

以前の電子メールヘッダーには、括弧の間に暗号化された情報がありませんでした。これは、STARTTLSが実際にどのような用途に使用されるかについての手がかりになることができますか?

問題の更新 n.2

役に立つ場合は、sendmailテストメールを送信するときに詳細モードでコンソールに出力を追加します。

$ echo 'Subject: Sendmail test' | sudo sendmail -v -f [email protected] [email protected]
[email protected]... Connecting to [127.0.0.1] via relay...
220 mail.MYDOMAIN.com ESMTP Sendmail 8.15.2/8.15.2/Debian-14~deb10u1; Sun, 7 Jun 2020 12:28:05 GMT; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
>>> EHLO mail.musnet.io
250-mail.MYDOMAIN.com Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-STARTTLS
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> STARTTLS
220 2.0.0 Ready to start TLS
>>> EHLO mail.musnet.io
250-mail.MYDOMAIN.com Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<[email protected]> SIZE=23 [email protected]
250 2.1.0 <[email protected]>... Sender ok
>>> RCPT To:<[email protected]>
>>> DATA
250 2.1.5 <[email protected]>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
050 <[email protected]>... Connecting to outlook-com.olc.protection.outlook.com. via esmtp...
050 220 DM6NAM12FT067.mail.protection.outlook.com Microsoft ESMTP MAIL Service ready at Sun, 7 Jun 2020 12:28:05 +0000
050 >>> EHLO mail.MYDOMAIN.com
050 250-DM6NAM12FT067.mail.protection.outlook.com Hello [MYIP]
050 250-SIZE 49283072
050 250-PIPELINING
050 250-DSN
050 250-ENHANCEDSTATUSCODES
050 250-STARTTLS
050 250-8BITMIME
050 250-BINARYMIME
050 250-CHUNKING
050 250 SMTPUTF8
050 >>> STARTTLS
050 220 2.0.0 SMTP server ready
050 >>> EHLO mail.MYDOMAIN.com
050 250-DM6NAM12FT067.mail.protection.outlook.com Hello [MYIP]
050 250-SIZE 49283072
050 250-PIPELINING
050 250-DSN
050 250-ENHANCEDSTATUSCODES
050 250-8BITMIME
050 250-BINARYMIME
050 250-CHUNKING
050 250 SMTPUTF8
050 >>> MAIL From:<[email protected]> SIZE=305
050 250 2.1.0 Sender OK
050 >>> RCPT To:<[email protected]>
050 >>> DATA
050 250 2.1.5 Recipient OK
050 354 Start mail input; end with <CRLF>.<CRLF>
050 >>> .
050 250 2.6.0 <[email protected]> [InternalId=29785598229520, Hostname=DM6NAM12HT069.eop-nam12.prod.protection.outlook.com] 7377 bytes in 0.217, 33.122 KB/sec Queued mail for delivery -> 250 2.1.5
050 <[email protected]>... Sent (<[email protected]> [InternalId=29785598229520, Hostname=DM6NAM12HT069.eop-nam12.prod.protection.outlook.com] 7377 bytes in 0.217, 33.122 KB/sec Queued mail for delivery -> 250 2.1.5)
250 2.0.0 057CS569006414 Message accepted for delivery
[email protected]... Sent (057CS569006414 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 mail.MYDOMAIN.com closing connection

答え1

SMTPを使用してポート25でそのコンピュータに接続し、nc手動でSMTPを使用できます。

Wikipediaはサンプル会話。インターネット経由で接続する場合は、認証が必要な場合があります。

MAIL FROM通常、STARTTLSを正しく設定して要求する場合、クライアントがTLSネゴシエーションとハンドシェイクを完了しないと、サーバーは電子メールの受け入れを拒否します(つまり失敗します)。

MTAでは、オプションのトランスポート暗号化設定も許可されることがよくあります(STARTTLSは許可されていますが必須ではありません)。

答え2

あなたの質問の3つの例を挙げると、

  1. あなたのサーバーは着信メッセージにSTARTTLSを提供しますが、それを要求しません(250-STARTTLS初期応答に含まれています)
  2. Exchange Onlineは、着信メッセージにSTARTTLSを提供して要求します(250-STARTTLS初期応答に含まれています)。
  3. 受信者が提供した場合(STARTTLS会話に使用される)、サーバーはSTARTTLSを使用してメッセージを送信します。

サーバーがSTARTTLSを提供していないシステムに転送しようとすると、何が起こるかは表示されません。

関連情報