Probleme mit iOS & iPad OS - SMTP Port 465 und Plesk

httPete

New Member
Hallo,

seit einigen Tagen beschäftige ich mich mit einer Problematik, die iOS und iPad OS betrifft. Hier habe ich Probleme eine Verbindung über den Port 465 für implizites TLS, zu meinem Plesk Server aufzubauen. Es dauert eine halbe Ewigkeit bis bei der Einrichtung von Mailaccounts, die Verbindungsdaten wie Mailserver, Benutzer, Passwort und Port, überprüft wurden und der Account in iOS bzw. iPadOS (Apple Mail) angelegt ist. Diese Problematik konnte ich bisher aber nicht bei: MacOS (Apple Mail und Postbox [Tunderbrid Ableger]), Windows (Postbox), Linux oder Android feststellen.

Aus diesem Grund habe ich die Einstellung: "SMTP-Service auf Port 587 auf allen IP-Adressen aktivieren" aktiviert. Nun weiß ich nicht ob durch diese Einstellung STARTTLS aktiviert/deaktiviert wird. Ich möchte eigentlich verhindern das STARTTLS verwendet werden kann, da dies nach wie vor als fehleranfällig und "unsicher" gegenüber implizitem SSL/TLS gilt!

Da bei anderen Anbietern wie z. B. Google der Port 465 angegeben und problemlos genutzt wird, befürchte ich das der Fehler möglicherweise an der Konfiguration meines Mailsservers liegt? Bei meinem Server handelt es sich um einen vServer, der bei einem großen Hoster liegt. Diesen habe ich ausschließlich über die Plesk-Oberfläche eingerichtet. Konfigurationen wurden nicht manuell (per SSH) verändert.

Ein SSL-Test bei https://www.ssllabs.com/ ergibt aktuell ein A. Es sind soweit alles Sicherheitsmechanismen in Plesk aktiviert und nach Dokumentation eingerichtet.

Hat jemand zufällig die gleiche Erfahrung/Probleme und hierzu eine Lösung?
 
Probleme mit dem Zertifikat bei den iOS-Clients, kann auch sein, dass es in ein Timeout läuft wegen nicht/schlecht erreichbarer CRL/OCSP-Server?
 
Hallo zusammen,

sorry dass ich mich so spät erst zurück melde, aber ich bin leider nicht eher dazu gekommen das Ganze noch mal zu testen. Ich hab jetzt mal das syslog und maillog gecheckt. Ich erhalte dann folgende Meldung:

Feb 3 15:15:50 h2873876 postfix/smtpd[6780]: connect from [80.187.102.187]
Feb 3 15:18:16 h2873876 postfix/smtpd[6780]: SSL_accept error from [80.187.102.187]: lost connection
Feb 3 15:18:16 h2873876 postfix/smtpd[6780]: lost connection after CONNECT from [80.187.102.187]
Feb 3 15:18:16 h2873876 postfix/smtpd[6780]: disconnect from [80.187.102.187] commands=0/0

Das ist jetzt mein aktueller Stand. Es scheint aber möglicherweise wirklich ein Problem mit dem Zertifikat zu sein oder? Was mich halt nur extrem wundert, auf MacOS klappt es Problemlos.
 
Kann es sein, dass du ein Let's Encrypt Zertifikat nutzt und die Root CA-Zertifikate auf deinen iOS-Clients veraltet sind?




Schraub mal für Postfix den debug level für SSL hoch in /etc/postfix/main.cf.


smtpd_tls_loglevel = 3
# oder umn STARTTLS zu testen
#smtpd_tls_loglevel = 4


Und dann einmal senden
und in der Shell suchen lassen mit
grep "postfix/smtpd" /var/log/maillog

Dann mal hier die ausage posten als Code so:
[CODE]Hier Code rein [/CODE]

Später die Zeile mit dem loglevel in der Postfix-Konfig auskommentieren, sonst wird das maillog zu groß im Produktivbetrieb.

Mal sehen ob das jemand hier interpretieren kann, ich bin ziemlich raus au dem Debuggen von OpenSSL.
 
Last edited:
@GwenDragon vielen Dank für deine Antwort! Ich werde das auf jeden fall heute im Laufe des Tages mal testen! Ja, du hast Recht, ich nutze Let's Encrypt Zertifikate auf meinem Server für die Domains (ca. 30 Stk.) die drauf liegen. Das Problem tritt auch nur bei iOS und iPadOS auf. Das berichten mir diverse Kunden und Familienmitglieder. Ich selbst kann es natürlich ebenfalls bestätigen. Zusätzlich habe ich bereits eine Anfrage diesbezüglich in der Apple Community gestellt, aber leider bisher keine Antwort erhalten, was mir das Gefühl gibt, dass es doch eventuell ein individuelleres Problem mit meinem Mailsserver sein könnte?!

Bevor ich zu meinem jetzigen Hostinganbieter gewechselt bin, hatte ich ebenfalls einen vServer mit Plesk (auch Obsidian) laufen und dort gab es die Probleme nicht. Das ist jetzt aber bereits ein bis eineinhalb Jahr her und seit dem gab es ja div. Veränderungen (Updates iOS, iPadOS, Plesk, Ubuntu usw.)...


Ich habe das Ganze jetzt mal getestet. Wirklich mehr geht nun daraus aber auch nicht hervor. Das umstellen in iOS (Mailclient) von Port 587 auf 465 hat wieder sehr lange gedauert, bis es dann akzeptiert wurde. Die Verbindung wurde dann einmal abgebrochen bis nach einiger Zeit im Logfile angezeigt wurde, das die Verbindung aufgebaut werden konnte. Ich habe das Szenario dann einmal auf dem Server von einem Bekannten getestet, der noch bei dem Anbieter liegt wo ich vorher war. Hier besteht ebenfalls diese Problematik.

Anbei das Log (etwas eingekürzt):
Bash:
Feb  4 08:16:21 h2873876 postfix/smtpd[29469]: connect from p5b31ceac.dip0.t-ipconnect.de[91.49.206.172]
Feb  4 08:16:21 h2873876 postfix/smtpd[29469]: setting up TLS connection from p5b31ceac.dip0.t-ipconnect.de[91.49.206.172]
Feb  4 08:16:21 h2873876 postfix/smtpd[29469]: p5b31ceac.dip0.t-ipconnect.de[91.49.206.172]: TLS cipher list
Feb  4 08:16:21 h2873876 postfix/smtpd[29469]: SSL_accept:before SSL initialization
Feb  4 08:16:21 h2873876 postfix/smtpd[29469]: read from 56137932B230 [56137931A243] (5 bytes => 0 (0x0))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: read from 56137932B230 [56137931A243] (5 bytes => 0 (0x0))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:error in before SSL initialization
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept error from p5b31ceac.dip0.t-ipconnect.de[91.49.206.172]: lost connection
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: lost connection after CONNECT from p5b31ceac.dip0.t-ipconnect.de[91.49.206.172]
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: disconnect from p5b31ceac.dip0.t-ipconnect.de[91.49.206.172] commands=0/0
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: connect from p5b31ceac.dip0.t-ipconnect.de[91.49.206.172]
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: setting up TLS connection from p5b31ceac.dip0.t-ipconnect.de[91.49.206.172]
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: p5b31ceac.dip0.t-ipconnect.de[91.49.206.172]: TLS cipher list
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:before SSL initialization
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: read from 561379312200 [56137931A243] (5 bytes => 5 (0x5))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: 0000 16 03 01 02                                      ....
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: 0004 - <SPACES/NULLS>
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: read from 561379312200 [56137931A248] (512 bytes => 512 (0x200))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: 013f - <SPACES/NULLS>
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:before SSL initialization
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: p5b31ceac.dip0.t-ipconnect.de[91.49.206.172]: looking up session A2844015914F3F27ED11A7B2E95401A7D61EE0F8228610372DF8961D5BBBBF64&s=smtps&l=269488143 in smtpd cache
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS read client hello
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS write server hello
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: write to 561379312200 [5613792C6B00] (4096 bytes => 4096 (0x1000))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS write certificate
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS write key exchange
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: write to 561379312200 [5613792C6B00] (378 bytes => 378 (0x17A))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: 0177 - <SPACES/NULLS>
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS write server done
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: read from 561379312200 [56137931A243] (5 bytes => 0 (0x0))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: read from 561379312200 [56137931A243] (5 bytes => 5 (0x5))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: 0000 16 03 03 00 25                                   ....%
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: read from 561379312200 [56137931A248] (37 bytes => 37 (0x25))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS write server done
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: read from 561379312200 [56137931A243] (5 bytes => 5 (0x5))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: 0000 14 03 03 00 01                                   .....
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: read from 561379312200 [56137931A248] (1 bytes => 1 (0x1))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: 0000 01                                               .
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS read client key exchange
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: read from 561379312200 [56137931A243] (5 bytes => 5 (0x5))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: 0000 16 03 03 00 28                                   ....(
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: read from 561379312200 [56137931A248] (40 bytes => 40 (0x28))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS read change cipher spec
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS read finished
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS write change cipher spec
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: write to 561379312200 [5613792C6B00] (51 bytes => 51 (0x33))
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: SSL_accept:SSLv3/TLS write finished
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: p5b31ceac.dip0.t-ipconnect.de[91.49.206.172]: save session 76E7ABBE822D6E4DE1F6BA3C42EC33E63AFF114C57AFGAH27519F49536EBF188&s=smtps&l=269488143 to smtpd cache
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: Anonymous TLS connection established from p5b31ceac.dip0.t-ipconnect.de[91.49.206.172] to digital-handwerk.de: TLSv1.2 with cipher ... (256/256 bits)
Feb  4 08:21:21 h2873876 postfix/smtpd[29469]: disconnect from p5b31ceac.dip0.t-ipconnect.de[91.49.206.172] ehlo=1 auth=1 quit=1 commands=3
Feb  4 08:21:43 h2873876 postfix/smtpd[29641]: initializing the server-side TLS engine
 
Last edited:
hast du denn in iOS nachgesehen, ob die Root-CA-Zertifikate für Let's Encrypt R3 und ISRG Root X1 und DST Root CA X3 aktuell sind?


Was ist denn in der main.cf drin für TLS?

grep smtpd_tls_ /etc/postfix/main.cf
grep cipher /etc/postfix/main.cf
 
Last edited:
Hey,

da sind folgende Configs drin:
Bash:
smtpd_tls_cert_file = /etc/postfix/postfix.pem
smtpd_tls_key_file = $smtpd_tls_cert_file
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_security_level = may
smtpd_tls_ciphers = medium
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_mandatory_protocols = TLSv1.2
smtpd_tls_protocols = TLSv1.2
#smtpd_tls_loglevel = 3

Bash:
smtpd_tls_ciphers = medium
smtpd_tls_mandatory_ciphers = medium
tls_medium_cipherlist = ## Keine Ahnung ob ich die Werte posten sollte. 
tls_preempt_cipherlist = yes
 
Stellt sich die Frage, ob auf iOS da Apple Mail rumspinnt, bestimmet Chiffren oder gar kein TLS 1.2 kann.
Dummerweise hab ich kein iOS + Apple Mail zum prüfen. Deswegen stocher ich nun hier um.
Es ist wohl eher eine Frage für ein Apple-Forum wie du den Mailcleint von iIOS debuggen kannst.

Ein SSL-Test bei https://www.ssllabs.com/ ergibt aktuell ein A
Und du hast auch weiter unten bei den Ergebnissen
- Handshake Simulation
- # Not simulated clients (Protocol mismatch)
nachgesehen, bei welchen OS/Clients es hakt?

Ich teste übrigens sowas mit dem Perl-Shellprogramm analyze-ssl .
Das zeigt mir alle Protokolle und Chiffren eines Servers.
Quelle: https://noxxi.de/howto/ssl-debugging.html

Kannst du mal die Zertifikatskette testen mit openSSL
openssl s_client -connect deinserver.de:465

Beispielsweise ist die funktionierende so:
Code:
Certificate chain
 0 s:CN = dein.mailserver.de
   i:C = US, O = Let's Encrypt, CN = R3
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
 2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   i:O = Digital Signature Trust Co., CN = DST Root CA X3

Kannst du nicht in iOS prüfen, von wann die Zertifikate sind?
Schau mal, welches Clients überhaupt laufen mit den neuen Lets Encrypt https://letsencrypt.org/docs/certificate-compatibility/
Bei welcher iOS-Version, welchem Client es nicht geht, ist ja nicht bekannt bei dir, oder?

Frage deine Kunden, Bekannten, freunde etc. mit welchem iOS und Programm es nicht klappt.

Also ich muss nun passen wegen des iOS.


Vielleicht Postfix mal auf TLS1.1 TLS 1.2 TLS1.0 und älteren Chiffren testen.

Code:
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_ciphers = medium

tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA
tls_preempt_cipherlist = yes
Generietr werden kann sowas auch auf https://ssl-config.mozilla.org/#server=postfix&version=3.4.8&config=old&openssl=1.1.1k&guideline=5.6

Kannst dich dann ja vortasten mit der Postfix-Konfig bis du eine Konfiguration findest, die deinen Sicherheitsbedürfnissen bezüglich SSL/TLS und denen der zugreifenden Mail-Clients entspricht.
 
Last edited:
Hi, erst mal sorry dass es wieder etwas länger gedauert hat, aber die letzten Tage waren etwas stressig.

Und du hast auch weiter unten bei den Ergebnissen
- Handshake Simulation
- # Not simulated clients (Protocol mismatch)
nachgesehen, bei welchen OS/Clients es hakt?

Ich habe den Test jetzt noch mal durchgeführt und folgende Dinge sind mir dabei aufgefallen. Das DST Root CA X3 ist nicht aktuell. Das hattest du ja schon angemerkt, was ich wohl übersehen habe. Ich weiß gerade nur noch nicht was ich genau machen muss. Darüber werde ich mich jetzt mal informieren. Ich denke mal, das könnte mitunter das Problem sein. Laut folgendem Support Artikel ist aber bei Plesk mit Linux-Servern nichts weiter zu machen?!

Wenn ich mir das Zertifikat im Browser ansehe wird mir folgendes angezeigt:

1644404589978.png


1644402221010.png


1644405404932.png
 
Last edited:
Kannst du mal die Zertifikatskette testen mit openSSL

So sieht das ganze bei mir aus:
Code:
CONNECTED(00000005)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = digital-handwerk.de
verify return:1
---
Certificate chain
 0 s:CN = digital-handwerk.de
   i:C = US, O = Let's Encrypt, CN = R3
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
 2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
---

Kannst du nicht in iOS prüfen, von wann die Zertifikate sind?
Dazu finde ich leider nichts. Aber laut der Seite die du verlinkt hast sollte das mit dem Mail Client kein Problem darstellen.

Bei welcher iOS-Version, welchem Client es nicht geht, ist ja nicht bekannt bei dir, oder?
Also da alle in der Familie und zwei Kunden mit denen ich im Kontakt war kann es nur einer der neueren Version der Clients und iOS gewesen sein. Bei mir ist es aktuell iOS 15.2.1 und Mail: kann ich nichts zu finden. Ist aber die aktuellste aus dem App-Store.

Ich merke aber auch langsam das ich da nicht weiter komme, da ich irgendwie gefühlt keinen Anhaltspunkt habe, wo da das Problem liegen soll?! Ich hab einfach mal die Outlook App auf meinem iPhone installiert mit der es direkt geklappt hat... ohne Probleme...
 
Last edited:
Hallo zusammen, ich hole das Thema noch mal hoch, in der Hoffnung das sich noch mal jemand meldet, da ich in dem Problemfall nicht weitergekommen bin...
 
IMHO ist die einfachste und sinnvollste Lösung hier mal einen tcpdump auf Serverseite zu ziehen und den TCP/TLS-Fluss der Verbindungen zwischen IOS und dem Server in Wireshark nach zu vollziehen. Auch wenn der eigentliche Datenverkehr unlesbar bleibt, erkennt man Verbindungsabbrüche und in vielen Fällen den Grund sofern es auf TLS-Ebene hakt.

tcpdump -i any -s 0 -w /tmp/deinedate.pcap host <clientip> port 465
 
Den Traffic mitzuschneiden wäre eine Möglichkeit, dann muss aber httPete hier den Dump reinstellen, denn sowas ist nicht einfach zu analyisieren.
 
Back
Top