Configuration Postfix & notation Cryptcheck

Bonjour à tous,
Nous sommes confrontés a un petit problème de configuration de notre serveur mail (mail.allella.io) puisque cryptcheck nous donne la note de G ! Oui, c’est moche ! Visiblement, c’est au niveau des supports des versions de TLS que ça fuche. Savez-vous sur quels critères se base le check Quelqu’un pourrait-il nous aiguiller ? Dans notre config, nous avons ajouté :

# Disable older ciphers
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1
smtp_tls_mandatory_protocols  = !SSLv2,!SSLv3,!TLSv1
smtpd_tls_protocols           = !SSLv2,!SSLv3,!TLSv1
smtp_tls_protocols            = !SSLv2,!SSLv3,!TLSv1

Notre note ne grimpe pas pour autant ! Merci de votre aide.

Bonsoir,

Pour ma part j’ai ceci dans main.conf :

smtp_tls_protocols=!SSLv2,!SSLv3
smtp_tls_mandatory_protocols=!SSLv2,!SSLv3
smtpd_tls_protocols=!SSLv2,!SSLv3
smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3

Mais j’ai rajouté ceci dans master.conf :

submission inet n - n - - smtpd
-o smtpd_enforce_tls=yes
-o smtpd_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
-o smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1

De cette manière j’autorise les connexions entre serveurs smtp à partir de tlsv1.0, mais les connexions clientes (envoi de mail) ne se font qu’à partir de tlsv1.2.

Pourquoi tlsv1.0 ? Car certains smtp comme orange ne savent toujours pas transporter sur un protocole plus récent.

En espérant pouvoir t’aider.

Bonne soirée !

Hello Thomas,

Merci pour le retour.
Effectivement j’avais noté aussi ce comportement avec certains fournisseurs de messagerie qui ne savent que parler avec un vieux protocole de sécurité.

J’ai ajouté les configurations que tu as proposé mais ça n’a pas eu d’incidence sur la note globale dans cryptcheck :frowning:
https://cryptcheck.fr/smtp/allella.fr

Le truc c’est que j’ai du mal à comprendre le tableau et savoir ce qui est détecté comme mauvais et doit être corrigé.

Merci,
Julien

Mon serveur mail a une note F, peut être parce qu’on restreint les ciphers: https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/blob/7d2020cb362aa4c16fad9d1151820a21a26bd5fe/mail-server/postfix.nix#L217

Je suis bien curieux de savoir quelle note peut-on avoir tout en ayant un serveur SMTP fonctionnel (gmail a aussi F)…

Il y a dut y avoir une mise a jour de cryptcheck parce que je suis passé de B a F sans changer la configuration.

Le problème c’est que si on fait une bonne configuration pour le tls on risque 'avoir pas mail de serveur mail qui vont transmettre en clair car ils ne sont pas compatibles avec les ciphers sécurisés. Savoir quoi faire comme configuration pour le mail est donc assez compliqué.

je te conseil quand même d’exclure les ciphers null et md5:
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5

Ça ne fera pas monter ta note mais je ,e bois pas l’interet des les autoriser.

ATTENTION IL Y A UNE GROSSE ERREUR DANS CE MESSAGE LISEZ LA NOTE A LA FIN

Dans un autre message parce que je me suis amusé a faire quelques tests sur mon serveur de mail: cette configuration me donne un A+:

smtpd_tls_mandatory_ciphers = high
smtpd_tls_security_level = encrypt
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5, RSA, SHA1, DHE
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1
smtpd_tls_auth_only = yes

Pour l’obtenir j’ai enlevé tout ce qui était en orange dans le résultat de cryptcheck. Il y a des choses avec lesquels je ne suis pas d’accord, par exemple a ma connaissance RSA n’est pas cassé (mais ils faut faire attention a la longueur des clefs) Pour Diffie-Hellman il me semble que c’est pareil (mais la je suis moins sur de moi).

SHA1 est connu comme était faible depuis un certain temps mais avoir des collisions est compliqué dans certain cas il me semble (mais ce n’est pas délirant de le virer). MD5 a des collisions donc c’est une passoire. Il y a des failles dans TLSv1.

Sauf que… Orange ne supporte que du Diffie-Hellman/RSA avec du sha1/md5 sur TLSv1 donc tu communiquerait avec ces clients en clair (ce qui est pire que de communiquer avec une crypto trouée a mon avis).

En ce qui me concerne pour ma candidature chez les chatons je vais rester sur un F sur cryptcheck car ça me semble être un moindre mal (mais si orange pouvait se bouger et mettre a jours ses serveurs ça serait sympa)

voila ma configuration:

smtpd_tls_mandatory_ciphers = high
smtpd_tls_security_level = encrypt
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_auth_only = yes

NOTE Contrairement a ce que je disais dans ce message les configurations proposées bloque les communications en claire. Pour la configuration équivalente a la seconde pour permetre le fallback si aucun protocol/algo commun n’est trouvé serait celle-ci:

smtpd_tls_ciphers = high
smtpd_tls_security_level = may
smtpd_tls_exclude_ciphers = aNULL, MD5
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_auth_only = yes

La documentation de postfix décourage fortement de mettre « smtpd_tls_security_level = encrypt » et invite a lui donner la valeur « may » a la place. notez que les clefs pour configurer les algo avec le niveau may ne sont pas les mêmes que pour le niveau encrypt

1 Like

petite correction sur la configuration proposé. Merci a @immae de m’avoir fait remarquer mon erreur sur la candidature de katzei.

J’essayerai de maintenir cette configuration si je découvre d’autres erreurs sur la prod de Katzei.

Je souhaitais profiter d’un peu de temps pour continuer l’audit des candidatures chatons 11. Mais je me retrouve un peu perplexe quand à l’utilisation de service en ligne basé sur Cryptcheck. La lecture de ce fil y contribue également.

À la vérité, j’ai eu souvent recours à testssl.sh à titre professionnel. Mais n’exerçant plus dans ce domaine, je me rends compte que je ne sais plus vraiment correctement interpréter le rapport généré par cet outil pourtant reconnu fiable.

Cette discussion a peut-être déjà eu lieu pour des portées précédentes. Je ne sais pas retrouver cela (et j’ai un peu la flemme…)

Des avis sur la question? Merci de m’éclairer :smiley:

Je suis pas persuadé du bien fondé de faire un test TLS pour un serveur de mail. En général on a tendance à ‹ abaisser › son niveau de support pour ne pas devenir inatteignable pour les vieux serveurs mails qui tournent encore en TLSv1.0 ici et là…
Autant pour de l’HTTPS je me pose pas la question, mais SMTPS, c’est limite injuste (voire contre-productif) pour l’admin qui essaie de trouver le bon équilibre.

Tout à fait d’accord avec @popi. A mon avis, il faudrait s’assurer que le serveur mail accepte la version de TLS la plus récentes (1.3) et est compatible avec des suites de cipher récentes et réputées sécurisées.
Mais ne pas s’offusquer si une connexion en TLS 1.0 est possible.

Peut-être aussi vérifier que le serveur n’accepte pas de cipher basés sur des algos vulnérables comme RC4 ou MD5.

1 Like

Pour information, il existe deux instances de CryptCheck et elles notent différemment (car la plus utilisée, cryptcheck.fr, semble être une ancienne version). Celle-ci fonctionne mieux quand il s’agit de tester SMTP : https://tls.imirhil.fr/

Il est tout à fait possible d’obtenir un A+ sur CryptCheck avec un serveur SMTP qui accepte TLSv1.0, à condition d’utiliser la bonne instance : https://tls.imirhil.fr/smtp/mail.42l.fr

Voilà notre configuration :

smtpd_tls_security_level = may
smtp_tls_security_level = may
tls_preempt_cipherlist = yes
smtpd_tls_mandatory_ciphers = high
tls_ssl_options = NO_COMPRESSION, NO_RENEGOTIATION
smtpd_tls_exclude_ciphers = aNULL, LOW, EXP, MEDIUM, ADH, AECDH, MD5, DSS, ECDSA, CAMELLIA128, 3DES, CAMELLIA256, RSA+AES, eNULL
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3
smtpd_tls_protocols = !SSLv2,!SSLv3
smtp_tls_protocols = !SSLv2,!SSLv3
tls_high_cipherlist = ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

Voilà une configuration légèrement plus robuste que nous n’utilisons plus car l’un des logiciels que nous utilisons est incompatible, mais qui reste raisonnablement utilisable :

smtpd_tls_security_level = may
smtp_tls_security_level = may
tls_preempt_cipherlist = yes
smtpd_tls_mandatory_ciphers = high
tls_ssl_options = NO_COMPRESSION, NO_RENEGOTIATION
smtpd_tls_exclude_ciphers = aNULL, LOW, EXP, MEDIUM, ADH, AECDH, MD5, DSS, ECDSA, CAMELLIA128, 3DES, CAMELLIA256, RSA+AES, eNULL
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtp_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
tls_high_cipherlist = ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256/

De notre (petite) expérience, les deux configurations passent bien en production.

2 Likes

Effectivement, les deux sites donnent des résultats quasiment opposés (A+ d’un côté, E de l’autre).
https://tls.imirhil.fr/ wins :trophy: