Exim: Enforce server cipher preference

  • Moin,


    hardenize.com war mir schon bekannt, für Mailserver hatte ich es aber nicht auf dem Schirm, dank joas jetzt schon :P

    Mein Exim enforced nicht die server cipher suites. Ich habe aber auch adhoc nicht gefunden wie man das konfiguriert / erreicht ( oder ist es doch einfach tls_require_ciphers? ).


    Hat da jemand was an der Hand?

    Bildschirmfoto 2019-10-09 um 10.51.21.png


    Und wer was will, der soll auch geben, deshalb hier meine main-config:


  • Code
    tls_certificate = /etc/exim.cert
    tls_privatekey = /etc/exim.key
    tls_advertise_hosts = *
    tls_require_ciphers = EECDH+AESGCM:EDH+AESGCM
    openssl_options = +no_sslv2 +no_sslv3

    Vielleicht hilft dir das weiter. Habe Exim nicht in verwendung.

    Matrix: @nan0:nan0.dev - IRC: nan0 on hackint.org - Discord? Nein danke!

  • Vielleicht hilft dir das weiter. Habe Exim nicht in verwendung.

    Danke. Wieder eine nützliche URL für meine Mail-Server-Checks-Liste.


    Ja, da muss ich wohl nochmal in die Abgründe meines Docker-Containers:

    Code
    LOG: PANIC DIE
      Exim configuration error:
      tls_require_ciphers invalid: gnutls_priority_init(EECDH+AESGCM:EDH+AESGCM) failed at offset 0, "EECDH+AE.." failed: The request is invalid.
    search_tidyup called

    Ich erinnere mich daran, dass es einen Grund hatte warum ich es erstmal auskommentierte :D

  • Ich hab jetzt noch alle Cipher mit SHA1 als Hash-Digest rausgenommen, und damit das Problem "umgangen" :D Bekomme jetzt overall eine "grüne" Wertung, weil ich einfach keine Ciphers unterstütze, die nicht als PFS gelten.

    Fehlende Server Preference bleibt.


    Habe im Sourcecode von exim (um Zeile 167 die state-Variablen-Definition: https://github.com/Exim/exim/b…-4.92.3/src/src/tls-gnu.c ) aber auch keine etwaigen Variablen entdeckt, die das geforderte Verhalten aktivieren könnten / darauf hinweisen.


    Basst scho'


    Bildschirmfoto 2019-10-09 um 13.26.07.png

  • Also bei den Mailservern wäre ich mit den SSL Ciphers und Protokollen nicht so streng. Es gibt einfach so viele alte Mailserver da draußen. Lieber eine TLSv1 Verbindung zugelassen als komplett unverschlüsselt kommuniziert (was laut RFC nicht abgeschaltet werden darf!).

  • Also bei den Mailservern wäre ich mit den SSL Ciphers und Protokollen nicht so streng. Es gibt einfach so viele alte Mailserver da draußen. Lieber eine TLSv1 Verbindung zugelassen als komplett unverschlüsselt kommuniziert (was laut RFC nicht abgeschaltet werden darf!).

    RFC, RFschmee

    Hab von meinen wichtigsten Kunden in die letzten Mail-Header geguckt und die wurden alle mit TLS1.2 mit einer Cipher, die auch weiterhin unterstützt wird, zugestellt.

    Für meine Bubble passt's :P


    --- 15 Minuten investiert:


    Ich habe jetzt sogar mal in meinem Logserver geguckt: 2019 wurden an (nicht-Spam) Mails keine per TLS1.1 eingeliefert und per TLS1.0:

    • 2 Testmails von @mxtoolbox.com
    • 1 Testmail von @meinmail.info

    Reale Mails von:

    • @eventbrite.com
    • @deutschepost.de
    • Meiner Betriebshaftpflichtversicherung

    Deutschepost.de will mir eh nur mitteilen, dass sie Dienste einstellen und neue AGB haben.

    Meine Betriebshaftpflicht und Eventbrite sollen mir noch mailen können. Da teste ich jetzt direkt, ob das klappt, indem ich Passwort-Resets durchführe.

  • Der Vollständigkeit halber verlinke ich auch nochmal auf das entsprechende RFC: https://tools.ietf.org/html/rfc2487

    Bin auch erst dank der guten Postfix Dokumentation drauf gekommen.


    Gibt auch einige Fluggesellschaften, die ihre Boardkarten über etwas veraltete Mailserver versendet. Da hatte ich mal in den Ferien unschöne Erfahrungen gemacht, weil ich mal für meine Mailserver die gleichen TLS Sicherheitseinstellungen genutzt hatte wie für meine Webserver. Seit dem bin ich da vorsichtig :)

  • https://ssl-config.mozilla.org/

    Mozilla hat überall den Prefer Server Cipher deaktiviert in den Konfigurationen. ¯\_(ツ)_/¯

    Ja, da gibt es zwei Meinungen; ich verwende momentan ebenfalls diese Einstellung (in der Quelle unten findet sich eine Erklärung – querlesen lohnt sich immer):

    Code: /etc/apache2/sites-enabled/100-default-ssl.conf
    # Let clients choose the cipher suite again: https://mastodon.at/@infosechandbook/102393205262657245
    SSLHonorCipherOrder     off

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE/edit?usp=sharing

  • Moin Hecke29,



    Um die letzten Meter noch zu gehen:


    Ich bin eben eher zufällig in der GnuTLS-Dokumentation unter https://www.gnutls.org/manual/…ode/Priority-Strings.html über "%SERVER_PRECEDENCE" gestolpert: "The ciphersuite will be selected according to server priorities and not the client’s."


    Bei mir funktioniert z. B. folgende Zeile und gibt bei testssl.sh nur noch grüne Lichter (bezüglich der Ciphers zumindest):

    tls_require_ciphers = %SERVER_PRECEDENCE:PFS:!MD5:!VERS-TLS1.0:!VERS-TLS1.1:!VERS-SSL3.0:!AES-256-CBC:!AES-128-CBC


    Ciao

    Thomas