我最近注意到,我的服务器在mail.log上报告了很多认识用户的不好身份validation,而且它不是暴力攻击。 我真的不知道这种authentication的原因。 我有用户使用,在iOS的Gmail应用程序,邮件,在MacOSX的邮件应用程序,ThunderBird和Outlook,还有一个webmail服务来访问此服务器。 在这台服务器上,我有一个自签名证书,也作为一个邮件智能主机。 这个系统是一个MacOSX 10.9.5。
在所有的平台上,Outlook是连接到服务器时唯一有奇怪行为的人。 不断地显示一个令人讨厌的loginpopup用户的凭据,无处不在,这发生在我所有的Outlook用户。 用户可以使用Outlook来发送和接收,而且似乎都可以工作,除了loginpopup窗口。
从我的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,第二次我认为它来自邮件web服务,第三次来自邮件应用程序。
我无法弄清楚是什么原因造成的,但是因为我有来自几个不同的软件客户端的authentication,我认为我的后缀或在dovecotconfiguration有东西。
在这里你可以检查两个configuration:
后缀: http : //pastebin.com/EU1iLjAP
鸽舍: http : //pastebin.com/N9MfuvkD
正在使用的端口:
587 SMTP STARTLS
993 IMAP SSL
更新1:
这就是发生了什么,在这里你可以看到,一开始authentication失败之后,接下来validation成功:
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
UPDATE2:
这似乎是我的服务器不允许DIGEST-MD5和CRAM-MD5,然后切换到PLAIN,对于某些用户。 在本地主机上,我可以使用至lessCRAM-MD5没有问题。
你遇到的问题是Dovecot问题,而不是后缀。
所以你可以理解Dovecote Authentication如何读取这个请求:
您必须明白,如果您的客户端密码以纯文本forms保存在数据库中,则可以使用cram-md5和digest-md5(auth_mechanisms = plainlogincram-md5摘要-md5)。 但是如果数据库中的密码是encryption的, 可以在这里的鸽舍文档中提到一个encryptionscheme:
http://wiki2.dovecot.org/Authentication/PasswordSchemes ,那么你就不能使用cram-md5,除非密码已经用cram-md5 hash保存在数据库中。 这是混乱,所以你明白更好,可以说我有一个电子邮件帐户,所以我login:
电子邮件客户端—–>密码—>电子邮件服务器将检查数据库,我可以看到3个场景:
第一个 – 数据库中的密码保存为纯文本:
(密码)/或/ digest-md5(密码)/或/简单的密码:所以日志密码将与数据库纯文本保存的密码相匹配。第二种情况数据库中的密码用SHA512-CRYPT保存:
电子邮件服务器 – auth_mechanisms(普通login) – →电子邮件服务器检查密码—> default_pass_scheme = SHA512-CRYPT —- SHA512-CRYPT(密码)—→数据库(已经SHA512-CRYPT密码) – 日志-in匹配第三种情况数据库密码用carm-md5encryption:
电子邮件服务器—-> auth_mechanisms(普通logincram-md5) – →电子邮件服务器—检查密码— default_pass_scheme = cram-md5 – > cram-md5(密码)—->数据库(密码已经保存在cram-md5密码中) – login匹配
因此,您要么encryption数据库密码,要么使用SSL / TLS,并使auth_mechanisms =“简单login”或:
如果您不想使用SSL,请使用auth_mechanisms = cram-md5并将密码作为cram-md5存储在数据库中,如果您要使用DIGEST-MD5和CRAM-MD5,则密码必须存储在PLAIN_TEXT中。
所以只使用CRAM-MD5,数据库中的密码可以是CRAM-MD5或纯文本,或者使用DIGEST-MD5和CRAM-MD5:数据库中的密码只能以纯文本格式保存。
在下一个链接,你会发现一些脚注,以帮助你在数据库中encryption你的密码: http : //wiki2.dovecot.org/HowTo/ConvertPasswordSchemes
如果您想将密码保存在DIGEST-MD5的数据库中,您必须阅读以下网页: http : //wiki2.dovecot.org/Authentication/Mechanisms/DigestMD5
另外正如您在我们的聊天中提到的,在Dovecote中使用的auth_mechanisms值可以在postfix中使用,因为smtpd_pw_server_security_options = plain in main.cf