Postfix dovecot не может аутентифицироваться

Я работал с postfix/sasl/courrier-auth на Gentoo в течение многих лет. Я только что перешел на Debian 10 postfix/dovecot. Я не могу заставить его работать: Отправка почты в порядке, TLS в порядке. Но не могу пройти аутентификацию (SMTP 587, IMAP 993). Я не знаком с dovecot и не могу понять, что я упустил, потому что я не нашел ничего в журнале (ничего в auth.log, так что может быть связано с pam?) и я не могу найти никаких инструментов, чтобы просто проверить аутентификацию.

Вот файлы конфигурации, которые я обновил: master.cf:

 submission inet n       -       y       -       -       smtpd
      -o smtpd_tls_security_level=encrypt
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_sasl_type=dovecot
      -o smtpd_sasl_path=private/auth
      -o smtpd_sasl_security_options=noanonymous
      -o smtpd_sasl_local_domain=$myhostname
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
      -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
      -o smtpd_sender_restrictions=reject_sender_login_mismatch
      -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
...
dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient}

main.cf :

smtpd_use_tls=yes
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

(подключение к базе данных mysql в порядке)

dovecot-sql.conf.ext

driver = mysql
connect = host=127.0.0.1 dbname=***** user=****** password=******
password_query = SELECT username,domain,password FROM mailbox WHERE username='%u';
user_query = SELECT ('5000') as 'uid',('5000') as 'gid'

10-master.conf

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

auth-sql.conf.ext

userdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

Команда openssl s_client -connect 127.0.0.1:587 -starttls smtp работает. Я также могу использовать telnet на порту 587 и начать TLS сессию. Однако imap и smtp возвращают ошибку аутентификации. Пробовал из почтового клиента, и из telnet сессии кодируя user/pwd в base64. Заранее спасибо за любую подсказку.

0
задан 28 March 2021 в 21:33
1 ответ

Хорошо, это то, что я пропустил в dovecot.conf:

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

Я нашел его после включения отладки devcot в том же файле конфигурации:

auth_verbose = yes
auth_debug = yes

И для проверки аутентификации:

/usr/bin/doveadm auth login <user> <password>
1
ответ дан 24 April 2021 в 01:41

Теги

Похожие вопросы