使用 postfix,如何设置 SASL 和 dovecot 来接收 SMTP 邮件以及 cyrus 进行身份验证?

使用 postfix,如何设置 SASL 和 dovecot 来接收 SMTP 邮件以及 cyrus 进行身份验证?

我有一个静态 IP 地址,设置我的邮件中继非常简单:

mynetworks = ... <static IP address> ...

(当然授权来自 mynetworks 的所有传入邮件)。

现在我没有那个静态 IP 地址,我尝试通过 cyrus 设置身份验证,因为有人告诉我这样更好。但是,我通过 dovecot 接收 SMTP 电子邮件。

即使 SMTP 客户端是 dovecot,postfix 是否知道使用 cyrus 进行身份验证?

十月 16 04:01:06do20 postfix/submission/smtpd[4140436]: 从 c-71-197-127-190.hsd1.ca.comcast.net[71.197.127.190] 连接
十月 16 04:01:06do20 postfix/submission/smtpd[4140436]: 警告:SASL 身份验证失败:密码验证失败
十月 16 04:01:06do20 postfix/submission/smtpd[4140436]: 警告:c-71-197-127-190.hsd1.ca.comcast.net[71.197.127.190]: SASL PLAIN 身份验证失败:身份验证失败
十月 16 04:01:06do20 postfix/submission/smtpd[4140436]: 警告:c-71-197-127-190.hsd1.ca.comcast.net[71.197.127.190]: SASL LOGIN 身份验证失败:身份验证失败
十月 16 04:01:14do20 postfix/submission/smtpd[4140436]: 警告:SASL 身份验证失败:密码验证失败
十月 16 04:01:14do20 postfix/submission/smtpd[4140436]: 警告:c-71-197-127-190.hsd1.ca.comcast.net[71.197.127.190]: SASL PLAIN 身份验证失败:身份验证失败
十月 16 04:01:14do20 postfix/submission/smtpd[4140436]: 警告:c-71-197-127-190.hsd1.ca.comcast.net[71.197.127.190]: SASL LOGIN 身份验证失败:身份验证失败
十月 16 04:01:19do20 postfix/submission/smtpd[4140436]: 来自 c-71-197-127-190.hsd1.ca.comcast.net[71.197.127.190] 的 AUTH 后失去连接
十月 16 04:01:19do20 postfix/submission/smtpd[4140436]: 断开与 c-71-197-127-190.hsd1.ca.comcast.net[71.197.127.190] ehlo=2 starttls=1 auth=0/4 command=3/7 的连接

答案1

要验证的东西叫做SAS 连接层,“简单身份验证和安全层”,Postfix 可利用该库来支持各种身份验证机制,并在充当客户端时验证自身身份。CMU Cyrus 项目提供了一个库,Dovecot 项目也提供了一个库。Postfix 最初仅支持 Cyrus SASL 库,但从某个版本(很久以前)开始,它也支持 Dovecot 库。

您用来访问收到的邮件的东西称为 IMAP 服务器。同样,CMU Cyrus 和 Dovecot 也有服务器。它们是分离来自 SASL 库,实际上他们也使用它来验证他们的客户端。

要使用的身份验证库完全独立于您使用的 IMAP 服务器;例如,您可以在 Postfix 中使用 Cyrus SASL,并让其将收到的邮件存储到 Dovecot IMAP 服务器中,然后您便可同时访问该邮件。您可以选择使用哪一个smtpd_sasl_type(对于 SMTP 服务器),smtp_sasl_type(对于 SMTP 客户端),以及lmtp_sasl_type(对于 LMTP 客户端),全部默认为 Cyrus SASL;我建议您不要改变这些设置,除非您知道自己在做什么。

你在日志中看到的内容可能是有人试图蛮力服务器帐户的密码。你可以使用类似软件自动禁止此类尝试,从而减少这些事情的负担失败2ban经过几次不成功的尝试后;但请注意,这并不意味着您可以降低密码强度安全策略。

您的用户必须使用强密码,并且仅通过静态 TLS 或 STARTTLS 进行身份验证(使用 LOGIN 或 PLAIN 时),或者至少使用 DIGEST-MD5 或更强的身份验证机制,允许在不以明文形式发送密码的情况下证明密码。


您使用提交服务很好。它不接收来自其他服务器的邮件 — 只接收来自 MUA 的邮件,而 MUA 必须始终进行身份验证。因此,对于该服务,最佳设置mynetworks空的或者至少,仅限本地主机(例如127.0.0.1::1);所有人和所有事应使用用户名和密码进行身份验证。限制帐户允许的“发件人”电子邮件列表也是一个好主意,这样用户就无法互相冒充,并且您始终能够确定哪个帐户发送了这封或那封电子邮件;使用reject_sender_login_mismatchsmtp_sender_login_maps为此。或者,根据预期使用情况,您可以实施一项策略服务,限制用户在给定时间段内可以发送的邮件数量;这将在某人的密码被盗时遏制垃圾邮件造成的损害。

相关内容