Dovecot SMTPD Sasl 身份验证错误:致命:没有 SASL 身份验证机制

Dovecot SMTPD Sasl 身份验证错误:致命:没有 SASL 身份验证机制

我已经在 Google 上搜索过这个错误,但我读过或尝试过的方法都不起作用 - 有人知道这是什么吗

错误日志:

Feb 23 22:35:36 localhost postfix/smtpd[5278]: connect from localhost.localdomain[127.0.0.1]
Feb 23 22:35:36 localhost postfix/smtpd[5278]: warning: SASL: Connect to smtpd failed: No such file or directory
Feb 23 22:35:36 localhost postfix/smtpd[5278]: fatal: no SASL authentication mechanisms
Feb 23 22:35:37 localhost postfix/master[5214]: warning: process /usr/libexec/postfix/smtpd pid 5278 exit status 1
Feb 23 22:35:37 localhost postfix/master[5214]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling

postfix/main.cf:

queue_directory = /var/spool/postfix
smtpd_sasl_type = dovecot
smptd_sasl_path = private/auth
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes

dovecot/conf.d/10-master.conf:

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

Dovecot 在 postfix 中可用:

[root@localhost ~]# postconf -a
cyrus
dovecot

插座:

[root@localhost conf.d]# ls -l /var/spool/postfix/private/auth
srw-rw-rw-. 1 postfix postfix 0 Feb 23 22:46 /var/spool/postfix/private/auth

Telnet 立即超时:

[root@localhost ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

Auth 作品:

[root@localhost ~]# doveadm auth adrian
Password:
passdb: adrian auth succeeded
extra fields:
  user=adrian

操作系统:Centos 6.4 Dovecot:2.1.17 Postfix:2.6.6

编辑postconf -n的结果:

[root@localhost ~]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = 192.168.124.0/24 168.100.189.0/28, 127.0.0.0/8
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relay_domains = hash:/etc/postfix/relay_domains
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_recipient_restrictions = permit_mynetworks        permit_sasl_authenticated        reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_type = dovecot
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550

答案1

smtpd_sasl_path如你所见,我们的输出中没有postconf -n

为什么?答案很简单。因为没有smtpd_sasl_path设置。看看你的第一个片段:里面有一个拼写错误。你写道smptd_sasl_path = private/auth——但 sm 之间是有区别的d 和 smd.

由于 Postfix 没有关于在哪里找到套接字的信息,因此 Postfix 声称“连接失败”。

修复它它就会工作。:-)

最后:下次请记住:postconf -n仔细阅读并确保 Postfix 具有您认为 Postfix 应该具有的相同信息,这始终是查找故障的重要步骤。

答案2

遇到了同样的错误,但问题不同。

必须编辑/etc/dovecot/conf.d/10-master.conf并取消注释unix_listener并添加usergroup行。

service auth {
   unix_listener /var/spool/postfix/private/auth {
      mode = 0660
      user = postfix
      group = postfix
   }

相关内容