Postfix 中继到 Office 365 - DNS 配置

Postfix 中继到 Office 365 - DNS 配置

为了减少电子邮件被标记为垃圾邮件的可能性,我认为应该在电子邮件服务器上做以下几件事:

  • 主机名解析为有效的 IP 例如mail.example.com1.1.1.1
  • 存在反向 DNS,例如1.1.1.1mail.example.com
  • 邮件服务器发出“HELO”命令mail.example.com
  • 邮件服务器有指向的 MX 记录mail.example.com
  • 要包含的 SPF 记录1.1.1.1作为授权发送服务器
  • DMARC 和 DKIM 验证。邮件服务器加密的 DKIM 签名和公钥可供解密。

当 Postfix 服务器中继到 Office 365 时,如何配置 DNS?

SMTP 中继已配置为选项 3,请参阅此处文章)。我相信我下面列出的内容仅适用于设置 SMTP 中继而不是 SMTP 身份验证(我相信使用 SMTP 身份验证时 HELO 交换将在 Office 365 和收件人服务器之间完成,因此这不适用)。

  • Postfix 服务器应该解析为有效的 IP,例如mail.example.com1.1.1.1
  • 存在反向 DNS,例如1.1.1.1mail.example.com
    • 如果有多个域和服务器从同一 IP 发送,会发生什么情况?如果服务器使用各自的域作为主机名,这不会有问题吗?例如mail.abc-domain.commail.example.com是两个使用相同公网 IP 地址的独立服务器。
    • 解决方案是无论服务器为哪个域中继,在所有服务器上都使用相同的主机名进行 HELO 交换吗?或者,我们可以为每个域设置两个公共 IP。
  • Postfix 服务器应该发出“HELO”命令mail.example.com
  • MX 设置为例如.mail.protection.outlook.com为了示例.com因为邮件正在被传递到 Office 365。在这种情况下,Postfix 服务器仅用作中继服务器。
  • SPF 记录应该同时包含1.1.1.1spf.protection.outlook.com
    • 似乎到 Office 365 的 SMTP 中继在 HELO 交换中包含了 Postfix 服务器的主机名和 IP,这意味着在 SPF 记录中包含 Postfix 的公共 IP 非常重要。
    • Office 365 将代表示例.com对于经过身份验证的用户(例如 Outlook 用户),这就是原因spf.protection.outlook.comSPF 记录中也是需要的。
    • example.com 已存在指向 2.2.2.2 上的 Web 服务器的 PTR 记录。Web 服务器不需要指向自身的 PTR 记录,因此我认为将 PTR 更改为 Postfix 服务器是安全的。PTR 记录还有哪些其他用例?
  • DMARC 和 DKIM 验证。
    • 我认为 DKIM 签名应该在 Office 365 中加密,因为 Postfix 服务器和普通用户(Outlook 用户)都会向 Office 365 提交电子邮件。它是否正确?

如前所述,我可以看到 Postfix 在电子邮件标头中包含了主机名和 IP,如下所示。

Hop Delay   From    By  With    Time (UTC)  Blacklist
1   *   userid  mail.example.com        9/8/2023 6:38:37 AM 
2   1 Second    mail.example.com 59.154.1.42    SY4AUS01FT019.mail.protection.outlook.com 10.114.156.121    Microsoft SMTP Server   9/8/2023 6:38:38 AM Not blacklisted
3   1 Second    SY4AUS01FT019.eop-AUS01.prod.protection.outlook.com 2603:10c6:10:1f4:cafe::15   SY5PR01CA0071.outlook.office365.com 2603:10c6:10:1f4::9 Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384)    9/8/2023 6:38:39 AM Not blacklisted
4   0 seconds   SY5PR01CA0071.ausprd01.prod.outlook.com 2603:10c6:10:1f4::9 ME3PR01MB7048.ausprd01.prod.outlook.com 2603:10c6:220:16d::8    Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384)    9/8/2023 6:38:39 AM

在收到的电子邮件标头中,我可以看到电子邮件标头显示 HELO 命令在将电子邮件转发到 Office 365 时在 Postfix 服务器上启动

Received-SPF: Pass (protection.outlook.com: domain of example.com designates
 1.1.1.1 as permitted sender) receiver=protection.outlook.com;
 client-ip=1.1.1.1; helo=mail.example.com; pr=C
Received: from mail.example.com (1.1.1.1) by
 SY4AUS01FT019.mail.protection.outlook.com (10.114.156.121) with Microsoft
 SMTP Server id 15.20.6768.30 via Frontend Transport; Fri, 8 Sep 2023 06:38:38
 +0000

相比之下,通过 Outlook 通过 Office 365 发送时,HELO 从 Office 365 开始

Received-SPF: Pass (protection.outlook.com: domain of example.com
 designates 40.107.108.68 as permitted sender)
 receiver=protection.outlook.com; client-ip=40.107.108.68;
 helo=AUS01-ME3-obe.outbound.protection.outlook.com; pr=C
Received: from AUS01-ME3-obe.outbound.protection.outlook.com (40.107.108.68)
 by ME3AUS01FT015.mail.protection.outlook.com (10.114.155.141) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.6792.19 via Frontend Transport; Wed, 13 Sep 2023 04:01:55 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;

答案1

首先确认您的 Postfix 服务器的主机名正确解析为有效的 IP 地址,例如将“mail.example.com”解析为“1.1.1.1”。此外,请确保存在反向 DNS 记录,将“1.1.1.1”链接回“mail.example.com”。这些基本 DNS 设置在建立信任和发送电子邮件而不被标记为垃圾邮件方面起着关键作用。

在多个域共享具有公共 IP 的单个服务器的情况下,请考虑为 HELO 交换采用一致的主机名,例如“mail.example.com”。这简化了配置和管理,并且只需要一个 SPF 记录。但是,请谨慎行事,因为如果您的某个域被列入黑名单,则可能会影响所有域的电子邮件传递能力。或者,您可以选择为每个域分配单独的公共 IP。虽然这提供了增强的隔离性和弹性,但配置和管理起来更复杂。

在您的 SPF DNS 记录中同时包含 Postfix 服务器的公共 IP(“1.1.1.1”)和 Office 365 的 SPF 记录(“spf.protection.outlook.com”)至关重要。此步骤至关重要,因为 Office 365 可能会代表您的域发送电子邮件,尤其是对于经过身份验证的用户(例如 Outlook 用户)。示例 SPF 记录可能如下所示:“v=spf1 a:1.1.1.1 include:spf.protection.outlook.com ~all”。

如果存在指向您的 Web 服务器 IP(“2.2.2.2”)的“example.com”的 PTR 记录,则将其更改为指向 Postfix 服务器不会对 Web 服务器产生负面影响。PTR 记录有助于验证服务器的真实性,并应准确反映服务器的功能。在这种情况下,将“1.1.1.1”的 PTR 记录更新为指向“mail.example.com”与其作为电子邮件服务器的角色相一致。

确保 Office 365 中的 DKIM 签名正确加密。这一点至关重要,因为 Postfix 服务器和 Outlook 用户都会向 Office 365 提交电子邮件,而正确的 DKIM 加密对于电子邮件身份验证和可信度至关重要。值得注意的是,Office 365 会自动使用 DKIM 对所有外发电子邮件进行签名,因此您无需进行额外配置。

通过遵循这些 DNS 和电子邮件配置最佳实践,您可以增强使用 Office 365 进行电子邮件中继的可靠性。这反过来又提高了电子邮件的传递率,并降低了电子邮件被标记为垃圾邮件的可能性。加密 Postfix 服务器和 Office 365 之间的电子邮件连接以增强安全性和隐私性。设置 Postfix 以使用 SMTP AUTH 对 Office 365 进行身份验证,以实现安全的电子邮件中继。

定期检查电子邮件标头,以确保 HELO 命令与服务器的主机名一致,从而确保电子邮件成功传递。

答案2

中继与发送电子邮件有很大不同。您描述的措施与发送电子邮件有关。它们应该都与转发电子邮件无关。

我认为 DKIM 签名应该在 Office 365 中加密,因为 Postfix 服务器和普通用户(Outlook 用户)都会向 Office 365 提交电子邮件。这是正确的吗?

不,这没有任何意义。DKIM迹象电子邮件。收件人验证签名。如果收件人无法读取签名,则无法验证。

相关内容