• debian bullseye, exim4 und TLS

    From Lars Schimmer@21:1/5 to All on Sat Dec 18 12:30:01 2021
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------19kapJxmCvh7TbsWhUy9Qrdp
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    TW9pbg0KDQpIYWJlIGVpbiBQcm9ibGVtIG1pdCBkZW0gVExTIHZvbiBFeGltNCB1bnRlciBi dWxsc2V5ZS4NCg0KMiBEZWJpYW4gQnVsbHNleWUgc3lzdGVtZSBtaXQgZXhpbTQsIGVpbmVy IGFscyBNYWlsc2VydmVyL1JlbGF5LCBlaW5lciANCmFtIGNsaWVudCwgZGVyIGRlbiAxLiBh bHMgc21hcnRob3N0IGVpbmdldHJnYWVuIGhhdC4NClNlcnZlciBoYXQgWmVydGlmaWthdGUg aW5zdGFsbGllcnQsIGRpZSBhdWNoIGVya2FubnQgd2VyZGVuLg0KDQpDbGllbnQgaXN0IGRl ZmF1bHQgZGViaWFuIHNldHVwLCBrZWluIFplcnRpZmlrYXQsIHNtYXJ0aG9zdCBzZXJ2ZXIg MSANCmVpbmdldHJhZ2VuLg0KDQpTZXJ2ZXIgaXN0IHB1YmxpYyByZWFjaGFibGUsIG51ciB3 ZW5pZyDDhG5kZXJ1bmdlbiB6dXIgU3RhbmRhcmQgQ29uZmlnLCANCnVudGVyIGFuZGVyZW0g TGltaXRzIGFuIFJlY2VpcGllbnRzLCBTaXplLC4uLg0KDQpVbmQgZsO8ciBUTFMgd2ljaHRp ZzogTUFJTl9UTFNfRU5BQkxFID0gdHJ1ZQ0KDQpaZXJ0aWZpa2F0IGhhYmUgaWNoIGVpbiB3 aWxkY2FyZCB2b24gQWxwaGFTU0wgdW5kL29kZXIgZWluIG1pdCBkZW0gDQpkZWJpYW4gZXhp bSBjZXJ0IGdlbiAoYXVzIGRlbiBEb2t1cykgZXJzdGVsbHRlcyBwcm9iaWVydC4NCg0KI1Bv cnRzIHRvIGxpc3RlbiBvbg0KICBkYWVtb25fc210cF9wb3J0cyA9IDI1IDogNDY1DQogIHRs c19vbl9jb25uZWN0X3BvcnRzID0gNDY1DQoNCg0KQXVmIFBvcnQgMjUga2FubiBkZXIgQ2xp ZW50IHNpY2ggdmVyYmluZGVuIHVuZCBzZW5kZXQgTWFpbHMgYWIuDQpBdWYgUG9ydCA0NjUg a29tbXQgZWluIGNvbm5lY3QsIGRhbm4gZWluIFRpbWVvdXQgIiBBbiB1bmV4cGVjdGVkIFRM UyANCnBhY2tldCB3YXMgcmVjZWl2ZWQuIiBhbSBTZXJ2ZXIuDQoNCklDaCB3ZWnDnywgZGFz IGRpZXNlcyBTZXR1cCB2b3IgSmFocmVuIChwcmUtQnVzdGVyKSBtYWwgcHJvYmxlbWxvcyB3 YXIsIA0KYXVjaCBtaXQgVGh1bmRlcmJpcmQuIEFiZXIgc2VpdGRlbSBuZWQgbWVociBnZW51 dHp0LCBqZXR6dCBtdXNzIHdpZWRlci4NCg0KRWluDQogIHN3YWtzIC1hIC10bHMgLXEgQVVU SCAtcyBsb2NhbGhvc3Q6NDY1IC1hdSBVU0VSDQoNCmtvbW10IGF1Y2ggbnVyIGJpcyAiY29u bmVjdGVkIHRvIGxvY2FsaG9zdCIgdW5kIGjDpG5ndCBkYW5uLg0KQXVmIFBvcnQgMjUga29t bXQgZGFubiB3ZWl0ZXIgbWl0DQo8LSAgMjIwIFRMUyBnbyBhaGVhZA0KPT09IFRMUyBzdGFy dGVkIHdpdGggY2lwaGVyIFRMU3YxLjM6VExTX0FFU18yNTZfR0NNX1NIQTM4NDoyNTYNCi4u Lg0KQVVUSCBMT0dJTi4uLg0KDQpEYXMgc2llaHQgZ3V0IGF1cy4NCg0KDQpXaWUga2FubiBp Y2ggZGFzIFRMUyBvbiBDb25uZWN0IGF1ZiBQb3J0IDQ2NSAob2RlciA1ODcsIG9kZXIgb2Rl cikgenVtIA0KZnVua3Rpb25pZXJlbiBiZWtvbW1lbiwgd2llIGthbm4gaWNoIG1laW4gUHJv YmxlbSBndXQgZGVidWdnZW4sIGzDtnNlbj8NCg0KT2RlcjogcmVpY2h0IFNUQVJUVExTIGF1 ZiBQb3J0IDQ2NS81ODcgbmFjaCBkcmF1c3NlbiBvZmZlbiBhdXMgPw0KSMO2dHRlIHNjaG9u IGdlcm5lICJ0bHMgb24gY29ubmVjdCIgYWt0aXYgYXVmIGRlbiBQb3J0cywgZGFtaXQga2Vp biANClBsYWludGV4dCBmdW5rdGlvbmllcnQuDQoNCk9kZXIgd28gaXN0IG1laW4gRGVua2Zl aGxlcj8NCg0KRGFua2UsDQpMYXJzDQo=

    --------------19kapJxmCvh7TbsWhUy9Qrdp--

    -----BEGIN PGP SIGNATURE-----

    wmMEABEIACMWIQR0wxkJRmamY9krY7GZaG4TSpsXIwUCYb3DtgUDAAAAAAAKCRCZaG4TSpsXIwjk AJ9DzvFTY2OVZNHON+SzL9vZ7n9/dwCbBap+1WChc3tkPneB3FwfRO0IPD8=
    =12CW
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Haber@21:1/5 to l.schimmer@cgv.tugraz.at on Sat Dec 18 13:00:01 2021
    On Sat, 18 Dec 2021 12:19:18 +0100, Lars Schimmer
    <l.schimmer@cgv.tugraz.at> wrote:
    Wie kann ich das TLS on Connect auf Port 465 (oder 587, oder oder) zum >funktionieren bekommen, wie kann ich mein Problem gut debuggen, lösen?

    Auf Port 465 wird _direkt_ TLS gesprochen, auf Port 587 wird zuerst unverschlüsselt EHLO gesagt und dann mit STARTTLS auf TLS gewechselt.
    Das benötigt auf beiden Seiten unterschiedliche Konfiguration über die Portnummer hinaus. Die Port-465-Variante wird von exim nur so la la unterstützt, ich versuche sie zu meiden.

    Oder: reicht STARTTLS auf Port 465/587 nach draussen offen aus ?

    Auf 465 ist STARTTLS falsch.

    Hötte schon gerne "tls on connect" aktiv auf den Ports, damit kein
    Plaintext funktioniert.

    Es ist Stand der Technik, einfach vor STARTTLS kein SMTP AUTH
    anzubieten, damit halbwegs korrekt implementierte Clients¹ nicht
    versuchen, sich auf der unverschlüsselten Verbindung zu
    authentifizieren. Ich gehe davon aus dass die exim-Pakete das auch so
    umsetzen.

    ¹ es soll ja clients geben, die so kaputt sind, dass sie einfach
    stumpf mit AUTH anfangen auch wenn der Server gar nicht angesagt hat
    dass er AUTH kann, aber denen ist nicht zu helfen.

    Grüße
    Marc
    --
    -------------------------------------- !! No courtesy copies, please !! ----- Marc Haber | " Questions are the | Mailadresse im Header Mannheim, Germany | Beginning of Wisdom " |
    Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From debian-mailing-lists@thomas.freit.a@21:1/5 to Lars Schimmer on Sat Dec 18 18:20:01 2021
    Hi Lars,

    On 18.12.21 12:19, Lars Schimmer wrote:
    Client ist default debian setup, kein Zertifikat, smarthost server 1 eingetragen.

    Server ist public reachable, nur wenig Änderungen zur Standard Config, unter anderem Limits an Receipients, Size,...

    Und für TLS wichtig: MAIN_TLS_ENABLE = true

    Zertifikat habe ich ein wildcard von AlphaSSL und/oder ein mit dem debian exim cert gen (aus den Dokus) erstelltes probiert.

    #Ports to listen on
     daemon_smtp_ports = 25 : 465
     tls_on_connect_ports = 465

    Damit sollte der Exim-Client mMn. über Port 25 seine Mails am Smarthost abgeben, typischerweise mit opportunistic TLS, also
    verschlüsselt wenn es passt (es sei denn Du erzwingst TLS per "tls_try_verify_hosts" (oder entsprechendem Macro).

    Auf dem Server kanst Du die TLS-Verbindungseigenschaften mittels "MAIN_LOG_SELECTOR = +smtp_protocol_error +smtp_syntax_error +tls_certificate_verified +tls_peerdn +tls_cipher +tls_sni" loggen,
    das hilft vielleicht schon einmal, für etwas Überblick.

    Auf Port 25 kann der Client sich verbinden und sendet Mails ab.
    Auf Port 465 kommt ein connect, dann ein Timeout " An unexpected TLS packet was received." am Server.

    Von welchem Client ist mir an dieser Stelle nicht klar? Thunderbird?

    ICh weiß, das dieses Setup vor Jahren (pre-Buster) mal problemlos war, auch mit Thunderbird. Aber seitdem ned mehr genutzt, jetzt muss wieder.

    Ein
     swaks -a -tls -q AUTH -s localhost:465 -au USER

    Die Option "-tls" erzwingt STARTTLS, du solltest für Tests "-tlsc" oder in lang "--tls-on-connect" nutzen, so würde ich den Fehler auch erwarten.
    Willst Du nur TLS testen geht auch openssl s_client --connect localhost:465 (oder mit korrektem Hostnamen, dass das Zertifikat auch validiert werden
    kann.

    Wie kann ich das TLS on Connect auf Port 465 (oder 587, oder oder) zum funktionieren bekommen, wie kann ich mein Problem gut debuggen, lösen?

    Oder: reicht STARTTLS auf Port 465/587 nach draussen offen aus ?
    Hötte schon gerne "tls on connect" aktiv auf den Ports, damit kein Plaintext funktioniert.

    465 bzw 587 nutzen typischerweise TLS komplett (das heißt kein Upgrade der zunächst unverschlüsselten Verbindung auf TLS), das vermeidet Probleme mit
    STARTTLS (siehe zB. https://www.feistyduck.com/bulletproof-tls-newsletter/issue_80_vulnerabilities_show_fragility_of_starttls).

    Oder wo ist mein Denkfehler?

    Ich würde sagen, deine Konfigurationsausschnitte sind okay (vermutlich sollte es damit funktionieren), deine Tests (die du hier beschrieben hast)
    passen nur nicht dazu. Für eine exaktere Analyse bräuchte man aber Logs und kompletten Testoutput.

    hth,
    Thomas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Haber@21:1/5 to debian-mailing-lists@thomas.freit.a on Sun Dec 19 11:00:02 2021
    On Sat, 18 Dec 2021 18:05:21 +0100,
    debian-mailing-lists@thomas.freit.ag wrote:
    465 bzw 587 nutzen typischerweise TLS komplett (das heißt kein Upgrade der zunächst unverschlüsselten Verbindung auf TLS)

    Das ist für Port 587 nicht richtig.

    Grüße
    Marc
    --
    -------------------------------------- !! No courtesy copies, please !! ----- Marc Haber | " Questions are the | Mailadresse im Header Mannheim, Germany | Beginning of Wisdom " |
    Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From kehrer@21:1/5 to Marc Haber on Sun Dec 19 12:00:01 2021
    On Sun, 19 Dec 2021 10:57:41 +0100
    Marc Haber <mh+debian-user-german@zugschlus.de> wrote:

    On Sat, 18 Dec 2021 18:05:21 +0100,
    debian-mailing-lists@thomas.freit.ag wrote:
    465 bzw 587 nutzen typischerweise TLS komplett (das heißt kein
    Upgrade der zunächst unverschlüsselten Verbindung auf TLS)

    Das ist für Port 587 nicht richtig.


    genau,
    was auch wichtig ist, weil ich clients habe die port 465 nicht ohne
    starttls benutzen, fie benutzen port 587.
    und andersrum haben clients probleme haben die korrekt fuer port 465 konfiguriert sind und auf port 465 mit statttls treffen.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Haber@21:1/5 to kehrer@mad-hatters-teatime.teanet.o on Tue Dec 21 07:40:01 2021
    On Sun, 19 Dec 2021 11:53:08 +0100, kehrer <kehrer@mad-hatters-teatime.teanet.org> wrote:
    On Sun, 19 Dec 2021 10:57:41 +0100
    Marc Haber <mh+debian-user-german@zugschlus.de> wrote:
    On Sat, 18 Dec 2021 18:05:21 +0100,
    debian-mailing-lists@thomas.freit.ag wrote:
    465 bzw 587 nutzen typischerweise TLS komplett (das heißt kein
    Upgrade der zunächst unverschlüsselten Verbindung auf TLS)

    Das ist für Port 587 nicht richtig.

    genau,
    was auch wichtig ist, weil ich clients habe die port 465 nicht ohne
    starttls benutzen, fie benutzen port 587.
    und andersrum haben clients probleme haben die korrekt fuer port 465 >konfiguriert sind und auf port 465 mit statttls treffen.

    Wenn es nur einzelne Clients sind, lass den Benutzer im Router gucken,
    ob nicht irgendwo "Nur sichere Ports benutzen" oder irgendwelche
    anderen Sicherheitsmisfeatures gesetzt sind. Fritzboxen sind
    berüchtigt dafür, dass wohlmeinende Besitzer ("gut gemeint ist das
    Gegenteil von gut gemacht") diesen Haken setzen und denken sie hätten
    was gutes getan, während manche Speedport-Router der Telekom dieses
    Feature sogar im Default aktiv haben (möge der Blitz sie treffen,
    alle!), wobei hier perverserweise dazukommt, dass die Mailserver der
    großen Provider von der Sperre ausgenommen sind.

    Das schickt den Benutzer dann direkt auf den Fehlschluss, dass es am
    Server des kleinen Mailproviders liegen muss, denn Web.de und Google
    gehen ja.

    Grüße
    Marc
    --
    -------------------------------------- !! No courtesy copies, please !! ----- Marc Haber | " Questions are the | Mailadresse im Header Mannheim, Germany | Beginning of Wisdom " |
    Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Heiko Schlittermann@21:1/5 to All on Tue Dec 21 08:30:01 2021
    debian-mailing-lists@thomas.freit.ag <debian-mailing-lists@thomas.freit.ag> (Sa 18 Dez 2021 18:05:21 CET):
    Hi Lars,

    On 18.12.21 12:19, Lars Schimmer wrote:
    Client ist default debian setup, kein Zertifikat, smarthost server 1 eingetragen.

    Server ist public reachable, nur wenig Änderungen zur Standard Config, unter anderem Limits an Receipients, Size,...

    Und für TLS wichtig: MAIN_TLS_ENABLE = true

    Zertifikat habe ich ein wildcard von AlphaSSL und/oder ein mit dem debian exim cert gen (aus den Dokus) erstelltes probiert.

    #Ports to listen on
     daemon_smtp_ports = 25 : 465
     tls_on_connect_ports = 465

    Damit sollte der Exim-Client mMn. über Port 25 seine Mails am Smarthost abgeben, typischerweise mit opportunistic TLS, also
    verschlüsselt wenn es passt (es sei denn Du erzwingst TLS per "tls_try_verify_hosts" (oder entsprechendem Macro).

    tls_try_verify_hosts *erzwingt* kein TLS. Es erzwingt nicht mal eine Überprüfung des Zertifikats (wie ja auch der Name der Option schon
    andeutet.)

    Wenn Du vom Server sprichst:

    Überhaupt möchtest Du für Port 25 und 587 erst in einer späteren Phase prüfen,
    ob TLS verwendet wird. Nachdem Du es natürlich am Anfang angeboten hast.

    tls_advertise_hosts = *

    ist mittlerweise Default, Exim zeigt jedem Client seine Bereitschaft zu STARTTLS.

    tls_on_connect_ports = ….

    wäre wichtig für die Submission-Clients, die sich am TLS-before-SMTP
    (oder wie Options sagt „tls-on-connect“ versuchen.)

    Beim Client möchstest Du TLS erzwingen mit der Transport-Option

    hosts_require_tls = …

    *Möglicherweise* möchtest Du noch etwas das Zertifikat der Gegenseite prüfen, dann wäre das mit dem tls_verify_hosts oder tls_try_verify_hosts
    die Option, ja. *ABER*, die überprüft nur, ob das Zertifikat gültig ist
    (von einer bekannten CA ausgestellt wurde, nicht abgelaufen, …), aber *nicht*, ob es etwas mit dem Host auf der Gegenseite zu tun hat!

    Dafür müsstest Du festlegen, *wie* die „Policy“ für die Prüfung sein soll, also muss das Zertifikat zum Hostnamen passen, muss es von einer *bestimmten* CA ausgestellt worden sein, muss es zu einem TLSA-Datensatz passen, etcpp.

    Willst Du nur TLS testen geht auch openssl s_client --connect localhost:465 (oder mit korrektem Hostnamen, dass das Zertifikat auch validiert werden kann.

    Und für Port 25 oder 587 (oder sonst einen Port, wo kein tls-on-connect gemacht wird:

    openssl s_client -connect <host>:<port> -starttls smtp

    (Ja, auch ein Minus genügt.)

    465 bzw 587 nutzen typischerweise TLS komplett (das heißt kein Upgrade der zunächst unverschlüsselten Verbindung auf TLS), das vermeidet Probleme mit
    STARTTLS (siehe zB. https://www.feistyduck.com/bulletproof-tls-newsletter/issue_80_vulnerabilities_show_fragility_of_starttls).

    Das ist nicht ganz richtig. 465 nutzt typischerweise tls-on-connect und
    ist damit nicht anfällig für diese Downgrade-Angriffe. 587 nutzt
    STARTTLS.

    Best regards from Dresden/Germany
    Viele Grüße aus Dresden
    Heiko Schlittermann
    --
    SCHLITTERMANN.de ---------------------------- internet & unix support -
    Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
    gnupg encrypted messages are welcome --------------- key ID: F69376CE -

    -----BEGIN PGP SIGNATURE-----

    iQEzBAABCgAdFiEE0L/WueylaUpvFJ3Or0zGdqa2wUIFAmHBgIwACgkQr0zGdqa2 wUKdoQf+KmQw2qFNQ7jhaHpcWGVuvuH2W+lFl7Kb7r59R5W7WOssVNreCeVkGlo5 VIyjnrABohg+7D/M9fM4CSCkhGas7KdO1VpjHlg1TNSNUEfSLRvF6xI2Xho30Nlz m3bDS2rNijh4P+BsLTWC5YUiKEws+xDaLEGqkkUJm3O7Py6rpWhKatiDQflbC4hR b6TZL18cp/HkEg8zTGfJH27L8QxixgnuO3PELKYcFroHYvd86Z9gO4BDYE4ucOmw psbia6WfsMaRK6vK+VFwQQ3B0nF+JgkkLVrvykk9NDWOFkcBVtMCNxxtiiWXdvXc HROFkHkyhu7A8ZuymbzuQw1AUQVDQA==
    =M1rP
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)