[Dovecot] Dovecot-2.0 conf misc questions
Hello,
I'm setting up a dovecot-2.0.beta6 install and I'm experiencing the following issues/questions :
- Converting the config file
/usr/local/dovecot-2/bin/doveconf -n -c /usr/local/dovecot-1.2.12/etc/dovecot.conf :
[...] doveconf: Fatal: Error in configuration file /usr/local/dovecot-1.2.12/etc/dovecot.conf line 176: Unknown setting: process_limit
but
# grep -i process_limit /usr/local/dovecot-1.2.12/etc/dovecot.conf #
Well, it doesn't bother me much since I made the dovecot-2 conf from scratch anyway.
- Changing the process limit
In 10-master.conf, I changed 'service imap''s 'process_limit' from 1024 to 4096 which caused :
Warning: service auth { client_limit=4096 } is lower than required under max. load (5320)
Where does the 5320 come from ?
- The =
Is there anything to know about this new syntax other than files are introduced by "<" ?
- The "filter" hierarchy
My understanding is that protocol, remote, local must be specified in the following order
protocol name {
remote
and that for a match in several blocks, the more specific wins.
but it's not clear to me where they are valid and if we can negate (with a ! for instance) an argument.
For instance, I want to implement the typical case of "let clients from the inside network perform a plain auth over a clear connection, require SSL before auth for the outside network clients".
For that, I want to put
remote <internal network address> { disable_plaintext_auth = no }
in 10-auth.conf
and let the 'disable_plaintext_auth = yes' in dovecot.conf
But :
. why is this default not in 10-auth.conf file ? . would I have been allowed to do, for instance, in that file at the same line
protocol imap {
remote <internal network address> {
disable_plaintext_auth = no
}
?
. would I have been allowed to do, for instance, in that file at the same line
protocol ! imap ...
or remote ! <some address>
?
Besides, if I set ssl=required, do I still need disable_plaintext_auth = yes ?
- auth unix listner
Default is the unix socket 'auth-userdb'. Which processes communicate through this one ? Does that mean the the auth process is not the process which performs the actual passdb/userdb lookup ? In that case what is the 'userdb process' ?
Same question : what is the auth-client socket used for ?
Finally, would it make sense to declare other auth listeners than the two listed by default in the 10-master.conf file ?
-- Thomas Hummel | Institut Pasteur hummel@pasteur.fr | Pôle informatique - systèmes et réseau
On Wed, 2010-06-23 at 16:54 +0200, Thomas Hummel wrote:
Hello,
I'm setting up a dovecot-2.0.beta6 install and I'm experiencing the following issues/questions :
- Converting the config file
/usr/local/dovecot-2/bin/doveconf -n -c /usr/local/dovecot-1.2.12/etc/dovecot.conf :
[...] doveconf: Fatal: Error in configuration file /usr/local/dovecot-1.2.12/etc/dovecot.conf line 176: Unknown setting: process_limit
This was caused by the old settings translator. What was in line 176? Did you have managesieve installed for v1.2?
- Changing the process limit
In 10-master.conf, I changed 'service imap''s 'process_limit' from 1024 to 4096 which caused :
Warning: service auth { client_limit=4096 } is lower than required under max. load (5320)
Where does the 5320 come from ?
imap process_limit + pop3 process_limit + whatever other protocols you have enabled and + their process_limit.
- The =
Is there anything to know about this new syntax other than files are introduced by "<" ?
Nope. Well, if you don't want to use files, you can also do:
ssl_cert = ----- BEGIN CERTIFICATE -----
line2
line3
etc.
- The "filter" hierarchy
My understanding is that protocol, remote, local must be specified in the following order
protocol name { remote
{ local {
I think remote is under local, but you'll anyway get an error message if you try the wrong order.
and that for a match in several blocks, the more specific wins.
Yeah.
but it's not clear to me where they are valid
Almost everywhere, except where they don't make sense anyway. Currently auth settings don't support local/remote blocks, but that should get fixed some day.
and if we can negate (with a ! for instance) an argument.
protocol !imap { }
works. But local/remote doesn't support it.
For instance, I want to implement the typical case of "let clients from the inside network perform a plain auth over a clear connection, require SSL before auth for the outside network clients".
For that, I want to put
remote <internal network address> { disable_plaintext_auth = no }
in 10-auth.conf
and let the 'disable_plaintext_auth = yes' in dovecot.conf
That should work.
But :
. why is this default not in 10-auth.conf file ?
You mean why isn't there an example remote {} block there? Disabling plaintext auth even for internal network isn't such a great idea..
. would I have been allowed to do, for instance, in that file at the same line
protocol imap { remote <internal network address> { disable_plaintext_auth = no }
?
Yes.
. would I have been allowed to do, for instance, in that file at the same line
protocol ! imap ...
yes.
or remote ! <some address>
no.
Besides, if I set ssl=required, do I still need disable_plaintext_auth = yes ?
If you only use plaintext authentication mechanisms (which people usually do), the ssl=required and disable_plaintext_auth=yes are equivalent. The difference comes only if you use e.g. CRAM-MD5 etc.
- auth unix listner
Default is the unix socket 'auth-userdb'. Which processes communicate through this one ?
- dovecot-lda
- imap, when using shared mailboxes and referring to other users' mails via their home directory
- doveadm user .. maybe others..
Does that mean the the auth process is not the process which performs the actual passdb/userdb lookup ?
No. It's a "userdb client" socket.
Same question : what is the auth-client socket used for ?
For authentication ("is this user+pass correct?"), usually used by MTAs for SMTP AUTH.
Finally, would it make sense to declare other auth listeners than the two listed by default in the 10-master.conf file ?
The defaults also have one example auth(-client) socket commented out for Postfix. You can create more of them if you want, but unless something actually uses them they're a bit pointless.
On Wed, Jun 23, 2010 at 04:40:35PM +0100, Timo Sirainen wrote:
Hello Timo,
doveconf: Fatal: Error in configuration file /usr/local/dovecot-1.2.12/etc/dovecot.conf line 176: Unknown setting: process_limit
This was caused by the old settings translator. What was in line 176?
login_max_processes_count = 1024
Did you have managesieve installed for v1.2?
No.
imap process_limit + pop3 process_limit + whatever other protocols you have enabled and + their process_limit.
Ok. Can you explain what are :
#default_process_limit = 100 -> which processes ? #default_client_limit = 1000 -> 1 client == 1 remote ip ? #default_vsz_limit = 256M -> ?
Is there anything to know about this new syntax other than files are introduced by "<" ?
Nope. Well, if you don't want to use files, you can also do:
No,no. I just thought it may have something to do with the mode the file would be/should be opened.
. why is this default not in 10-auth.conf file ?
You mean why isn't there an example remote {} block there?
No. I mean, why isn't the 'disable_plaintext_auth' directive not in the auth.conf file, since it's an auth related directive ?
. would I have been allowed to do, for instance, in that file at the same line
protocol imap { remote <internal network address> { disable_plaintext_auth = no }
?
Yes.
But didn't you just say that "Currently auth settings don't support local/remote blocks" ?
Finally, would it make sense to declare other auth listeners than the two listed by default in the 10-master.conf file ?
The defaults also have one example auth(-client) socket commented out for Postfix. You can create more of them if you want, but unless something actually uses them they're a bit pointless.
Ok, maybe I meant "the auth-userdb" unix listener is mandatory" : is it ?
Thanks.
-- Thomas Hummel | Institut Pasteur hummel@pasteur.fr | Pôle informatique - systèmes et réseau
On Wed, 2010-06-23 at 18:57 +0200, Thomas Hummel wrote:
On Wed, Jun 23, 2010 at 04:40:35PM +0100, Timo Sirainen wrote:
Hello Timo,
doveconf: Fatal: Error in configuration file /usr/local/dovecot-1.2.12/etc/dovecot.conf line 176: Unknown setting: process_limit
This was caused by the old settings translator. What was in line 176?
login_max_processes_count = 1024
That alone doesn't break it with my tests. Could you send me the entire config file so I could get this fixed?
imap process_limit + pop3 process_limit + whatever other protocols you have enabled and + their process_limit.
Ok. Can you explain what are :
#default_process_limit = 100 -> which processes ? #default_client_limit = 1000 -> 1 client == 1 remote ip ? #default_vsz_limit = 256M -> ?
These are all defaults for service {} blocks. Some services override them, most keep the defaults. So:
default_process_limit: Nearly all processes of same type.
default_client_limit: This is mainly for non-imap/pop3 processes, since they have overridden it. 1 client = 1 connection, usually from another Dovecot process.
default_vsz_limit: This is the default for almost all processes. If the processes' VSZ memory area grows beyond that, kernel kills it.
You're not normally supposed to change or really even understand those :) I've added a few checks where Dovecot complains if the limits aren't right. If they're too low, you'll get an error message explaining it. In that case you could also report it to me and I'll see if I can add an early warning for that.
. why is this default not in 10-auth.conf file ?
You mean why isn't there an example remote {} block there?
No. I mean, why isn't the 'disable_plaintext_auth' directive not in the auth.conf file, since it's an auth related directive ?
Oh. Yeah, I guess it is. Moved: http://hg.dovecot.org/dovecot-2.0/rev/5326d6b2f36e
. would I have been allowed to do, for instance, in that file at the same line
protocol imap { remote <internal network address> { disable_plaintext_auth = no }
?
Yes.
But didn't you just say that "Currently auth settings don't support local/remote blocks" ?
disable_plaintext_auth isn't really "auth setting" :) It's handled by login processes, not auth processes. That's also why I didn't think of putting it into auth.conf first.
Finally, would it make sense to declare other auth listeners than the two listed by default in the 10-master.conf file ?
The defaults also have one example auth(-client) socket commented out for Postfix. You can create more of them if you want, but unless something actually uses them they're a bit pointless.
Ok, maybe I meant "the auth-userdb" unix listener is mandatory" : is it ?
It's not mandatory if you don't use anything that needs it (dovecot-lda, some doveadm commands, etc).
On Fri, Jun 25, 2010 at 09:06:53PM +0100, Timo Sirainen wrote:
This was caused by the old settings translator. What was in line 176?
login_max_processes_count = 1024
That alone doesn't break it with my tests. Could you send me the entire config file so I could get this fixed?
Here it is as an attachment.
default_client_limit: This is mainly for non-imap/pop3 processes, since they have overridden it. 1 client = 1 connection, usually from another Dovecot process.
You mean internal dovecot processes other than master/login/auth/pop3/imap ?
-- Thomas Hummel | Institut Pasteur hummel@pasteur.fr | Pôle informatique - systèmes et réseau
participants (2)
-
Thomas Hummel
-
Timo Sirainen