交换强制 TLS |安全邮件流故障排除和验证 |第 12#12 部分
在本文中,我们将回顾与基于 TLS 通信的邮件流程场景相关的三个主题。
- 验证邮件服务器 TLS 配置
在一个场景中,我们创建了所有必需的 TLS 配置,但由于某种原因,邮件通信失败。我们需要能够了解问题的原因是什么,例如,我们的邮件服务器配置设置或与目标邮件服务器 TLS 设置相关的内容。
为了能够检查特定的 TLS 设置,我们可以使用名为 CheckTLS.com 的有用 Web 工具来验证。
- 使用 ExRCA 读取和分析邮件标头
如果我们想要验证邮件通信是否使用 TLS 实现,我们可以检查隐藏在每封邮件的邮件标头中的信息。
在本节中,我们将回顾如何从邮件标头复制信息以及如何使用 Microsoft Web 工具 ExRCA(Exchange 远程连接分析器)分析该信息。
- 测试邮件服务器的强制 TLS 设置
在最后一部分中,我们将回顾如何使用名为 JBMail Plus 的优秀邮件客户端来测试 TLS 通信。
使用 CheckTLS.com Web 测试工具验证邮件服务器 TLS 配置
从技术上讲,当使用强制 TLS 选项时,实现不必包含强制性要求,其中目标邮件服务器需要通过出示服务器证书来证明其身份。
如果我们将邮件连接器配置为“要求”目标服务器通过提供服务器证书来证明其身份,或者如果我们请求特定类型的服务器证书,例如由受信任的服务器提供的“服务器公共证书” CA
如果我们遇到通信故障,则很难找到故障的具体原因。
如果邮件服务器(我们的邮件服务器和目标邮件服务器)包含提供包含有关通信失败的可能原因的信息的日志文件的选项,我们可以尝试读取此日志文件以更好地理解,但在事实上,读取这个日志文件的任务并不是太容易和直接。
好消息是我们可以选择使用名为 CheckTLS.com 的免费网络工具。
为了能够演示 CheckTLS.com Web 工具的使用,我们使用以下场景:
作为业务合作伙伴的两个不同组织,为其发送的邮件配置强制 TLC 选项伙伴。
当域名 thankyouforsharing.org 所代表的组织的收件人向 o365pilot.com 发送电子邮件时,< span class="highlight1i">o365pilot.com 邮件服务器将要求邮件会话使用 TLS 实现,此外,“源收件人”的邮件服务器(thankyouforsharing.org)需要通过提供有效证书来证明自己的身份。
同样的逻辑将应用于相反的方向 - 当邮件由 o365pilot.com 收件人发送时(通过 o365pilot.com) span> 邮件服务器)发送给 thankyouforsharing.org 收件人,代表 thankyouforsharing.org 的邮件服务器将要求使用 强制 TLS 并识别源邮件服务器(代表
o365pilot.com)。
o365pilot.com 组织将其邮件基础结构托管在 Exchange Online 上。稍后我们会从Exchange Online公共证书的信息中看到测试结果。
为了能够验证基础架构是否已正确配置,我们将使用 CheckTLS.com Web 工具来验证代表域 o365pilot.com 的邮件服务器的 TLS 设置,并且代表 thankyouforsharing.org 的邮件服务器。
验证 o365pilot.com 基础设施
我们将访问 CheckTLS.com 网站并尝试将电子邮件发送给名为 - Bobm@o365pilot.com 的收件人
在地址框中,我们将输入我们想要检查的所需电子邮件地址(更准确地说,我们要测试代表域名的邮件服务器)。
单击尝试一下
在下面的屏幕截图中,我们可以看到结果:
在顶部屏幕上,我们可以看到一个汇总表,其中显示了有关“目标邮件服务器”验证的所有参数。 ”
我们可以看到所有测试都成功完成。例如,服务器证书 (Cert OK) 为“OK ”,TLS Neg(协商)为 OK等等。
如果我们继续向下滚动,我们可以看到有关 TLS 会话的更多详细信息。在顶部,我们可以看到 CheckTLS.com 邮件服务器设法找到 o365pilot.com 域的 MX 记录,并设法完成与邮件服务器的 TLS 会话。代表此域(在我们的方案中为 Exchange Online 邮件服务器)。
我们可以看到目标邮件服务器通过显示命令“通知”他支持TLS:250- STARTTLS
另外,我们可以看到CheckTLS.com邮件服务器成功获取了目标邮件服务器的证书。我们可以看到证书“属于”Microsoft,并且证书包含主机名 - mail.protection.outlook.com
如果我们想获得更详细的信息,我们可以点击 - 更多详细信息选项。
在下面的屏幕截图中,我们可以看到其他详细信息,例如服务器证书中使用的数字签名算法、公钥的值等等。
实施发送者测试
在源收件人向目标收件人发送电子邮件的情况下,我们遇到一些邮件流问题;很难理解哪一方有问题。
CheckTLS.com 工具提供的另一个选项是实施发件人测试。
为了能够使用发件人测试,请在发件人部分中单击运行
单击开始测试
在下一个屏幕上,我们可以看到为我们生成的唯一代码(密码)。
我们需要复制出现的电子邮件地址 test@TestSender.CheckTls.com 和密码。
我们需要在收件人发送的电子邮件中传递密码,我们要向其检查其邮件基础设施。
在我们的场景中,我们想要检查组织的邮件基础设施:thankyouforsharing.org。
发送电子邮件的收件人是 - Ayelet@thankyouforsharing.org
我们将登录 Ayelet 邮箱并创建一条新邮件。
在主题行中,我们将粘贴从上一步中获得的代码,“目标收件人”将是 - test@TestSender.CheckTls.com
在下面的屏幕截图中,我们可以看到结果。
邮件重播已发送至 Ayelet@thankyouforsharing.org
重播邮件包含详细日志,其中包括有关 TLS 会话的信息。
使用 ExRCA 邮件分析器分析邮件标头中的信息
在下一节中,我们将演示如何对 TLS 邮件流进行故障排除。
在我们的场景中,我们将邮件服务器配置为“要求”目标服务器通过提供公共证书来证明其身份。
在我们的例子中,目标邮件服务器没有公共证书,而是有自签名证书。
因此,TLS 通信将失败。
为了能够了解问题的原因,我们将使用 CheckTLS.com 工具检查目标邮件服务器的 TLS 设置。
在下面的截图中,我们可以看到测试的结果
我们可以看到目标邮件服务器支持 TLS (250-STARTTLS),但稍后我们可以看到以下错误:
证书未验证:自签名证书
[001.255] 因此电子邮件已加密,但域未验证
我们可以使用的另一个选项是 Exchange Online 测试邮件。
在下面的截图中,我们可以看到发送到拘留邮件服务器的测试邮件的结果。
出现以下错误:
原因:450 4.4.101 前端代理会话设置失败,“451.4.4.0 主要目标 IP 地址响应 454.4.7.5 证书验证失败”。原因:UntrastedRoot。 ”
尝试故障转移到备用主机,但没有成功。要么没有备用主机,要么向备用主机传送失败。
此错误的含义是我们尝试通信的目标邮件服务器的证书无效。
读取和分析邮件标头
有关源邮件服务器和目标邮件服务器之间的邮件流的信息“隐藏”在邮件标头中,这些标头“附加”到发送给特定收件人的每封电子邮件。
在我们使用强制 TLS 选项的场景中,至关重要的是我们能够验证由 TLS 协议实现的安全通信通道的“存在”。
使用邮件标头中包含的信息,我们可以选择检查有关邮件流的“幕后”情况,并检查邮件流是否是使用 TLS 实现的。
一般来说,我们可以通过将信息复制到简单的文本文件中来分析邮件标头中的信息,但实际上,理解邮件标头中包含的内容和信息的任务并不那么简单。
好消息是,有一些免费的网络工具可以帮助我们分析邮件标头信息。
在我们的场景中,我们将演示使用 Microsoft 消息分析器(Exchange ExRCA 工具的一部分)等工具。
1. 使用OWA邮件客户端时如何读取邮件标头
为了能够在使用 OWA 邮件客户端时访问邮件标头,我们需要执行以下步骤:
- 打开您要查看其邮件标题的电子邮件。
- 单击小箭头符号
- 选择菜单 - 查看消息详细信息
在下面的屏幕截图中,我们可以看到邮件标头的内容。
2. 使用Outlook邮件客户端时如何读取邮件标题。
为了能够在使用 Outlook 邮件客户端时访问邮件标头,我们需要使用以下步骤:
- 打开您要查看其邮件标题的电子邮件。
- 选择文件菜单
- 选择属性图标
在下面的屏幕截图中,我们可以看到邮件标头的内容。
使用 ExRCA 邮件分析器分析邮件标头中的信息
在下面的部分中,我们将演示如何使用 Microsoft 消息分析器。
我们的任务是验证从源收件人发送到目标收件人的邮件是否通过安全通信通道(即 TLS)发送。
在我们的场景中,从 o365pilot.com 收件人发送到 thankyouforsharing.org 的每封邮件都必须使用 TLS 加密。
名为 Bobb@o365pilot.com 的收件人将电子邮件发送给名为 - Ayelet@thankyouforsharing.org 的目标收件人
我们将通过访问电子邮件来分析发送到Ayelet@thankyouforsharing.org的电子邮件的邮件标头,并复制电子邮件标头的内容。
为了能够分析邮件标头,我们将访问 ExRCA Web 工具
我们将选择消息分析器选项卡并粘贴上一步中复制的邮件标头的内容。
我们将点击分析标题
在下面的屏幕截图中,我们可以看到结果。
在提交主机和接收主机下,我们可以看到邮件流中涉及的邮件服务器。
在Type行下,我们可以看到邮件流是使用TLS实现的
测试邮件服务器的强制 TLS 设置
在我们选择强制 TLS 选项后,我们希望确保邮件服务器不会“同意”与不支持 TLS 的主机交谈。
为了验证这种情况,我们需要使用一些客户端来帮助模拟邮件服务器和另一个邮件服务器(或客户端)之间的交互。
我最喜欢的用于实现此测试的工具是名为 JBMail Plus 的免费邮件客户端工具。
在下一节中,我们将演示一个场景,在该场景中,我们模拟邮件客户端\服务器,该客户端/服务器寻址特定的邮件服务器(代表 o365pilot.com 域的邮件服务器),该邮件服务器应该使用强制 TLS 进行配置。
我们特意尝试使用非 TLS 会话 (SMTP) 并尝试验证服务器响应是什么。
我们将选择发送设置选项卡并添加以下详细信息。
您的地址:这是尝试发送电子邮件的收件人的电子邮件地址
SMTP 主机:我们要寻址的邮件服务器的主机名。在我们的特定场景中,代表 o365pilot.com 域的邮件服务器的主机名是
o365pilot-com.mail .protection.outlook.com
协议:我们将保留默认选项“明文”,因为我们想要测试非安全邮件通信通道并验证邮件服务器的响应。
我们将选择帐户选项卡,然后单击撰写按钮。
在收件人:字段中,我们将添加目标收件人的电子邮件地址。在我们的场景中,我们希望尝试将电子邮件发送给 o365pilot.com 域中的收件人。
在下面的屏幕截图中,我们可以看到结果。代表域 o365pilot.com 的邮件服务器“拒绝”接受邮件并通知我们:
没有配置与邮件收件人域匹配的合作伙伴连接器

























