Patrick Ben Koetter wrote:
> * JP <post...@postfix.exjay.com>:
>> i'll guess the solution to my problem will be something simple and
>> obvious, because i know i ain't the first person to do this, but i've
>> been staring at it for days and can't see what's wrong.
>>
>> os x snow leopard server; postfix 2.5.5; dovecot 1.1.17apple0.5
>>
>> trying to get SMTP auth working via SASL.  using a plain password
>> scheme and plain auth scheme over SSL.  client is apple mail.
>> deliveries are working, and dovecot's pop3s and imaps are working
>> just fine.  but when i attempt to use smtp auth, postfix says
>>
>> SASL plain authentication failed
>> unable to lookup user record
>
> Your Postfix uses Dovecot SASL. Have you tried to authenticate using a telnet
> session, sending AUTH identity on command line?
>
> p...@rick
>
>
>> scoured months worth of list archives and didn't see anything
>> specific to this.  other eyes are appreciated!  thanks.
>>
>> # postconf -n
>> biff = no
>> command_directory = /usr/sbin
>> config_directory = /etc/postfix
>> content_filter = smtp-amavis:[127.0.0.1]:10024
>> daemon_directory = /usr/libexec/postfix
>> debug_peer_level = 2
>> enable_server_options = yes
>> header_checks = pcre:/etc/postfix/custom_header_checks
>> html_directory = /usr/share/doc/postfix/html
>> inet_interfaces = all
>> mail_owner = _postfix
>> mailbox_size_limit = 0
>> mailbox_transport = dovecot
>> mailq_path = /usr/bin/mailq
>> manpage_directory = /usr/share/man
>> message_size_limit = 10485760
>> mydomain = example.com
>> mydomain_fallback = localhost
>> mynetworks = 127.0.0.0/8,192.168.61.0/24
>> newaliases_path = /usr/bin/newaliases
>> queue_directory = /private/var/spool/postfix
>> readme_directory = /usr/share/doc/postfix
>> recipient_delimiter = +
>> relayhost =
>> sample_directory = /usr/share/doc/postfix/examples
>> sendmail_path = /usr/sbin/sendmail
>> setgid_group = _postdrop
>> smtpd_client_restrictions = permit_mynetworks permit_sasl_authenticated
>> reject
>> smtpd_enforce_tls = no
>> smtpd_helo_required = yes
>> smtpd_helo_restrictions = reject_invalid_helo_hostname
>> reject_non_fqdn_helo_hostname
>> smtpd_pw_server_security_options = plain, login cram-md5
>> smtpd_recipient_restrictions = permit_sasl_authenticated
>> permit_mynetworks reject_unauth_destination check_policy_service
>> unix:private/policy reject
>> smtpd_sasl_auth_enable = yes
>> smtpd_sasl_path = private/auth
>> smtpd_sasl_type = dovecot
>> smtpd_tls_CAfile =
>> /etc/certificates/osx-106.example.com.E2FA6EFB8203E2E09C605D30A179669E4B4F69EB.chain.pem
>> smtpd_tls_cert_file =
>> /etc/certificates/osx-106.example.com.E2FA6EFB8203E2E09C605D30A179669E4B4F69EB.cert.pem
>> smtpd_tls_exclude_ciphers = SSLv2, aNULL, ADH, eNULL
>> smtpd_tls_key_file =
>> /etc/certificates/osx-106.example.com.E2FA6EFB8203E2E09C605D30A179669E4B4F69EB.key.pem
>> smtpd_use_pw_server = yes
>> smtpd_use_tls = yes
>> unknown_local_recipient_reject_code = 550
>> virtual_alias_maps =
>> virtual_gid_maps = static:5000
>> virtual_mailbox_base = /etc/postfix/datastore
>> virtual_mailbox_domains = osx.example.com
>> virtual_mailbox_maps = hash:/etc/postfix/datausers
>> virtual_minimum_uid = 100
>> virtual_uid_maps = static:5000
>>
>>
>>
>>
>> # dovecotd -n
>> # 1.1.17apple0.5: /private/etc/dovecot/dovecot.conf
>> Warning: fd limit 256 is lower than what Dovecot can use under full load
>> (more than 456). Either grow the limit or change
>> login_max_processes_count and max_mail_processes settings
>> # OS: Darwin 10.2.0 i386  hfs
>> base_dir: /var/run/dovecot
>> syslog_facility: local6
>> protocols: pop3s imaps
>> ssl_cert_file:
>> /etc/certificates/osx-106.example.com.E2FA6EFB8203E2E09C605D30A179669E4B4F69EB.cert.pem
>> ssl_key_file:
>> /etc/certificates/osx-106.example.com.E2FA6EFB8203E2E09C605D30A179669E4B4F69EB.key.pem
>> ssl_cipher_list: ALL:!LOW:!SSLv2:!aNULL:!ADH:!eNULL
>> disable_plaintext_auth: no
>> login_dir: /var/run/dovecot/login
>> login_executable(default): /usr/libexec/dovecot/imap-login
>> login_executable(imap): /usr/libexec/dovecot/imap-login
>> login_executable(pop3): /usr/libexec/dovecot/pop3-login
>> login_user: _dovecot
>> login_process_per_connection: no
>> max_mail_processes: 200
>> mail_max_userip_connections(default): 20
>> mail_max_userip_connections(imap): 20
>> mail_max_userip_connections(pop3): 10
>> verbose_proctitle: yes
>> first_valid_uid: 6
>> first_valid_gid: 6
>> mail_access_groups: mail
>> mail_location: maildir:/etc/postfix/datastore/%d/%n
>> mail_debug: yes
>> mail_executable(default): /usr/libexec/dovecot/imap
>> mail_executable(imap): /usr/libexec/dovecot/imap
>> mail_executable(pop3): /usr/libexec/dovecot/pop3
>> mail_process_sharing: full
>> mail_max_connections: 5
>> mail_plugins(default): quota imap_quota
>> mail_plugins(imap): quota imap_quota
>> mail_plugins(pop3): quota
>> mail_plugin_dir(default): /usr/lib/dovecot/imap
>> mail_plugin_dir(imap): /usr/lib/dovecot/imap
>> mail_plugin_dir(pop3): /usr/lib/dovecot/pop3
>> auth default:
>>   verbose: yes
>>   debug: yes
>>   debug_passwords: yes
>>   passdb:
>>     driver: passwd-file
>>     args: username_format=%n /etc/postfix/datastore/%d-passwd
>>   userdb:
>>     driver: passwd-file
>>     args: username_format=%n /etc/postfix/datastore/%d-passwd
>>   socket:
>>     type: listen
>>     client:
>>       path: /var/spool/postfix/private/auth
>>       mode: 432
>>       user: postfix
>>       group: postfix
>> plugin:
>>   quota_warning: storage=100%% /usr/libexec/dovecot/quota-exceeded.sh
>>   quota: maildir:User quota
>>   sieve: /var/spool/imap/dovecot/sieve-scripts/%u/dovecot.sieve
>>
>>> Your Postfix uses Dovecot SASL. Have you tried to authenticate using a telnet
>>> session, sending AUTH identity on command line?
>>>
>> Escape character is '^]'.
>> 220 osx-106.example.com ESMTP Postfix
>> EHLO foobie.example.com
>> 250-osx-106.example.com
>> 250-PIPELINING
>> 250-SIZE 10485760
>> 250-VRFY
>> 250-ETRN
>> 250-AUTH LOGIN PLAIN CRAM-MD5
>> 250-STARTTLS
>> 250-ENHANCEDSTATUSCODES
>> 250-8BITMIME
>> 250 DSN
>> AUTH PLAIN 1a1dc91c907325c69271ddf0c944bc72blahblahblah
>> 535 Error: authentication failed
>
> Postfix and Dovecot both use the Dovecot authentication methods.
> Dovecot works, Postfix doesn't. Where's the difference?
>
> What happens if you try an IMAP "login" on command line and send the same
> credentials?
>
> If you send the same credentials and it succeeds, then something between
> Postfix and the Dovecot auth socket is probably wrong.
>
> If IMAP login fails too, then you probably send the wrong credentials during
> SMTP AUTH and you should find out what is sent during IMAP login.
>
> p...@rick

yes, the imap login works.  i agree that it is obviously something
between postfix and dovecot, and that's where i'm stuck.

my configuration is the same simple config that is well documented on
both the postfix and dovecot sites.

as it should be, the socket is

srw-rw----  1 _postfix  _postfix  0 Dec  4 08:51
/var/spool/postfix/private/auth

lsof shows the socket is open by dovecot-auth (which is running as root):

dovecot-a 63614           root    5u     unix 0x0888b990       0t0
  /var/spool/postfix/private/auth

i haven't seen the socket opened by postfix. i'm assuming that that event is transient.

so both postfix and dovecot have read/write access to the socket.

the credentials sent are the same whether they're sent via a true mail client or via the command line. when sent via the command line, they're generated via perl -MMIME::Base64 -e 'print encode_base64("\0username\0password");'and i've verified they're correct via decode_base64

any other insight would be appreciated.  thanks.



Reply via email to