dovecot: ローカルホストでは証明書を取得できますが、外部からは取得できません

dovecot: ローカルホストでは証明書を取得できますが、外部からは取得できません

数日前までdovecot/postfix/fail2banの設定は問題なく動いていましたが、外部(例えばローカルホスト)から接続すると

CONNECTED(000002F8)
write:errno=10054
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 326 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol  : TLSv1.2
Cipher    : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg   : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1569483184
Timeout   : 300 (sec)
Verify return code: 0 (ok)
---

しかし、ローカルに接続すると

    me@example:/etc/dovecot/conf.d$ openssl s_client localhost:995
CONNECTED(00000005)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = example.com
verify return:1
---
Certificate chain
 0 s:CN = example.com
   i:C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
 1 s:C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
bla
-----END CERTIFICATE-----
subject=CN = example.com

issuer=C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: ECDH, P-384, 384 bits
---
SSL handshake has read 3274 bytes and written 767 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: bla
    Session-ID-ctx:
    Resumption PSK: bla
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    bla

    Start Time: 1569483321
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: bla
    Session-ID-ctx:
    Resumption PSK: bla
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    bla

    Start Time: 1569483321
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
+OK Dovecot (Ubuntu) ready.

ログを検索しましたが、疑わしいものは見つかりませんでした。そして、結局のところ、localhost に接続して証明書を取得できることが明確に示されています。しかし、外部からは接続できますが ( CONNECTED(000002F8))、証明書を取得できません。

どこを確認すればいいのでしょうか? このような問題を引き起こす可能性のあるものは何でしょうか?

ありがとう!

答え1

書き込み:errno=10054
...
SSL ハンドシェイクで 0 バイトが読み取られ、326 バイトが書き込まれました

最初に接続できますが、その後接続がリセットされます (10054 は WSAECONNRESET - ピアによる接続のリセット)。この原因として考えられるのは、クライアントとサーバーの間のどこかにある、TLS ハンドシェイクが検出され、このプロトコルが許可されていない場合に接続をブロックする、深く検査するファイアウォールです。この結果、サーバーからデータが読み取られません (「... 0 バイトを読み取りました」) であり、証明書や TLS ハンドシェイクのその他のサーバー側部分もありません。

関連情報