我有自己的邮件服务器,该服务器同时监听不安全的端口和 SSL/TLS 端口。我的问题是,当我收到电子邮件时,是否有任何方法可以验证邮件从原始服务器到我的邮件服务器的途中是否使用不安全的连接传递?(任何地方 - 甚至是服务器到服务器的连接)。
我尝试检查邮件源和邮件头,其中仅包含哪个服务器在发送到我的邮件客户端的过程中将其传送到哪个服务器,但不包含使用了哪种协议以及是否使用 SSL。
答案1
首先,服务器到服务器的传输仅通过端口 25 进行,其他端口均无法使用。如果两台服务器都希望使用 TLS,则它们将在同一个端口 25 上启用“STARTTLS”。它们不会将(顺便说一下,很久以前已取消分配的)SMTPS 端口 465 用于任何用途。
对于中间跳跃,消息源是你拥有的一切–Received
尤其是邮件头。有些邮件服务器会附加有关 TLS 连接的详细信息(直至使用的密码),而有些则只会提及短信服务而其他人则什么也没说。
有些跳转可能会显示“SMTP”,因为它们是内部数据中心跳转,而管理员选择了 IPsec(或者根本不关心)。有些跳转可能根本没有使用 SMTP,而是使用 HTTP(Webmail)或自定义内部邮件改组协议;“已接收”注释差异很大。特别是,通常根本没有提及 Webmail 用户是否使用 HTTPS。
例如,这表示ESMTPSA
- 这意味着通过安全(S - STARTTLS)连接使用了 ESMTP(扩展/EHLO SMTP)。
收到:来自 note.local.net 由 minnie.tuhs.org (Postfix) 发送,ESMTPSA id 为 DF028A5460; 2015 年 12 月 14 日星期一 21:01:29 +1000(澳大利亚东部标准时间)
(该消息总共经过 4 个跳转,其中 2 个使用了 TLS,2 个没有。)
关于最后的hop(即您自己的服务器),您还可以检查 SMTP 服务的日志文件(例如/var/log/exim/mainlog
或/var/log/mail.log
)。如果您搜索特定队列 ID(如 DF028A5460),通常会发现上面几行提到了某种程度的 TLS 相关信息。