Dovecot SMTPD Sasl 인증 오류: 치명적: SASL 인증 메커니즘 없음

Dovecot SMTPD Sasl 인증 오류: 치명적: SASL 인증 메커니즘 없음

나는 이 오류를 검색했지만 내가 읽거나 시도한 것은 아무것도 작동하지 않습니다. 누구든지 그것이 무엇인지 압니다.

오류 기록:

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

비둘기장/conf.d/10-master.conf:

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

Dovecot은 접미사로 제공됩니다.

[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.

인증 작동:

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

운영체제: Centos 6.4 Dovecot: 2.1.17 접미사: 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 = 개인/인증-- 하지만 SM에는 차이가 있습니다.tpD와 SM태평양 표준시디.

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
   }

관련 정보