Hello运行Linux <hostname> 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3+deb9u1 (2019-09-20) x86_64 GNU/Linux
我对建立邮件服务器完全陌生。我已经设置了SMTP的后缀,它可以接收电子邮件。后缀版本是mail_version = 3.1.12
我还安装了Dovecot版本:2.2.27 (c0f36b0)--我的配置是这样的--将后缀配置为通过本地套接字使用DOVECOT。
我的系统被配置成在/var/mail/<owndomain.org>/<username>中存储电子邮件。对于每个域,我都有自己的passwd文件,其中dovecot应该查找用户名和密码。/var/mail/<owndomain.org>/passwd。
我创建了用于访问邮件和验证用户身份的virtualuser。我的dovecot配置是:在/etc/dovecot/dovecot.conf中,我在文件末尾添加了
userdb {
driver = passwd-file
args = username_format=%n /var/mail/%d/passwd
default_fields = uid=virtualmail gid=virtualmail home=/var/mail/%d/%n
}
passdb {
driver = passwd-file
args = username_format=%n /var/mail/%d/passwd
}passwd文件内容采用格式:
<username_without_domain>:{plain}test在/etc/dovecot/conf.d/10-auth.conf中,我设置了:
disable_plaintext_auth = no
auth_mechanisms = plain login在/etc/dovecot/conf.d/10-mail.conf中,我设置了:
mail_home = /var/mail/home/%d/%n
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%d/%n
mail_privileged_group = virtualmail现在的问题是:我正在使用telnet测试配置。POSTFIX接收电子邮件并存储它。没问题。当我尝试使用Telnet登录Dovecot IMAP时,我得到以下消息:
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH-LOGIN] Dovecot ready.
a login "username@owndomain.org" "test"
a NO [UNAVAILABLE] Internal error occured. Refer to server log for more information.我启用了详细日志记录,这是日志的输出:/var/log/dovecot.log有以下消息:
Nov 16 14:20:49 auth: Error: plain(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): user not found from any userdbs
Nov 16 14:20:49 imap: Error: Authenticated user not found from userdb, auth lookup id=684589057 (client-pid=9601 client-id=1)/var/log/dovecot-debug.log发出了这样的信息:
Nov 16 14:20:18 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
Nov 16 14:20:18 auth: Debug: Read auth token secret from /var/run/dovecot/auth-token-secret.dat
Nov 16 14:20:18 auth: Debug: auth client connected (pid=9601)
Nov 16 14:20:47 auth: Debug: client in: AUTH 1 PLAIN service=imap session=RF4llXaXisPAqAmD lip=192.168.2.2 rip=192.168.9.131 lport=143 rport=$
Nov 16 14:20:47 auth-worker(9603): Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
Nov 16 14:20:47 auth-worker(9603): Debug: pam(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup service=dovecot
Nov 16 14:20:47 auth-worker(9603): Debug: pam(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): #1/1 style=1 msg=Password:
Nov 16 14:20:49 auth: Debug: passwd-file /var/mail/owndomain.org/passwd: Read 2 users in 0 secs
Nov 16 14:20:49 auth: Debug: passwd-file(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup: user=username file=/var/mail/owndomain.org/passwd
Nov 16 14:20:49 auth: Debug: client passdb out: OK 1 user=username@owndomain.org
Nov 16 14:20:49 auth: Debug: master in: REQUEST 684589057 9601 1 a61dd67ee43390596ddf86e6c08db6f9 session_pid=9604 request_auth_token
Nov 16 14:20:49 auth-worker(9603): Debug: passwd(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup
Nov 16 14:20:49 auth: Debug: passwd-file(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup: user=username file=/var/mail/owndomain.org/passwd
Nov 16 14:20:49 auth: Debug: master userdb out: NOTFOUND 684589057我完全不知道是什么问题。因为似乎找到了密码,但用户却没有找到?在同一个passwd文件中查找密码和用户。我忘了做什么准备了吗?任何帮助都是非常感谢的!
发布于 2019-11-21 09:38:43
好的,我发现了问题。至少看起来是这样。
在passwd文件中,我使用了以下格式
username:{scheme}password但是,我没有为其余的空值添加双冒号,所以正确的格式应该是:
username:{scheme}password:::::问题解决了。
https://serverfault.com/questions/992108
复制相似问题