Gmail将Dovecot电子邮件标记为不安全


10

我以为自己已经成功保护了Postfix / Dovecot电子邮件服务器。我有一个来自LetsEncrypt的签名证书,该证书对我的域有效。

发送和接收工作正常,但是由于Gmail开始标记不安全的电子邮件,因此从我的服务器发送的所有邮件都被标记为未加密。

Gmail用户会看到“此邮件未加密”,如下所示:

在此处输入图片说明

在Postfix的main.cf以及其他设置中,我有:

# 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

在Postfix的master.cf以及其他设置中,我有:

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

在Dovecot的10-ssl.conf设置中,我有:

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是因为不信任证书而错误地标记了LetsEncrypt证书,还是真的未加密发送我的电子邮件?


1
请发布Postfix main.cf。您没有在摘要中包含所有相关内容。
迈克尔·汉普顿

@MichaelHampton-肯定的事情。我已经添加了main.cf的所有自定义内容。它只是不包括基本的东西一样smtpd_bannermyhostname等等
加瓦农

Answers:


11

我通过将这两行添加到Postfix中来解决了这个问题main.cf

smtp_tls_security_level = may
smtpd_tls_security_level = may

(我smtpd_tls_security_level之所以这样设定,是因为有一篇误导性的文章说,所有smtp_价值都被贬值,而改为smtpd_。)


7

您的电子邮件未加密发送。如果您只想尽力而为,请将以下内容添加到main.cf中

smtp_tls_security_level = may

要对发送给Google的电子邮件实施TLS加密,请将其添加到您的main.cf

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

将/ etc / postfix / rootcas /替换为受信任的根CA的位置,并在文件/ etc / postfix / tls_policy中添加

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

这将强制发送到gmail.com。,google.com和googlemail.com的电子邮件被加密发送并验证SMTP服务器

如果您不想进行身份验证,而只是进行加密(这对于具有伪造证书的网站是必要的),请使用

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

重新启动后缀执行之前

postmap /etc/postfix/tls_policy

谢谢你 我真正想做的是在可能的情况下将TLS强制施加到所有目标,并在目标不支持的情况下安全地退回到未加密状态,这是万不得已的做法。如果没有维护的特定域列表,是否有可能?像TLS的全面强制一样?
gavanon

问题在于,有许多服务器不支持TLS,而其他服务器则支持TLS,并使用自签名或伪造证书。另外,由于STARTLS以明文形式发送,因此活跃的攻击者可能会在传输过程中将其剥离。我同意保留一个单独的长表是最安全但不是最可靠的解决方案
Jofre

我在某些网站上也遇到了一些问题。请参阅Postfix“已建立受信任的TLS连接”但“未验证服务器证书”
Jofre

谢谢-答案的第一部分很有帮助:smtp_tls_security_level = may。这就是全部所需要的,而其余的Google特定设置则没有必要。
gavanon

5

考虑有关SMTP的客户端/服务器关系,并且设置有意义:

2.1。基本结构

SMTP设计可以如下图所示:

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

(来源:rfc5321.txt)

从而:

“ smtp_tls_security_level”用于Postfix SMTP客户端。请参阅:http : //www.postfix.org/postconf.5.html#smtp_tls_security_level

“ smtp d _tls_security_level”用于Postfix SMTP服务器,请参阅:http : //www.postfix.org/postconf.5.html#smtpd_tls_security_level

当postfix将邮件传输到gmail时,smtp_tls_security_level设置是关联的设置。

当postfix 通过smtp 接收邮件时,smtp d _tls_security_level设置是相关的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.