【问题标题】:How to encrypt outgoing email in postfix如何在后缀中加密外发电子邮件
【发布时间】:2018-03-19 05:40:41
【问题描述】:

我已经按照几个在线指南设置了 postfix 和 dovecot,并且一直遇到我发送的电子邮件不会被加密的问题。 我一直在通过向我的@gmail.com 帐户发送电子邮件来测试设置,因为我确信 google 服务器将支持 TLS 加密,并且 gmail webmail 中的电子邮件清楚地显示了红色划掉的挂锁以表明它们未加密。

如果我设置

smtpd_tls_security_level = encrypt
smtp_tls_security_level = encrypt 

我收到此错误

TLS is required, but was not offered by host gmail-smtp-in.l.google.com[64.233.167.27]

如果我将其设置为可能,它会发送电子邮件,而不对其进行加密。

这是 postconf -n 的输出

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
home_mailbox = Maildir/
inet_interfaces = all
inet_protocols = all
mailbox_command =
mailbox_size_limit = 0
mydestination = $myhostname, localdomain, localhost, localhost.localdomain, localhost, mail.example.com, example.com
myhostname = mail.example.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mynetworks_style = subnet
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
smtp_tls_CAfile = /routeto/my.ca-bundle
smtp_tls_cert_file = /routeto/my.crt
smtp_tls_key_file = /routeto/my.key
smtp_tls_loglevel = 1
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = example.com
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_tls_CAfile = /routeto/my.ca-bundle
smtpd_tls_cert_file = /routeto/my.crt
smtpd_tls_key_file = /routeto/my.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

这是端口 25 上的 telnet 的输出,然后是 ehlo 测试

250-mail.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

在 587 端口上也是一样

250-mail.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

【问题讨论】:

    标签: email ssl postfix dovecot starttls


    【解决方案1】:

    TLS 是必需的,但主机 gmail-smtp-in.l.google.com[64.233.167.27] 未提供此功能

    这清楚地表明,主机不向您的服务器提供 STARTTLS。但是,众所周知,gmail 提供 STARTTLS,并且您使用 telnet 进行的测试证实了这一点。我的猜测是您从不同的系统进行了 telnet,并且您的邮件服务器位于某些(透明)防火墙后面,该防火墙会拦截流量以对其进行分析。为了不处理加密的 SMTP 流量,这通常通过简单地从服务器对 EHLO 的响应中剥离 STARTTLS 命令来完成,以便邮件服务器假定不支持 TLS。

    另见What happens if STARTTLS dropped in SMTP?

    【讨论】:

    • 服务器是一个运行全新安装的 ubuntu 16.04 的 VPS,我相信它上面没有运行任何防火墙,所以我不确定下一步该做什么。
    • 我发布的 telnet 输出实际上是我自己的服务器,但现在你说是的,从我自己的服务器测试 gmail 服务器更有意义,你完全正确,这是谷歌我的服务器 250-mx.google.com at your service, 250-SIZE 157286400 250-8BITMIME 250-ENHANCEDSTATUSCODES 250 SMTPUTF8 的服务器测试,这与我自己的笔记本电脑 250-SIZE 157286400 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 的相同,我的服务器没有提供 STARTTLS...
    • @DuncanConnolly:拦截防火墙通常不在本地系统上,即防火墙位于网络中的其他位置,但位于真实服务器的路径中。
    • 这正是问题所在,网络上有一个垃圾邮件过滤器不允许我加密电子邮件。所以我自己无法解决这个问题,我将不得不换一个新的 VPS 提供商。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2020-05-28
    • 2016-09-04
    相关资源
    最近更新 更多