Hello,
I am trying to switch from LDA to LMTP on a Postfix/Dovecot setup, but
something is going wrong.
I have followed the directions at:
https://wiki.dovecot.org/HowTo/PostfixDovecotLMTP
Here is a session from dovecot.log:
Aug 4 12:19:42 vmail2 dovecot: lmtp(3152): Connect from local
Aug 4 12:19:42 vmail2 dovecot: auth: ldap(imaptester at noa.gr): unknown user
Aug 4 12:19:42 vmail2 dovecot: lmtp(3152): Disconnect from local:
Successful quit
Aug 4 12:19:42 vmail2 dovecot: lmtp(3152): Connect from local
Aug 4 12:19:42 vmail2 dovecot: auth: ldap(nmilas at noa.gr): unknown user
Aug 4 12:19:42 vmail2 dovecot: lmtp(3152): Disconnect from local:
Successful quit
Aug 4 12:19:42 vmail2 dovecot: imap(nmilas): save: box=Sent, uid=31,
msgid=<c84ae059-854d-12bc-6aa2-9099cc2977b2 at noa.gr>, size=445,
vsize=459, from=Nikolaos Milas <nmilas at noa.gr>, subject=Test (12) -
vmail2, flags=(\Seen)
What is going wrong?
It seems authentication is not working correctly with this setup. If
understand right, dovecot is querying ldap with the whole mail address
and not with the local part only (which is the username), as I would expect.
What is the suggested course of action?
With LDA it was working fine; here is a sample log entry:
Aug 4 12:02:51 vmail2 dovecot: lda(imaptester): sieve:
msgid=<768b056c-1d12-c9bd-0864-c3fc6a6dbeda at noa.gr>: stored mail into
mailbox 'INBOX'
Aug 4 12:02:51 vmail2 dovecot: imap(nmilas): save: box=Sent, uid=30,
msgid=<768b056c-1d12-c9bd-0864-c3fc6a6dbeda at noa.gr>, size=445,
vsize=459, from=Nikolaos Milas <nmilas at noa.gr>, subject=Test (11) -
vmail2, flags=(\Seen)
Aug 4 12:02:51 vmail2 dovecot: imap(nmilas): Connection closed (noop
finished 0.372 secs ago) in=628 out=2145
Please help me to figure out how things should be.
The config file follows:
----------------------------- CONFIG START --------------------------------
protocols = imap pop3 sieve lmtp
login_greeting = NOA POP/IMAP Srv XAPITI XPICTOY
mail_location = maildir:~/Maildir/
mail_gid = 500
mail_uid = 500
auth_mechanisms = plain login
auth_username_format = %Lu
auth_verbose = yes
auth_debug = no
mail_debug = no
disable_plaintext_auth = no
mail_plugins = quota mail_log notify
protocol imap {
imap_client_workarounds = "delay-newmail"
mail_plugins = quota imap_quota mail_log notify
mail_max_userip_connections = 400
}
protocol pop3 {
mail_max_userip_connections = 3
mail_plugins = quota notify
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
info_log_path log_path mail_plugins = quota notify sieve
postmaster_address = sysadmin at noa.gr
sendmail_path = /usr/lib/sendmail
}
protocol lmtp {
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = sysadmin at noa.gr
mail_plugins = quota notify sieve
sendmail_path = /usr/lib/sendmail
}
protocol sieve {
managesieve_max_line_length = 65536
mail_max_userip_connections = 10
managesieve_logout_format = bytes=%i/%o
managesieve_max_compile_errors = 10
}
userdb {
args = /etc/dovecot/dovecot-usrdb-ldap.conf
driver = ldap
}
passdb {
args = /etc/dovecot/dovecot-passdb-ldap.conf
driver = ldap
}
plugin {
mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename flag_change save mailbox_create
mail_log_fields = uid box msgid size flags vsize from subject
}
plugin {
quota = maildir:User quota
quota_rule = *:storage=5G
quota_rule2 = Trash:storage=+3%%
quota_warning = storage=75%% quota-warning 75 %u
quota_warning2 = storage=90%% quota-warning 90 %u
}
plugin {
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_max_script_size = 0
sieve_max_actions = 0
sieve_max_redirects = 1
}
service quota-warning {
executable = script /opt/mail1.sh
user = vmail
unix_listener quota-warning {
user = vmail
}
}
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-master {
group = vmail
mode = 0660
user = vmail
}
user = root
}
service imap-login {
service_count = 1
vsz_limit = 64 M
process_limit = 500
process_min_avail = 2
}
service pop3-login {
service_count = 1
vsz_limit = 64 M
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 1
process_min_avail = 0
vsz_limit = 64M
}
service managesieve {
process_limit = 1024
}
service imap {
executable = imap postlogin
process_limit = 2048
}
service pop3 {
executable = pop3 postlogin
}
service postlogin {
executable = script-login -d rawlog
unix_listener postlogin {
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
}
ssl_ca = </etc/pki/tls/certs/DigiCertCA.crt
ssl_cert = </etc/pki/tls/certs/star_noa_gr-1243437.crt
ssl_key = </etc/pki/tls/private/star_noa_gr-1243437.key
ssl_protocols = !SSLv2 !SSLv3
syslog_facility = local1
----------------------------- CONFIG END --------------------------------
FILE: /etc/dovecot/dovecot-usrdb-ldap.conf
hosts = localhost
tls = no
base = ou=people, dc=noa, dc=gr
scope = onelevel
ldap_version = 3
dn = uid=auth,ou=Sys,dc=noa,dc=gr
dnpass = secret
auth_bind = yes
user_filter = (uid=%u)
pass_filter = (uid=%u)
pass_attrs = uid=user,userPassword=password
auth_bind_userdn = uid=%u,ou=people,dc=noa,dc=gr
user_attrs = roomNumber=quota_rule=*:bytes=%$,uid=home=/home/vmail/%u
iterate_filter = (objectClass=*)
----------------------------------------------------------------------------------------
Thanks in advance,
Nick