……这在标题中难以描述.此描述应突出显示该问题.
上下文
>我按照Workaround.org tutorial安装了一个postfix,dovecot(以及一些额外的插件)堆栈.
>在Ubuntu 12.04计算机上运行(具有Vagrant / Chef的VM)
> Dovecot v2.0.19
> Postfix v2.9.6
CONF.档
10主
.... service auth { unix_listener auth-userdb { mode = 0644 user = vmail group = vmail } ...
编辑 – 附加配置信息(一些重叠)
service auth { # auth_socket_path points to this userdb socket by default. It's typically # used by dovecot-lda,doveadm,possibly imap process,etc. Its default # permissions make it readable only by root,but you may need to relax these # permissions. Users that have access to this socket are able to get a list # of all usernames and get results of everyone's userdb lookups. unix_listener auth-userdb { mode = 0644 user = vmail group = vmail } # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } # Auth process is run as this user. #user = $default_internal_user user = dovecot }
AUTH-sql
userdb { driver = static args = uid=vmail gid=vmail home=/var/vmail/%d/%n allow_all_users=yes }
ls -la / var / run / dovecot / auth-userdb
srw-r--r-- 1 vmail vmail 0 Jun 20 13:04 /var/run/dovecot/auth-userdb
Postfix master.cf
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -d ${recipient}
问题
我非常仔细地遵循了教程,仅更改了一些小问题.
我到达了“测试邮件传递”并运行了echo test | mail test@chefdovecot.com
由于发现/ var / vmail没有显示任何内容,因此邮件未到达.
在服务器syslog中,存在以下错误:
postfix/pickup[16842]: 019023A06AB: uid=1000 from=<vagrant> postfix/cleanup[19542]: 019023A06AB: message-id= <20130620140358.019023A06AB@mail-server-berkshelf> postfix/qmgr[16843]: 019023A06AB: from=<vagrant@mail-server-berkshelf.localdomain>,size=382,nrcpt=1 (queue active) dovecot: lda: Debug: Loading modules from directory: /usr/lib/dovecot/modules dovecot: lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib90_sieve_plugin.so dovecot: lda: Error: userdb lookup: connect(/var/run/dovecot/auth-userdb) Failed: Connection refused dovecot: lda: Fatal: Internal error occurred. Refer to server log for more information. postfix/pipe[19545]: 019023A06AB: to=<test@chefdovecot.com>,relay=dovecot,delay=1.2,delays=0.04/0.01/0/1.1,dsn=4.3.0,status=deferred (temporary failure)
“连接被拒绝”错误应该是我正在攻击的错误,对吧?我在很多地方搜索过,以了解这里发生了什么,但没有发现任何有用的东西.
任何人都可以提供任何线索或见解吗?解决方案会很棒,但我很乐意接受一些新的想法来尝试.
连接拒绝错误确实是问题所在.在unix套接字上拒绝连接并不是非常直观,但它表明套接字上没有任何内容(通常,进程已经死了,或者作为地址给出的文件根本不是套接字).这绝不应该是权限问题,除非dovecot由于权限而无法打开套接字进行侦听.
尝试停止dovecot和postfix,删除/ var / run / dovecot / auth-userdb中的套接字文件,然后再次启动postfix和dovecot(确保用户dovecot正在运行,因为它具有/ var / run / dovecot的权限).通常这将解决此类问题.
Netstat还将显示unix域套接字.检查其输出(使用netstat -nvlap | less并搜索路径或dovecot)以确保dovecot正在侦听.