我最近注意到我的服务器在 mail.log 上报告了许多已知用户的错误身份验证,这不是暴力攻击。而且我真的不知道这种身份验证的原因。我有用户使用 Gmail 应用程序、IOS 上的邮件、MacOSX 上的邮件应用程序、ThunderBird 和 Outlooks,以及访问该服务器的网络邮件服务。在此服务器中,我有一个自签名证书,并且还用作邮件智能主机。该系统是 MacOSX 10.9.5。
在所有平台中,Outlook 是唯一一个在连接到此服务器时出现奇怪行为的平台。不断显示带有用户凭据的烦人的登录弹出窗口,不知从何而来,这发生在我所有的 Outlook 用户身上。用户可以使用 Outlook 发送和接收,一切似乎都可以正常工作,除了登录弹出窗口。
从我的 mail.log 中,我遇到了 SAL DIGEST-MD5、SASL PLAIN 和 SASL CRAM-MD5 的问题,例如一些随机样本:
Jan 19 11:43:43 remote.x.pt postfix/smtpd[53889]: error: validate response: authentication failed for user=lcg (method=DIGEST-MD5)
Jan 19 11:43:43 remote.x.pt postfix/smtpd[53889]: warning: unknown[192.168.1.72]: SASL DIGEST-MD5 authentication failed
Jan 18 17:10:46 remote.x.pt postfix/smtpd[5838]: error: verify password: authentication failed: [email protected]
Jan 18 17:10:46 remote.x.pt postfix/smtpd[5838]: warning: hq2.pacsis.pt[x]: SASL PLAIN authentication failed
Jan 16 15:13:06 remote.x.pt postfix/smtpd[17510]: error: validate response: authentication failed for user=teste3 (method=CRAM-MD5)
Jan 16 15:13:06 remote.x.pt postfix/smtpd[17510]: warning: remote.x.pt[192.168.1.1]: SASL CRAM-MD5 authentication failed
第一次尝试来自 Outlook,第二次我认为它来自邮件网络服务,第三次来自邮件应用程序。
我不知道是什么原因造成的,但由于我从几个不同的软件客户端获得了错误的身份验证,我认为我的后缀或 dovecot 配置中有一些东西。
在这里您可以检查两个配置:
后缀: http: //pastebin.com/EU1iLjAP
鸽舍:http : //pastebin.com/N9MfuvkD
正在使用的端口:
第587章
第993章
更新 1:
这就是正在发生的事情,在这里您可以看到,在最初的身份验证错误之后,接下来它会成功进行身份验证:
Jan 19 14:33:05 remote.x.pt postfix/smtpd[62409]: error: validate response: authentication failed for user=lcg (method=DIGEST-MD5)
Jan 19 14:33:05 remote.x.pt postfix/smtpd[62409]: warning: unknown[192.168.1.72]: SASL DIGEST-MD5 authentication failed
Jan 19 14:33:05 remote.x.pt postfix/smtpd[62409]: verify password: AUTH PLAIN: authentication succeeded for user=lcg
更新2:
对于某些用户,似乎我的服务器不允许 DIGEST-MD5 和 CRAM-MD5,然后它切换到 PLAIN。在本地主机上,我至少可以毫无问题地使用 CRAM-MD5。
您遇到的问题是 Dovecot 问题而不是后缀问题。
所以你可以理解 Dovecote Authentication 如何阅读这个:
你必须明白,如果你的客户端的密码以纯文本形式保存在数据库中,那么你可以使用 cram-md5 和 digest-md5 (auth_mechanisms = plain login cram-md5摘要-md5)。但是如果数据库中的密码是加密的;可以说这里的 Dovecote 文档中提到的一种加密方案:
http : //wiki2.dovecot.org/Authentication/PasswordSchemes,那么你不能使用 cram-md5,除非密码已经用 cram- 保存在数据库中md5 哈希。这很令人困惑,所以您可以更好地理解,假设我有一个电子邮件帐户,所以我登录:
电子邮件客户端 ----->密码--->电子邮件服务器将检查数据库,我可以看到 3 个场景:
因此,您要么加密或不加密数据库密码并使用 SSL/TLS 并制作 auth_mechanisms="plain login" 或者:
如果您不想使用 SSL,请制作 auth_mechanisms=cram-md5 并将密码作为临时文件存储在数据库中md5 如果您想使用 DIGEST-MD5 和 CRAM-MD5,您的密码必须存储在 PLAIN_TEXT 中。
因此仅使用 CRAM-MD5,数据库中的密码可以是 CRAM-MD5 或纯文本或使用 DIGEST-MD5 和 CRAM-MD5:数据库中的密码必须仅以纯文本形式存储。
在下一个链接中,您将找到一些可帮助您在数据库中加密密码的脚本: http ://wiki2.dovecot.org/HowTo/ConvertPasswordSchemes
如果您想将数据库中的密码保存为 DIGEST-MD5,您必须阅读此页面:http
: //wiki2.dovecot.org/Authentication/Mechanisms/DigestMD5 此外,正如您在我们的聊天中提到的,可以使用 Dovecote 中使用的 auth_mechanisms 值在后缀中作为 smtpd_pw_server_security_options=plain 在 main.cf