Gmail marca el correo electrónico de Dovecot como inseguro

9

Pensé que había asegurado con éxito mi servidor de correo electrónico Postfix / Dovecot. Tengo un certificado firmado de LetsEncrypt, que es válido para mi dominio.

Enviar y recibir funciona bien, pero desde que Gmail comenzó a marcar correos electrónicos no seguros, todos los correos enviados desde mi servidor se marcan como no cifrados.

Los usuarios de Gmail ven "Este mensaje no fue encriptado", así:

ingrese la descripción de la imagen aquí

En Postfix main.cf, entre otras configuraciones, tengo:

# 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

En Postfix master.cf, entre otras configuraciones, tengo:

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

En Dovecot's 10-ssl.conf, entre otros entornos, tengo:

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 está marcando falsamente los certificados LetsEncrypt porque no confía en ellos, o realmente mi correo electrónico se envía sin cifrar?

Gavanon
fuente
1
Por favor, publique el Postfix main.cf. No ha incluido todo lo relevante en sus fragmentos.
Michael Hampton
@MichaelHampton: claro. He agregado todo el contenido personalizado de mi main.cf. Sólo se excluye cosas básicas como smtpd_banner, myhostname, etc.
Gavanon

Respuestas:

10

Resolví esto agregando ambas líneas a Postfix main.cf:

smtp_tls_security_level = may
smtpd_tls_security_level = may

(Solo lo había establecido smtpd_tls_security_leveldebido a un artículo engañoso que decía que todos los smtp_valores se depreciaron a favor smtpd_).

Gavanon
fuente
6

Su correo electrónico se envía sin cifrar. Si solo quieres intentarlo lo mejor posible, agrega lo siguiente a tu main.cf

smtp_tls_security_level = may

Para aplicar el cifrado TLS para el correo electrónico enviado a Google, agréguelo a su main.cf

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

reemplace / etc / postfix / rootcas / con la ubicación de sus CA raíz confiables y en el archivo / etc / postfix / tls_policy add

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

esto hará que los correos electrónicos enviados a gmail.com., google.com y googlemail.com se envíen encriptados y autentiquen el servidor SMTP

Si no desea autenticarse y simplemente encriptar (esto es necesario para sitios con certificados falsos) use

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

antes de reiniciar postfix ejecutar

postmap /etc/postfix/tls_policy
Jofre
fuente
Gracias por esto. Lo que realmente estoy tratando de hacer es forzar TLS siempre que sea posible a todos los destinos, y volver a sin cifrar de forma segura solo como último recurso si el destino no lo admite. ¿Es esto posible sin listas mantenidas de dominios específicos? ¿Como un forzado general de TLS?
Gavanon
El problema es que hay muchos servidores que no admiten TLS y otros que lo admiten y utilizan certificados autofirmados o falsos. Además, como el STARTLS se envía en texto claro, un atacante activo podría despojarlo en tránsito. Estoy de acuerdo en que mantener una mesa larga separada es la solución más segura pero no la más confiable
Jofre
También tengo algunos problemas con algunos sitios. Ver Postfix "Conexión TLS de confianza establecida" pero "Certificado de servidor no verificado"
Jofre
Gracias - la primera parte de su respuesta fue útil: smtp_tls_security_level = may. Eso era todo lo que se requería, y el resto de las configuraciones específicas de Google no eran necesarias.
Gavanon
5

Considere la relación cliente / servidor con respecto a SMTP y la configuración tiene sentido:

2.1. Estructura basica

El diseño SMTP se puede representar como:

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

(Src: rfc5321.txt)

Así:

"smtp_tls_security_level" es para el cliente SMTP Postfix. Ver: http://www.postfix.org/postconf.5.html#smtp_tls_security_level

"smtp d _tls_security_level" es para el servidor SMTP Postfix Consulte: http://www.postfix.org/postconf.5.html#smtpd_tls_security_level

Cuando postfix está transfiriendo correo a gmail, la configuración smtp_tls_security_level es la configuración asociada.

Cuando postfix recibe correo a través de smtp, la configuración smtp d _tls_security_level es relevante.

usuario885983
fuente