Gmail signale les e-mails Dovecot comme non sécurisés

10

Je pensais avoir réussi à sécuriser mon serveur de messagerie Postfix / Dovecot. J'ai un certificat signé de LetsEncrypt, valable pour mon domaine.

L'envoi et la réception fonctionnent correctement, mais depuis que Gmail a commencé à signaler les e-mails non sécurisés, tous les messages envoyés depuis mon serveur sont signalés comme non cryptés.

Les utilisateurs de Gmail voient "Ce message n'a pas été chiffré", comme ceci:

entrez la description de l'image ici

Dans Postfix main.cf, entre autres, j'ai:

# SASL, for SMTP authentication
smtpd_sasl_type = dovecot
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_path = private/auth

# TLS, for encryption
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtpd_tls_CAfile = /etc/letsencrypt/live/mydomain.com/chain.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mydomain.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mydomain.com/privkey.pem
tls_random_source = dev:/dev/urandom
smtpd_client_new_tls_session_rate_limit = 10
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_exclude_ciphers =
    EXP
    EDH-RSA-DES-CBC-SHA
    ADH-DES-CBC-SHA
    DES-CBC-SHA
    SEED-SHA
smtpd_tls_dh512_param_file = ${config_directory}/certs/dh_512.pem
smtpd_tls_dh1024_param_file = ${config_directory}/certs/dh_1024.pem
disable_vrfy_command = yes
smtpd_helo_required = yes
smtpd_delay_reject = yes

Dans Postfix master.cf, entre autres, j'ai:

smtp      inet  n       -       -       -       -       smtpd
  -o smtpd_enforce_tls=yes
  -o smtpd_use_tls=yes
  -o smtpd_tls_security_level=encrypt

submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o broken_sasl_auth_clients=yes

Chez Dovecot 10-ssl.conf, entre autres, j'ai:

ssl = required
ssl_ca = </etc/letsencrypt/live/mydomain.com/chain.pem
ssl_cert = </etc/letsencrypt/live/mydomain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mydomain.com/privkey.pem

Gmail signale-t-il à tort les certificats LetsEncrypt parce qu'il ne leur fait pas confiance, ou mon e-mail est-il réellement envoyé non chiffré?

gavanon
la source
1
Veuillez poster le Postfix main.cf. Vous n'avez pas inclus tout ce qui est pertinent dans vos extraits.
Michael Hampton
@MichaelHampton - bien sûr. J'ai ajouté tout le contenu personnalisé de mon main.cf. Il exclut que des choses de base comme smtpd_banner, myhostname, etc.
Gavanon

Réponses:

11

J'ai résolu cela en ajoutant ces deux lignes à Postfix main.cf:

smtp_tls_security_level = may
smtpd_tls_security_level = may

(Je ne l'avais mis qu'à smtpd_tls_security_levelcause d'un article trompeur qui disait que toutes les smtp_valeurs étaient dépréciées en faveur de smtpd_.)

gavanon
la source
7

Votre e-mail est envoyé non crypté. Si vous voulez juste faire de votre mieux, ajoutez ce qui suit à votre main.cf

smtp_tls_security_level = may

Pour appliquer le cryptage TLS pour les e-mails envoyés à Google, ajoutez ceci à votre main.cf

# Force TLS for outgoing server connection
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
smtp_tls_CApath = /etc/postfix/rootcas/ 

remplacez / etc / postfix / rootcas / par l'emplacement de vos autorités de certification racine de confiance et dans le fichier / etc / postfix / tls_policy ajoutez

#/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
gmail.com       secure ciphers=high
google.com      secure ciphers=high
googlemail.com  secure ciphers=high

cela fera en sorte que les e-mails envoyés à gmail.com., google.com et googlemail.com soient envoyés cryptés et authentifient le serveur SMTP

Si vous ne souhaitez pas vous authentifier et simplement crypter (cela est nécessaire pour les sites avec de faux certificats), utilisez

gmail.com       encrypt ciphers=high
google.com      encrypt ciphers=high
googlemail.com  encrypt ciphers=high

avant de redémarrer postfix exécuter

postmap /etc/postfix/tls_policy
Jofre
la source
Merci pour cela. Ce que j'essaie vraiment de faire, c'est de forcer TLS dans la mesure du possible vers toutes les destinations, et de revenir en toute sécurité à un cryptage uniquement en dernier recours si la destination ne le prend pas en charge. Est-ce possible sans listes maintenues de domaines spécifiques? Comme un forçage fourre-tout de TLS?
gavanon
Le problème est qu'il existe de nombreux serveurs qui ne prennent pas en charge TLS et d'autres qui le prennent en charge et utilisent des certificats auto-signés ou faux. De plus, comme le STARTLS est envoyé en texte clair, un attaquant actif pourrait le supprimer en transit. Je suis d'accord que garder une table longue séparée est la solution la plus sûre mais pas la plus fiable
Jofre
J'ai aussi quelques problèmes avec certains sites. Voir Postfix «Connexion TLS sécurisée établie» mais «Certificat de serveur non vérifié»
Jofre
Merci - la première partie de votre réponse m'a été utile: smtp_tls_security_level = may. C'était tout ce qui était nécessaire et les autres paramètres spécifiques à Google n'étaient pas nécessaires.
gavanon
5

Tenez compte de la relation client / serveur en ce qui concerne SMTP et les paramètres ont un sens:

2.1. Structure basique

La conception SMTP peut être représentée comme:

              +----------+                +----------+
  +------+    |          |                |          |
  | User |<-->|          |      SMTP      |          |
  +------+    |  Client- |Commands/Replies| Server-  |
  +------+    |   SMTP   |<-------------->|    SMTP  |    +------+
  | File |<-->|          |    and Mail    |          |<-->| File |
  |System|    |          |                |          |    |System|
  +------+    +----------+                +----------+    +------+
               SMTP client                SMTP server

(Src: rfc5321.txt)

Donc:

"smtp_tls_security_level" est destiné au client SMTP de Postfix. Voir: http://www.postfix.org/postconf.5.html#smtp_tls_security_level

"smtp d _tls_security_level" est destiné au serveur SMTP de Postfix Voir: http://www.postfix.org/postconf.5.html#smtpd_tls_security_level

Lorsque postfix transfère du courrier vers gmail, le paramètre smtp_tls_security_level est le paramètre associé.

Lorsque postfix reçoit du courrier via smtp, le paramètre smtp d _tls_security_level est pertinent.

user885983
la source