[Dovecot] multiple passdbs and auth sockets

2013-12-11 Thread Jouko Nikula
Hello,

I want to use different authentication arguments for smtp and imap/pop3.

In the dovecot list I found this:
http://www.dovecot.org/list/dovecot/2013-August/091960.html

I tried to follow these instructions but dovecot refuses to find the
auth executable:

Dec 12 10:36:18 jlaptop postfix/smtpd[7302]: connect from localhost[127.0.0.1]
Dec 12 10:36:18 jlaptop dovecot: auth-10: Error: doveconf: Fatal:
execvp(/usr/local/var/run/dovecot/dovecot/auth) failed: No such file
or directory
Dec 12 10:36:18 jlaptop dovecot: master: Error: service(auth-10):
command startup failed, throttling for 2 secs
Dec 12 10:36:18 jlaptop dovecot: auth-10: Fatal: master:
service(auth-10): child 7304 returned error 89 (Fatal failure)
Dec 12 10:36:18 jlaptop postfix/smtpd[7302]: fatal: no SASL
authentication mechanisms
Dec 12 10:36:19 jlaptop postfix/master[7046]: warning: process
/usr/lib/postfix/smtpd pid 7302 exit status 1
Dec 12 10:36:19 jlaptop postfix/master[7046]: warning:
/usr/lib/postfix/smtpd: bad command startup -- throttling

My settings for postfix and dovecot are as follows:

root@jlaptop:/usr/local/etc/dovecot/conf.d# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
default_transport = error
home_mailbox = Maildir/
inet_interfaces = loopback-only
mailbox_command =
mailbox_size_limit = 0
myhostname = jlaptop
mynetworks = 127.0.0.0/8 [:::127.0.0.0]/104 [::1]/128
queue_directory = /var/spool/postfix
readme_directory = no
recipient_delimiter = +
relay_transport = error
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated
defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth-10
smtpd_sasl_type = dovecot
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_gid_maps = static:8
virtual_mailbox_base = /var/mail/smtp
virtual_mailbox_domains = jlaptop.com
virtual_mailbox_maps = hash:/etc/postfix/vmaps
virtual_minimum_uid = 100
virtual_uid_maps = static:124


root@jlaptop:/usr/local/etc/dovecot/conf.d# doveconf -n
# 2.2.9: /usr/local/etc/dovecot/dovecot.conf
# OS: Linux 3.11.0-13-generic x86_64 Ubuntu 13.10
auth_debug = yes
auth_debug_passwords = yes
auth_verbose = yes
first_valid_uid = 124
mail_gid = mail
mail_home = /var/mail/imap/%n
mail_location = maildir:~/mail
mail_plugin_dir = /usr/local/lib/dovecot/
mail_plugins = gpgfuse_umount
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 = session=yes dovecot
  driver = pam
}
protocols = imap pop3 lmtp imap pop3
service auth-10 {
  executable = auth -c /usr/local/etc/dovecot-auth-smtp.conf
  process_limit = 1
  unix_listener /var/spool/postfix/private/auth-10 {
group = postfix
mode = 0666
user = postfix
  }
}
ssl_cert = /etc/dovecot/dovecot.pem
ssl_key = /etc/dovecot/private/dovecot.pem
userdb {
  args = uid=vmail gid=mail home=/var/mail/imap/%n
  driver = static
}


The file /usr/local/etc/dovecot-auth-smtp.conf is as follows:

auth_mechanisms = plain login
disable_plaintext_auth = no
#auth_username_format = %Lu
auth_debug = yes
auth_debug_passwords = yes
auth_verbose = yes
first_valid_uid = 124
mail_gid = mail
mail_uid = vmail
protocols = imap pop3 lmtp imap pop3
ssl_cert = /etc/dovecot/dovecot.pem
ssl_key = /etc/dovecot/private/dovecot.pem

passdb {
  driver = pam
  args = dovecot
}

userdb {
  driver = static
  args = uid=vmail gid=mail home=/var/mail/imap/%n
}

The result is exactly the same also if I don't give the path to auth. I.e.:
executable = auth -c /usr/local/etc/dovecot-auth-smtp.conf


In order to get past this problem I provided the auth executable in
/usr/local/var/run/dovecot/dovecot/auth, but then I get a new problem:

Dec 12 12:31:53 jlaptop postfix/smtpd[9220]: connect from localhost[127.0.0.1]
Dec 12 12:31:53 jlaptop dovecot: auth-10: Error: Debug: Loading
modules from directory: /usr/local/lib/dovecot/auth
Dec 12 12:31:53 jlaptop dovecot: auth-10: Error: Debug: Read auth
token secret from /usr/local/var/run/dovecot/auth-token-secret.dat
Dec 12 12:32:03 jlaptop postfix/smtpd[9220]: fatal: no SASL
authentication mechanisms
Dec 12 12:32:04 jlaptop postfix/master[8842]: warning: process
/usr/lib/postfix/smtpd pid 9220 exit status 1
Dec 12 12:32:04 jlaptop postfix/master[8842]: warning:
/usr/lib/postfix/smtpd: bad command startup -- throttling

My test client is thunderbird with smtp connection security None and
 Authentication 

Re: [Dovecot] multiple passdbs and auth sockets

2013-08-12 Thread Timo Sirainen
On 8.8.2013, at 18.53, Marco d'Itri m...@linux.it wrote:

 I have a few systems which run dovecot 1.x as the authentication backend 
 for Postfix, with multiple auth { } sections like this one, each one 
 with a different passdb and its own socket:
 
 auth ldap-10 {
  passdb ldap {
args = /etc/dovecot/dovecot-ldap-10.conf
   }
  socket listen {
client {
  path = /var/spool/postfix/private/auth-10
  mode = 0666
}
  }
 }
 
 I need multiple sockets tied to multiple dbs because there are duplicated 
 accounts, but after switching to dovecot 2.1.7 apparently *all* passdbs 
 are checked and dovecot reports this message:
 
 Warning: Obsolete setting in /etc/dovecot/conf.d/auth-local.conf.ext:91: add 
 auth_ prefix to all settings inside auth {} and remove the auth {} section 
 completely
 
 doveconf shows that all my custom sockets are now part of a single 
 service auth { } section, while all the passdbs appear at the top 
 level.
 
 How can I update my configuration for dovecot 2.x?

I didn't think there was any point in having multiple auth {} sections the way 
they worked in v1.x, but looks like you've managed to find one way to use them. 
I'm not sure if it's possible to convert them to v2.x configuration currently. 
You could try this though:

service auth-10 {
  executable = auth -c /etc/dovecot-auth-10.conf
  unix_listener /var/spool/postfix/private/auth-10 {
mode = 0666
  }
  process_limit = 1
}

So the master process would be starting multiple auth processes, each reading 
their own (passdb) configuration from a different config file.



[Dovecot] multiple passdbs and auth sockets

2013-08-08 Thread Marco d'Itri
I have a few systems which run dovecot 1.x as the authentication backend 
for Postfix, with multiple auth { } sections like this one, each one 
with a different passdb and its own socket:

auth ldap-10 {
  passdb ldap {
args = /etc/dovecot/dovecot-ldap-10.conf
   }
  socket listen {
client {
  path = /var/spool/postfix/private/auth-10
  mode = 0666
}
  }
}

I need multiple sockets tied to multiple dbs because there are duplicated 
accounts, but after switching to dovecot 2.1.7 apparently *all* passdbs 
are checked and dovecot reports this message:

Warning: Obsolete setting in /etc/dovecot/conf.d/auth-local.conf.ext:91: add 
auth_ prefix to all settings inside auth {} and remove the auth {} section 
completely

doveconf shows that all my custom sockets are now part of a single 
service auth { } section, while all the passdbs appear at the top 
level.

How can I update my configuration for dovecot 2.x?

-- 
ciao,
Marco