debian、exim4、dovecot 无法在服务器上验证用户身份

debian、exim4、dovecot 无法在服务器上验证用户身份

我一直在配置我的新邮件服务器。

一切似乎进展顺利,但我无法让任何用户登录(无论是否使用 SSL)

所以我可以从本地主机远程登录到服务器

telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE AUTH=PLAIN AUTH=LOGIN AUTH=CRAM-MD5] Dovecot ready.
a login "[email protected]" "plainPasswd"
a NO [AUTHENTICATIONFAILED] Authentication failed

Dovecot 日志没有告诉我太多信息(我已在配置中将所有日志记录设置为“是”...

2014-08-14 15:33:04 imap-login: Info: Aborted login (auth failed, 1 attempts):     user=<[email protected]>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
2014-08-14 15:36:36 dovecot: Info: This is Dovecot's info log
2014-08-14 15:36:36 dovecot: Warning: This is Dovecot's warning log
2014-08-14 15:36:36 dovecot: Error: This is Dovecot's error log
2014-08-14 15:36:36 dovecot: Fatal: This is Dovecot's fatal log

只是为了好用,这是我的配置

log_path: /var/log/dovecot.log
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps pop3 pop3s
ssl_listen(default): *:10943
ssl_listen(imap): *:10943
ssl_listen(pop3): 
ssl: no
disable_plaintext_auth: no
verbose_ssl: yes
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(pop3): /usr/lib/dovecot/pop3-login
verbose_proctitle: yes
mail_privileged_group: mail
mail_location: maildir:/var/mail/virtual/%d/%n/ :LAYOUT=fs
mail_debug: yes
mbox_write_locks: fcntl dotlock
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(pop3): /usr/lib/dovecot/pop3
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3
auth default:
  mechanisms: plain login cram-md5
  passdb:
    driver: passwd-file
    args: scheme=plain username_format=%n /etc/dovecot/conf.d/usr_pwd
  userdb:
    driver: passwd-file
    args: username_format=%n /etc/dovecot/conf.d/usr_pwd

只是为了证明文件 usr_pwd 包含所需信息......

sudo more /etc/dovecot/conf.d/usr_pwd
# this file is the password file for dovecot login authentications
# it is a simple username : password pair file, note that the usernames must be
# complete ~ ie use the full [[email protected]] type form

[email protected]:{PLAIN}plainPasswd

据我所知,一切都设置正确,但当我尝试 telnet 登录(或使用 openSSL 连接 ~ 当它已启用时)时,我总是无法登录。我还注意到,即使我转到 SSL 并禁用纯文本授权,日志也总是提到 {method=plain} ~。

我确信我遗漏了一些非常简单的东西〜我尝试重新启动服务器......以防万一......但没有变化......?

我正在使用 exim4 的多文件配置,而 dovecot 的配置被分成 {/etc/dovecot/conf.d/....} 中的大约 4 个文件。passwd 文件的名称是否特定?即我是否不应该更改它?感谢您提供的任何帮助,我已经为此烦恼了近 3 天,我遵循了许多教程,它们似乎都建议同一件事,我总是能够通过 telnet 连接(当我有 SSL=yes 时,通过 openSSL 连接),因此服务器肯定在监听所需的端口。

提前致谢。

大卫

答案1

我不喜欢用自己的方法解决问题...但现在这对我和其他人来说都一样重要!

简而言之:解决方案是获取更新版本的 dovecot 的副本。

原因:doveadm 实用程序在 v1.*** 版本上不可用。配置被拆分为多个文件(更易于管理)。我在各个网站(主要是 stack overflow 网站)上找到的大多数帮助似乎都适用于版本 2。

@todd lyons:感谢您指点 swaks - 很酷的工具。尽管我设法几乎立即开始发送,但是在身份验证方面我遇到了一点困难!

给其他人的提示:创建密码时使用以下内容

doveadm pw -p[newPassword] -s[hashing scheme] -u[username]

为什么最初我只使用带有 -pw 的 doveadm,它会要求输入密码(两次)然后输出密码,您需要将其复制到您的密码/用户数据库文件或数据库中。

似乎当我将其复制到文件时,我正在“粗心地输入”密码,并由于密码不匹配而不断被拒绝连接!是的,我因此失去了头发和睡眠。

简而言之,以下是我采取的步骤。

  • 下载最新版本 dovecot 的 deb 文件(因为 wheezy-backports 拒绝工作!):我需要 dovecot-common(先下载、安装和配置),然后是 dovecot-imap。
  • 弄乱使用您首选位置来存放用户邮件的配置。
  • 确保 exim 与您的 dovecot 配合使用

我发现最有用的页面:Dovecot:http://wiki2.dovecot.org/Tools/页面介绍了您可以使用 doveadm 等进行的所有其他巧妙操作。 Stackoverflow :哇,这里的人太棒了。也许有一天我也能像你们帮助我一样帮助别人。如果可以的话,我会在所有网站上给每个人加一分! Debian 管理:不是 Debian 项目的官方组成部分,但却是一套很棒的操作指南和内容。

目前就是这样。

只需要将我的其他域和用户添加到 exim / dovecot 中(祈祷它不会损坏!)。

希望我上面所写的内容对其他人有用。

大卫。

相关内容