Hattet Ihr denn auch

tls_preempt_cipherlist = yes

gesetzt?

By default, the OpenSSL server selects the client’s most preferred cipher-suite that the server supports. With SSLv3 and later, the server may choose its own most preferred cipher-suite that is supported (offered) by the client. Setting “tls_preempt_cipherlist = yes” enables server cipher-suite preferences. The default OpenSSL behavior applies with “tls_preempt_cipherlist = no”.

Postfix TLS Support

    • DocFraggle

      • Community Hero
      Moolevel 279

    Da wird doch nur Port 443, also die Mailcow GUI getestet. Wenn Du andere Ports testen willst musst Du was anderes nehmen, den echten Qualys Scanner oder so

      DocFraggle tls_preempt_cipherlist = yes hatte ich nicht gesetzt.

      geprüft habe ich mit
      nmap -sV --script ssl-enum-ciphers -p 587 mail.server.de
      und halt eben auch auf smtp
      nmap -sV --script ssl-enum-ciphers -p 25 mail.server.de

      Dann ist mir der unterschied aufgefallen.
      Gleich noch einen Test mit tls_preempt_cipherlist = yes gemacht. Aber gleiches Ergebnis.

      nmap -sV –script ssl-enum-ciphers -p 587 mail.mydomain.abc
      Starting Nmap 7.94 ( https://nmap.org ) at 2024-10-20 10:53 CEST
      Nmap scan report for mail.mydomain.abc (1.2.3.4)
      Host is up (0.016s latency).
      Other addresses for mail.mydomain.abc (not scanned):

      PORT STATE SERVICE VERSION
      587/tcp open smtp Postfix smtpd
      | ssl-enum-ciphers:
      | TLSv1.2:
      | ciphers:
      | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
      | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
      | compressors:
      | NULL
      | cipher preference: server
      | warnings:
      | Key exchange (dh 2048) of lower strength than certificate key
      | Key exchange (ecdh_x25519) of lower strength than certificate key
      | TLSv1.3:
      | ciphers:
      | TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
      | TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
      | TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
      | cipher preference: server
      |_ least strength: A

      Service detection performed. Please report any incorrect results at nmap.org Icon Nmap OS/Service Fingerprint and Correction Submission Page

      .
      Nmap done: 1 IP address (1 host up) scanned in 28.75 seconds

      und

      nmap -sV –script ssl-enum-ciphers -p 25 mail.mydomain.abc
      Starting Nmap 7.94 ( https://nmap.org ) at 2024-10-20 10:54 CEST
      Nmap scan report for mail.mydomain.abc (1.2.3.4)
      Host is up (0.016s latency).
      Other addresses for mail.mydomain.abc (not scanned):

      PORT STATE SERVICE VERSION
      25/tcp open smtp Postfix smtpd
      | ssl-enum-ciphers:
      | TLSv1.2:
      | ciphers:
      | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
      | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (dh 2048) - A
      | TLS_DHE_RSA_WITH_AES_256_CCM_8 (dh 2048) - A
      | TLS_DHE_RSA_WITH_AES_256_CCM (dh 2048) - A
      | TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 (dh 2048) - A
      | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A
      | TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 (dh 2048) - A
      | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
      | TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A
      | TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 4096) - A
      | TLS_RSA_WITH_AES_256_CCM_8 (rsa 4096) - A
      | TLS_RSA_WITH_AES_256_CCM (rsa 4096) - A
      | TLS_RSA_WITH_ARIA_256_GCM_SHA384 (rsa 4096) - A
      | TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 4096) - A
      | TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 (rsa 4096) - A
      | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 4096) - A
      | TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 4096) - A
      | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
      | TLS_DHE_RSA_WITH_AES_128_CCM_8 (dh 2048) - A
      | TLS_DHE_RSA_WITH_AES_128_CCM (dh 2048) - A
      | TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 (dh 2048) - A
      | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A
      | TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 (dh 2048) - A
      | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (ecdh_x25519) - A
      | TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
      | TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A
      | TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 4096) - A
      | TLS_RSA_WITH_AES_128_CCM_8 (rsa 4096) - A
      | TLS_RSA_WITH_AES_128_CCM (rsa 4096) - A
      | TLS_RSA_WITH_ARIA_128_GCM_SHA256 (rsa 4096) - A
      | TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 4096) - A
      | TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 (rsa 4096) - A
      | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 4096) - A
      | TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 4096) - A
      | compressors:
      | NULL
      | cipher preference: server
      | warnings:
      | Key exchange (dh 2048) of lower strength than certificate key
      | Key exchange (ecdh_x25519) of lower strength than certificate key
      | TLSv1.3:
      | ciphers:
      | TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
      | TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
      | TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
      | cipher preference: server
      |_ least strength: A

      Service detection performed. Please report any incorrect results at nmap.org Icon Nmap OS/Service Fingerprint and Correction Submission Page

      .
      Nmap done: 1 IP address (1 host up) scanned in 30.09 seconds

      Möchte aber noch erwähnen das in der Postfix Doku folgendes zu finden ist.
      You are strongly encouraged not to change this setting.

      • TThor

          Moolevel 6

        DocFraggle Oh, sorry! Ich selbst nutze das nicht. In unserem Analysetool verwenden wir Nmap.

        • DocFraggle

          • Community Hero
          Moolevel 279
        • Edited

        Thor So, ich habe das gerade mal mit meiner Testcow getestet. Wenn ich also Deine 3 Zeilen Config mit in die extra.cf vom Postfix Container packe:

        smtpd_tls_protocols = TLSv1.3
        smtpd_tls_mandatory_ciphers = high
        tls_high_cipherlist = TLS_AES_128_GCM_SHA256

        bekomme ich nach Neustart nur noch diese 3 Cipher angezeigt:

        # nmap -sV --script ssl-enum-ciphers -p 25 mail.domain.tld
        
        Starting Nmap 7.93 ( https://nmap.org ) at 2024-10-21 14:19 CEST
        Nmap scan report for mail.domain.tld (XXXXXXXXX)
        Host is up (0.0088s latency).
        rDNS record for REDACTED
        
        PORT     STATE SERVICE VERSION
        25/tcp open  smtp    Postfix smtpd
        | ssl-enum-ciphers: 
        |   TLSv1.3: 
        |     ciphers: 
        |       TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
        |       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
        |       TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
        |     cipher preference: server
        |_  least strength: A

        Warum 3 sagst Du, wenn doch nur einer definiert ist? Das ist eine Eigenart von TLS 1.3, die drei Ciphers sind immer aktiviert und tls_high_cipherlist hat keinerlei Auswirkungen.
        Allerdings sehe ich mit dieser Config nicht die von Dir genannten Weak Cipher, die es mit TLS 1.3 afaik auch gar nicht gibt:

        OpenSSL has implemented support for five TLSv1.3 ciphersuites as follows:

        TLS_AES_256_GCM_SHA384
        TLS_CHACHA20_POLY1305_SHA256
        TLS_AES_128_GCM_SHA256
        TLS_AES_128_CCM_8_SHA256
        TLS_AES_128_CCM_SHA256

        wiki.openssl.org Icon TLS1.3 - OpenSSLWiki

        • Thor replied to this.

          DocFraggle Hi, habe deine Konfiguration übernommen und nmap über PHP eingebunden und alle Ports durchlaufen lassen und dabei folgende Ciphers eingefangen:

          [ciphers] => Array
              (
                  [TLS_DHE_RSA_WITH_AES_128_CBC_SHA256] => Weak
                  [TLS_DHE_RSA_WITH_AES_128_CCM] => Secure
                  [TLS_DHE_RSA_WITH_AES_128_GCM_SHA256] => Secure
                  [TLS_DHE_RSA_WITH_AES_256_CBC_SHA256] => Weak
                  [TLS_DHE_RSA_WITH_AES_256_CCM] => Secure
                  [TLS_DHE_RSA_WITH_AES_256_GCM_SHA384] => Secure
                  [TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256] => Secure
                  [TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384] => Secure
                  [TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256] => Weak
                  [TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256] => Weak
                  [TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256] => Secure
                  [TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA] => Weak
                  [TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256] => Weak
                  [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256] => Secure
                  [TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA] => Weak
                  [TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384] => Weak
                  [TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384] => Secure
                  [TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256] => Secure
                  [TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384] => Secure
                  [TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256] => Weak
                  [TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384] => Weak
                  [TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256] => Secure
                  [TLS_RSA_WITH_AES_128_CBC_SHA256] => Weak
                  [TLS_RSA_WITH_AES_128_CCM] => Weak
                  [TLS_RSA_WITH_AES_128_GCM_SHA256] => Weak
                  [TLS_RSA_WITH_AES_256_CBC_SHA256] => Weak
                  [TLS_RSA_WITH_AES_256_CCM] => Weak
                  [TLS_RSA_WITH_AES_256_GCM_SHA384] => Weak
                  [TLS_RSA_WITH_ARIA_128_GCM_SHA256] => Weak
                  [TLS_RSA_WITH_ARIA_256_GCM_SHA384] => Weak
                  [TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256] => Weak
                  [TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256] => Weak
                  [TLS_AKE_WITH_AES_256_GCM_SHA384] => Secure
                  [TLS_AKE_WITH_CHACHA20_POLY1305_SHA256] => Secure
                  [TLS_AKE_WITH_AES_128_GCM_SHA256] => Secure
              )
          
          [ssl] => Array
              (
                  [0] => TLSv1.2
                  [1] => TLSv1.3
              )

          Ich prüfe diese Ports :
          $x->ports = [25,110,143,465,587,993,995];

          Hier alle der Reihe nach geprüft:

          25:

          Array ( [ciphers] => Array ( ) [ssl] => Array ( ) ) Array ( )

          110:
          {“output”:{“ciphers”:[“TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384”,“TLS_DHE_RSA_WITH_AES_256_GCM_SHA384”,“TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256”,“TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256”,“TLS_DHE_RSA_WITH_AES_256_CCM”,“TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384”,“TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384”,“TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256”,“TLS_DHE_RSA_WITH_AES_128_GCM_SHA256”,“TLS_DHE_RSA_WITH_AES_128_CCM”,“TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256”,“TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256”,“TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384”,“TLS_DHE_RSA_WITH_AES_256_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384”,“TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256”,“TLS_DHE_RSA_WITH_AES_128_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256”,“TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA”,“TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA”,“TLS_RSA_WITH_AES_256_GCM_SHA384”,“TLS_RSA_WITH_AES_256_CCM”,“TLS_RSA_WITH_ARIA_256_GCM_SHA384”,“TLS_RSA_WITH_AES_128_GCM_SHA256”,“TLS_RSA_WITH_AES_128_CCM”,“TLS_RSA_WITH_ARIA_128_GCM_SHA256”,“TLS_RSA_WITH_AES_256_CBC_SHA256”,“TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256”,“TLS_RSA_WITH_AES_128_CBC_SHA256”,“TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256”,“TLS_AKE_WITH_AES_256_GCM_SHA384”,“TLS_AKE_WITH_CHACHA20_POLY1305_SHA256”,“TLS_AKE_WITH_AES_128_GCM_SHA256”],“ssl”:[“TLSv1.2”,“TLSv1.3”]},“time”:1729537159,“laufzeit”:604800,“host”:“mail.domain.de”,“port”:110}

          143:

          {“output”:{“ciphers”:[“TLS_AKE_WITH_AES_256_GCM_SHA384”,“TLS_AKE_WITH_CHACHA20_POLY1305_SHA256”,“TLS_AKE_WITH_AES_128_GCM_SHA256”],“ssl”:[“TLSv1.3”]},“time”:1729537327,“laufzeit”:604800,“host”:“mail.domain.de”,“port”:143}

          465:

          Array ( [ciphers] => Array ( ) [ssl] => Array ( ) ) Array ( )

          587:

          Array ( [ciphers] => Array ( ) [ssl] => Array ( ) ) Array ( )

          993:

          {“output”:{“ciphers”:[“TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384”,“TLS_DHE_RSA_WITH_AES_256_GCM_SHA384”,“TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256”,“TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256”,“TLS_DHE_RSA_WITH_AES_256_CCM”,“TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384”,“TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384”,“TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256”,“TLS_DHE_RSA_WITH_AES_128_GCM_SHA256”,“TLS_DHE_RSA_WITH_AES_128_CCM”,“TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256”,“TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256”,“TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384”,“TLS_DHE_RSA_WITH_AES_256_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384”,“TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256”,“TLS_DHE_RSA_WITH_AES_128_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256”,“TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA”,“TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA”,“TLS_RSA_WITH_AES_256_GCM_SHA384”,“TLS_RSA_WITH_AES_256_CCM”,“TLS_RSA_WITH_ARIA_256_GCM_SHA384”,“TLS_RSA_WITH_AES_128_GCM_SHA256”,“TLS_RSA_WITH_AES_128_CCM”,“TLS_RSA_WITH_ARIA_128_GCM_SHA256”,“TLS_RSA_WITH_AES_256_CBC_SHA256”,“TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256”,“TLS_RSA_WITH_AES_128_CBC_SHA256”,“TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256”,“TLS_AKE_WITH_AES_256_GCM_SHA384”,“TLS_AKE_WITH_CHACHA20_POLY1305_SHA256”,“TLS_AKE_WITH_AES_128_GCM_SHA256”],“ssl”:[“TLSv1.2”,“TLSv1.3”]},“time”:1729537569,“laufzeit”:604800,“host”:“mail.domain.de”,“port”:993}

          995:

          {“output”:{“ciphers”:[“TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384”,“TLS_DHE_RSA_WITH_AES_256_GCM_SHA384”,“TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256”,“TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256”,“TLS_DHE_RSA_WITH_AES_256_CCM”,“TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384”,“TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384”,“TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256”,“TLS_DHE_RSA_WITH_AES_128_GCM_SHA256”,“TLS_DHE_RSA_WITH_AES_128_CCM”,“TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256”,“TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256”,“TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384”,“TLS_DHE_RSA_WITH_AES_256_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384”,“TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256”,“TLS_DHE_RSA_WITH_AES_128_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256”,“TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256”,“TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA”,“TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA”,“TLS_RSA_WITH_AES_256_GCM_SHA384”,“TLS_RSA_WITH_AES_256_CCM”,“TLS_RSA_WITH_ARIA_256_GCM_SHA384”,“TLS_RSA_WITH_AES_128_GCM_SHA256”,“TLS_RSA_WITH_AES_128_CCM”,“TLS_RSA_WITH_ARIA_128_GCM_SHA256”,“TLS_RSA_WITH_AES_256_CBC_SHA256”,“TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256”,“TLS_RSA_WITH_AES_128_CBC_SHA256”,“TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256”,“TLS_AKE_WITH_AES_256_GCM_SHA384”,“TLS_AKE_WITH_CHACHA20_POLY1305_SHA256”,“TLS_AKE_WITH_AES_128_GCM_SHA256”],“ssl”:[“TLSv1.2”,“TLSv1.3”]},“time”:1729537649,“laufzeit”:604800,“host”:“mail.domain.de”,“port”:995}

          Wirkt die extra.cf bug-bedingt nicht auf alle Ports?

          Gruß

          Thor

          • DocFraggle

            • Community Hero
            Moolevel 279

          Die extra.cf für Postfix gilt natürlich nur für Postfix, also 25, 465 und 587
          Die anderen Ports sind von Dovecot, das wäre eine andere Config. Müsste ich erst schauen wie man da was anderes konfiguriert

          OK, denkbar einfach, data/conf/dovecot/extra.conf anlegen mit Inhalt:

          ssl_min_protocol = TLSv1.3

          Voilà:

          PORT     STATE SERVICE VERSION
          143/tcp open  imap    Dovecot imapd
          | ssl-enum-ciphers: 
          |   TLSv1.3: 
          |     ciphers: 
          |       TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
          |       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
          |       TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
          |     cipher preference: server
          |_  least strength: A
          • DerLinkman

            • Forum Staff
            • mailcow team
            Moolevel 19
          • Best Answerset by DerLinkman

          Wir haben uns nun darauf geeinigt, eine Doc Datei zu schreiben, welche für Postfix die Cipher verschärft, da wir nicht ausmalen können welche Auswirkungen ein globales forcieren stärkerer Cipher für bestehende mailcow Systeme hätte…

          So kann jeder sein System noch ein Schritt weiter absichern:
          docs.mailcow.email Icon Ciphers verstärken - mailcow: dockerized Dokumentation

            DerLinkman wollt Ihr auch was für Dovecot dazu schreiben?

            data/conf/dovecot/extra.conf:

            ssl_min_protocol = TLSv1.2
            ssl_cipher_list = 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

            ergibt:

            PORT     STATE SERVICE VERSION
            143/tcp open  imap    Dovecot imapd
            | ssl-enum-ciphers: 
            |   TLSv1.2: 
            |     ciphers: 
            |       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
            |       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
            |       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
            |       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
            |       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
            |       TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (dh 2048) - A
            |     compressors: 
            |       NULL
            |     cipher preference: server
            |     warnings: 
            |       Key exchange (dh 2048) of lower strength than certificate key
            |       Key exchange (ecdh_x25519) of lower strength than certificate key
            |   TLSv1.3: 
            |     ciphers: 
            |       TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
            |       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
            |       TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
            |     cipher preference: server
            |_  least strength: A
            • Thor replied to this.
              • DerLinkman

                • Forum Staff
                • mailcow team
                Moolevel 19

              Könnte man… gerne PR dazu öffnen

                • TThor

                    Moolevel 6

                  DocFraggle Hey, du hast dir ja richtig Mühe gegeben, toll!

                  Ich wollte jetzt mal alle Ports hier mit den Protokollen und Ciphers auflisten aber irgendwie spinnt mein Zenmap.

                  Ist das bei euch auch so, dass es ständig etwas anderes ausspuckt?

                  Versuch 1: nmap -p 25 –script ssl-enum-ciphers mail.domain.de

                  Starting Nmap 7.94 ( https://nmap.org ) at 2024-10-22 17:49 Mitteleuropäische Sommerzeit
                  Nmap scan report for mail.domain.de (123.123.123.123)
                  Host is up (0.025s latency).

                  PORT STATE SERVICE
                  25/tcp open smtp
                  | ssl-enum-ciphers:
                  | TLSv1.2:
                  | ciphers:
                  | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
                  | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (dh 2048) - A
                  | TLS_DHE_RSA_WITH_AES_256_CCM_8 (dh 2048) - A
                  | TLS_DHE_RSA_WITH_AES_256_CCM (dh 2048) - A
                  | TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 (dh 2048) - A
                  | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A
                  | TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 (dh 2048) - A
                  | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
                  | TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A
                  | TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 4096) - A
                  | TLS_RSA_WITH_AES_256_CCM_8 (rsa 4096) - A
                  | TLS_RSA_WITH_AES_256_CCM (rsa 4096) - A
                  | TLS_RSA_WITH_ARIA_256_GCM_SHA384 (rsa 4096) - A
                  | TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 4096) - A
                  | TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 (rsa 4096) - A
                  | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 4096) - A
                  | TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 4096) - A
                  | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
                  | TLS_DHE_RSA_WITH_AES_128_CCM_8 (dh 2048) - A
                  | TLS_DHE_RSA_WITH_AES_128_CCM (dh 2048) - A
                  | TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 (dh 2048) - A
                  | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A
                  | TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 (dh 2048) - A
                  | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (ecdh_x25519) - A
                  | TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
                  | TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A
                  | TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 4096) - A
                  | TLS_RSA_WITH_AES_128_CCM_8 (rsa 4096) - A
                  | TLS_RSA_WITH_AES_128_CCM (rsa 4096) - A
                  | TLS_RSA_WITH_ARIA_128_GCM_SHA256 (rsa 4096) - A
                  | TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 4096) - A
                  | TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 (rsa 4096) - A
                  | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 4096) - A
                  | TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 4096) - A
                  | compressors:
                  | NULL
                  | cipher preference: server
                  | warnings:
                  | Key exchange (dh 2048) of lower strength than certificate key
                  | Key exchange (ecdh_x25519) of lower strength than certificate key
                  | TLSv1.3:
                  | ciphers:
                  | TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
                  | TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
                  | TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
                  | cipher preference: server
                  |_ least strength: A

                  Nmap done: 1 IP address (1 host up) scanned in 31.43 seconds

                  Versuch 2: nmap -p 25 –script ssl-enum-ciphers mail.domain.de

                  Starting Nmap 7.94 ( https://nmap.org ) at 2024-10-22 17:54 Mitteleuropäische Sommerzeit
                  Nmap scan report for mail.domain.de (123.123.123.123)
                  Host is up (0.23s latency).

                  PORT STATE SERVICE
                  25/tcp open smtp
                  | ssl-enum-ciphers:
                  | TLSv1.3:
                  | ciphers:
                  | TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
                  | TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
                  | TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
                  | cipher preference: server
                  |_ least strength: A

                  Nmap done: 1 IP address (1 host up) scanned in 14.25 seconds

                  Beide Aufrufe mit diesem Command:
                  nmap -p 25 –script ssl-enum-ciphers mail.domain.de

                  Postfix (25, 465, 587) nutzt in der Grundkonfiguration kein TLSv1.2. Sollte man das nicht in soweit ändern, dass dies mit allen sicheren Ciphers funktioniert, um niemanden unnötig den Verkehr zu blockieren?

                  Dovecot (110, 143, 993, 995) scheint nun optimal konfiguriert zu sein. Aber dies nur mittels Einstellungen in der extra.conf. Damit die Community davon profitiert, sollte dies als default übernommen werden.

                  Ich hoffe, dass all das trotz der anfänglichen Skepsis für alle einen positiven Mehrwert erbracht hat.

                  Ich habe auch was dazu gelernt und Mailcow ist ein Stück sicherer geworden.

                    • TThor

                        Moolevel 6

                      Habe mit secumail.de meinen Mailserver geprüft:

                      TLS_RSA_WITH_AES_128_CBC_SHA (Schwach)
                      TLS_RSA_WITH_AES_256_CBC_SHA (Schwach)
                      TLS_RSA_WITH_AES_256_GCM_SHA384 (Schwach)
                      TLS_RSA_WITH_AES_128_CBC_SHA256 (Schwach)
                      TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (sehr stark)
                      TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 (Schwach)
                      TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (sehr stark)
                      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (Schwach)
                      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (sehr stark)
                      TLS_RSA_WITH_AES_128_GCM_SHA256 (Schwach)
                      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (Schwach)

                      Wie die darauf kommen, ist mir schleierhaft.

                      • DocFraggle

                        • Community Hero
                        Moolevel 279
                      • Edited

                      Also bei mir fallen mit SecuMail® Icon Mailserveranalyse

                      nur noch die drei hier raus:

                      TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (sehr stark)
                      TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (sehr stark)
                      TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 (Schwach)

                      Das hier ist allerdings FALSCH:

                      TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 (Schwach)

                      Diese Cipher ist definitiv NICHT “Schwach”. Insofern ist die Seite für mich gestorben… Sorry dass ich die überhaupt aufgebracht habe 😃

                      Thor

                      Hab’s jetzt auch mal getestet auf meiner Instanz, und bei mir spuckt nmap folgendes aus:

                      PORT   STATE SERVICE
                      25/tcp open  smtp
                      | ssl-enum-ciphers: 
                      |   TLSv1.2: 
                      |     ciphers: 
                      |       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
                      |       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
                      |       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
                      |     compressors: 
                      |       NULL
                      |     cipher preference: server
                      |     warnings: 
                      |       Key exchange (ecdh_x25519) of lower strength than certificate key
                      |   TLSv1.3: 
                      |     ciphers: 
                      |       TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
                      |       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
                      |       TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
                      |     cipher preference: server
                      |_  least strength: A

                      …und secumail.de sagt:

                      Unterstützte Cipher

                      TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 (Schwach)
                      TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (sehr stark)
                      TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (sehr stark)

                      @DocFraggle Ja keine Ahnung warum secumail.de meint, dass TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 schwach sei. Müsste man wohl die fragen. ;-)

                      Btw. ich habe noch eine andere Cipher Konfig versucht, die ich auf einem anderen Server für Nextcloud mit Apache verwende und mir bei SSL Labs 100% bringt, und mit der läuft deren Test nicht mal durch (bleibt bei 75% ewig stehen). Bin keine Experte, aber das Problem liegt hier wohl eher an deren Test als an den Ciphers oder der Mailcow Config.

                        • TThor

                            Moolevel 6

                          mlcwuser Secumail vertraue ich irgendwie nicht. Ich habe nmap in PHP eingebunden und prüfe damit die Ciphers. Verstehe nicht, warum Secumail andere Ciphers ermittelt als ich selbst. Vielleicht machen die irgendetwas falsch. Glaube auch nicht, dass openSSL etwas anderes als nmap ausgibt. Ich denke, die Entwickler von Mailcow haben das jetzt perfekt gelöst. Oder ist die Konfig noch nicht optimal? Werden da Ciphers vom Client berücksichtigt?