设想:
Postfix 服务器在托管公司的 VPS 上运行。
Dovecot IMAP 服务器在办公室内运行。
我们希望 Postfix 使用最少的中间软件将收到的邮件推送到 Dovecot IMAP 服务器。此传输通过开放互联网进行。
因此我发现 Postfix 可以使用 LMTP 通过 TCP 进行虚拟传输,而 Dovecot 可以通过 TCP 监听 LMTP。
但是,如何阻止恶意邮件服务器绕过 Postfix 并通过开放的 LMTP 端口将邮件插入 Dovecot 呢?
LMTP 服务是否可以通过身份验证方法保护,例如通过 TLS 的密码(至少),或者由公共 CA 签名的双向 TLS 证书验证,以便两个服务器可以确定彼此的身份(更理想)?
答案1
LMTP(本地邮件传输协议)专为本地发送电子邮件而设计,本身并不像 SMTP 那样支持身份验证。当您使用 LMTP 在 Postfix 和 Dovecot 之间传输邮件时,尤其是在开放互联网上,安全性是一个值得关注的问题。
为了解决您的具体情况:
TLS 加密:Postfix 和 Dovecot 都支持 LMTP 的 TLS 加密。这可确保两台服务器之间传输的数据是加密的,不易被拦截。
双向 TLS 证书验证:这也称为相互 TLS (mTLS)。使用 mTLS,客户端(本例中为 Postfix)和服务器(Dovecot)都提供证书来相互证明身份。这确保双方都是可信任的实体。Postfix 和 Dovecot 都支持 mTLS。
防火墙规则:防止未经授权访问的一种方法是限制哪些 IP 可以连接到 Dovecot LMTP 端口。您可以配置防火墙规则以仅允许来自 Postfix 服务器 IP 地址的连接。
VPN 或 SSH 隧道:另一种方法是在 Postfix 服务器和 Dovecot 服务器之间建立 VPN 或 SSH 隧道。这样,LMTP 流量就通过这个安全隧道发送,增加了另一层安全性。
验证:虽然 LMTP 本身不支持身份验证,但您可以使用其他机制(如前面提到的 mTLS 或 VPN)来有效地“验证”连接。
总之虽然 LMTP 不支持传统的用户名/密码身份验证,但您可以使用 TLS、mTLS、防火墙规则以及可能的 VPN 或 SSH 隧道的组合来保护 Postfix 和 Dovecot 之间的连接。mTLS 方法(两个服务器都验证彼此的证书)是一种确保双方身份的可靠方法。