Dovecot Director Proxy (Error: lmtp-server: conn Failed to initialize user: Namespace '': Mail storage autodetection failed with home=(not set))
dovecot --version 2.3.21 (47349e2482)
I have Postfix and two dovecot directors I am trying to setup them as proxy in front of two dovecot backends, I am using openldap, when I set
passdb {
driver = static
args = proxy=y nopassword=y
}
it is working fine. but If I try to authenticate on the proxy I get this error: lmtp(22086): Error: lmtp-server: conn [3]: rcpt : Failed to initialize user: Namespace '': Mail storage autodetection failed with home=(not set)
here is my openldap file /etc/dovecot/dovecot-openldap-proxy.conf.ext:
uris = ldaps:// dn = CN=,OU=,DC=,dc= dnpass = debug_level = 0 auth_bind = yes ldap_version = 3 base = OU=,DC=,dc= scope = subtree user_attrs = mail=user pass_attrs = userPassword=password pass_filter = (&(objectClass=person)(mail=%u))
dovecot -n on the director side:
# 2.3.21 (47349e2482): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.21 (f6cd4b8e) # OS: Linux 6.8.0-1018-aws x86_64 Ubuntu 24.04.1 LTS # Hostname: stg-vm-dir01 auth_debug = yes auth_mechanisms = plain login auth_socket_path = director-userdb auth_verbose = yes director_mail_servers = 10.100.10.15 10.100.15.16 director_servers = 10.100.15.201 10.100.15.202 info_log_path = /var/log/dovecot.log listen = * lmtp_proxy = yes log_path = /var/log/dovecot.log mail_gid = vmail mail_privileged_group = mail mail_uid = vmail namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = /etc/dovecot/dovecot-openldap-proxy.conf.ext driver = ldap } protocols = imap pop3 lmtp service director { fifo_listener login/proxy-notify { mode = 0600 user = $default_login_user } inet_listener { port = 9090 } unix_listener director-admin { mode = 0600 } unix_listener director-userdb { mode = 0600 } unix_listener login/director { mode = 0666 } } service imap-login { executable = imap-login director inet_listener imap { port = 0 } inet_listener imaps { port = 993 ssl = yes } } service ipc { unix_listener ipc { user = dovecot } } service lmtp { inet_listener lmtp { port = 24 } } service pop3-login { executable = pop3-login director inet_listener pop3 { port = 0 } inet_listener pop3s { port = 995 ssl = yes } } service submission-login { inet_listener submission { port = 587 } } ssl_cert = </etc/dovecot/ssl/fullchain.pem ssl_client_ca_dir = /etc/ssl/certs ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it protocol lmtp { auth_socket_path = director-userdb }
On 20/11/2024 19:28 EET abdelhaq.jalboush--- via dovecot <dovecot@dovecot.org> wrote:
dovecot --version 2.3.21 (47349e2482)
I have Postfix and two dovecot directors I am trying to setup them as proxy in front of two dovecot backends, I am using openldap, when I set
passdb { driver = static args = proxy=y nopassword=y }it is working fine. but If I try to authenticate on the proxy I get this error: lmtp(22086): Error: lmtp-server: conn [3]: rcpt : Failed to initialize user: Namespace '': Mail storage autodetection failed with home=(not set)
here is my openldap file /etc/dovecot/dovecot-openldap-proxy.conf.ext:
uris = ldaps:// dn = CN=,OU=,DC=,dc= dnpass = debug_level = 0 auth_bind = yes ldap_version = 3 base = OU=,DC=,dc= scope = subtree user_attrs = mail=user pass_attrs = userPassword=password
add ,=proxy=y here (yes, the syntax is correct)
Aki
Do you mean in the /etc/dovecot/dovecot-openldap-proxy.conf.ext to add =proxy=y? but I do not have this attribute in my openldap server.
when using this passdb on the director side, I need to authenticate before sending to the backend, so where to tell the director to proxy not to try to deliver locally
passdb {
driver = ldap args = /etc/dovecot/dovecot-openldap-proxy.conf.ext }
On 20/11/2024 20:55 EET abdelhaq.jalboush--- via dovecot <dovecot@dovecot.org> wrote:
Do you mean in the /etc/dovecot/dovecot-openldap-proxy.conf.ext to add =proxy=y? but I do not have this attribute in my openldap server.
when using this passdb on the director side, I need to authenticate before sending to the backend, so where to tell the director to proxy not to try to deliver locally
passdb {
driver = ldap args = /etc/dovecot/dovecot-openldap-proxy.conf.ext }
I am aware you do not have proxy attribute.
Just add ,=proxy=y
this adds static field proxy=y to the response.
Alternatively you can add to your passdb block
default_fields = proxy=y
Aki
Thank you very much I added this to the passdb block and it worked fine, I appreciate your reply :
default_fields = proxy=y
participants (2)
-
abdelhaq.jalboush@gmail.com
-
Aki Tuomi