我已经安装了 postfix 和 dovecot 邮件服务器。我的客户使用 The Bat 软件发送/接收邮件。它们使用标准 25 和 110 端口。
现在我想确保我的连接安全,我想问以下问题:
- 我应该使用哪些端口来代替 25 和 110 端口来保护我的连接?通常用什么?
- 如果我确保连接安全,其他邮件服务器会收到我的信件吗?例如,如果我通过 25 端口 STARTTLS 发送邮件,他们会收到吗?
答案1
正常(明文)和安全/加密通信的标准端口(按协议):
IMAP: normal 143, secure 993
POP: normal 110, secure 995
SMTP: normal 25, secure 465/587
令人困惑的是 SMTP 有两个安全端口。您应该对 SSL/TLS 使用 465 并使用 587 STARTTLS (请参阅本页的最后一部分)虽然这不是强制性的。
解决第二个问题:这些是服务器的端口号,而不是您的计算机的端口号,因此如果其中之一无法访问,您将无法使用它。此外,这些端口还用于保护您与您将邮件发送到的邮件服务器之间的通信安全。它与邮件中继如何将邮件传递到最终目的地的服务器无关。
答案2
您想要保护通信,而不是切换到其他端口。
TLS 是一种加密通信的协议。然而,为了能够使用 TLS,对话双方都需要同意这样做;否则,一方会期望明文通信,而另一方会期望加密通信,那么一切都会出错。
确保双方使用相同(即加密或未加密)类型的通信可以通过两种方式完成:
- 您在一个端口上支持协议的“未加密”版本,在另一个端口上支持协议的“加密”版本。连接到“加密”端口的客户端将在连接后立即开始 TLS 握手,并且不会发生未加密的通信
- 您支持在未加密端口上执行“请将连接升级到 TLS”命令。这就是
STARTTLS
做事的方式。在此方法中,客户端连接到未加密的端口,然后(以明文方式)向服务器发送命令以升级到 TLS。从那时起,一切都将被加密。
双方都有其优点和缺点,并且没有真正的“最佳”方法。好消息是你能同时做这两件事;大多数 IMAP 和 SMTP 软件都支持在两种模式下并行运行。
此外,您应该注意了解邮件和邮件之间的区别提交和邮件送货:
- 提交是指您的客户想要向第三方发送电子邮件并且需要“外发 SMTP”服务器(您)的情况。它们连接到服务器,以某种方式进行身份验证(例如,通过用户名和密码,或通过连接IP地址,或通过某种其他方式),然后使用SMTP协议提交电子邮件以进行传递。然后由您的服务器来确保相关电子邮件最终到达最终目的地。为了向您的客户提供有用的服务,请提交客户必须被允许向整个互联网发送电子邮件。端口 587 作为提交客户端的标准端口提供,但您可以根据需要选择任何您喜欢的端口。
- 投递是指当您的服务器是由某个人发送的电子邮件的最终目的地时第三者。由于发送服务器不需要与您的服务器有任何客户端关系,因此无法对其进行身份验证。相反,它通过 DNS 中的 MX 记录查找您的服务器地址,然后通过端口 25 连接到您的服务器。它将电子邮件发送到您的服务器,并希望您确保它最终到达最终收件人。为了避免成为垃圾邮件中继,交付客户一定不被允许向整个互联网发送电子邮件。端口 25 是仅有的允许交付客户的端口。
如果STARTTLS
在端口 25 上启用,则 TLS 可用于传送客户端。如果您使用端口 587,您应该默认为未加密通信并提供STARTTLS
命令。如果您想使用“立即 TLS 握手连接”的旧方法,则应使用端口 465。