postfix/dovecot 设置中的 SASL:它在哪里使用?

SASL in postfix/dovecot setup: Where is it used?

我正在尝试使用 Postfix/Dovecot 设置邮件服务器以获取学习经验。 (这意味着你不必劝阻我!!)

有 2/3 的指南他们只是说 “我们现在即将启用 SASL 身份验证”。但是我不明白 SASL 在设置中的位置。

我绘制了以下模式来可视化我认为电子邮件通信的样子(省略号中的 smtp 和 smtpd 指的是 postfix 的子模块):

为什么需要 SASL? Postfix 和 Dovecot 已经使用 SSL 加密了它们的流量,这也是我向它们指出有效的 Let's Encrypt 证书的原因。 SASL 有什么用,为什么 postfix 需要 dovecot 来提供它? (注意:我确实理解为什么 postfix 需要外部 SASL 提供程序,如 dovecot 或 Cyrus,所以 this 问题与我无关。)

还请更正此图片,无论哪里有误。我知道这不是正在发生的事情的全貌,但它应该涵盖足够有用的概念。

谢谢!

SASL(简单身份验证和安全层)是一种身份验证框架。 SSL (TLS) 是一种通过网络提供安全通信的协议框架。 SSL (TLS) 可以通过客户端证书提供身份验证。我不知道支持证书身份验证的电子邮件客户端 (MUA)。

SMTP 的原始设计允许电子邮件从任何地方到达并转发到任何地方。在过去,我们将电子邮件服务器称为存储转发服务器。然而,在垃圾邮件和网络钓鱼盛行的今天,允许任何人将电子邮件传输到 SMTP 服务器并不是一个好主意。盲目转发邮件(开放中继)也是一个坏主意。

Postfix 使用 SASL 为邮件客户端 (MUA) 提供身份验证。这可以像 username/password 一样简单,也可以是许多身份验证服务之一,例如 LDAP 或 Active Directory。 SASL 是代表 Postfix 处理身份验证的软件。

有许多 SASL 软件供应商。选择取决于您的网络设计、身份验证来源、设计目标等。如果您的用户名存储在 Azure Active Directory 中,那么您将 select 支持 Azure Active Directory 的 SASL 软件。另一个示例是使用 MySQL 来存储您的用户。一旦您设计了您的网络,选择通常会变得相当容易。

Postfix 还实现了其他形式的授权,以确定它是否应该接受来自其他 SMTP 服务器的电子邮件。这是使用网络亲和力(您是否在授权网络或 IP 地址上)、反向 DNS、SPF、DMARC、DKIM 等的地方。

SSL 可用于加密 SMTP 服务器之间以及电子邮件客户端与 SMTP 服务器之间的通信。这提供了保密性但没有授权。