dovecot: Ich bekomme das Zertifikat auf localhost, aber nicht von außerhalb

dovecot: Ich bekomme das Zertifikat auf localhost, aber nicht von außerhalb

Ich hatte ein Dovecot/Postfix/Fail2ban-Setup, das bis vor einigen Tagen einwandfrei lief: Wenn ich mich von außerhalb (z. B. meinem lokalen Host) verbinde, erhalte ich

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)
---

Aber wenn ich mich lokal verbinde

    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.

Ich habe die Protokolle durchsucht und nichts Verdächtiges gefunden. Und schließlich steht dort eindeutig, dass ich mich mit dem lokalen Host verbinden kann und das Zertifikat bekomme. Von außerhalb kann ich mich jedoch verbinden ( CONNECTED(000002F8)), aber ich bekomme kein Zertifikat.

Wo muss ich suchen? Was könnte die Ursache für ein solches Problem sein?

Danke!

Antwort1

write:errno=10054
...
SSL-Handshake hat 0 Bytes gelesen und 326 Bytes geschrieben

Während Sie sich zunächst verbinden können, wird die Verbindung dann zurückgesetzt (10054 ist WSAECONNRESET - Verbindung vom Peer zurückgesetzt). Die mögliche Ursache hierfür ist eine Firewall mit Tiefenprüfung irgendwo zwischen Client und Server, die die Verbindung blockiert, wenn sie einen TLS-Handshake erkennt und dieses Protokoll nicht zulässig ist. Dies führt dazu, dass keine Daten vom Server gelesen werden („… hat 0 Bytes gelesen“) und somit auch kein Zertifikat oder ein anderer serverseitiger Teil des TLS-Handshakes.

verwandte Informationen