Headsup on feature removal

Alessio Cecchi alessio at skye.it
Wed Mar 18 23:55:59 EET 2020


Hi Aki and Remo,

switch from vpopmail driver to SQL driver (if you are using vpopmail 
with mysql as backend) is very simple.

First you need to setup the right query for vpopmail database:

# cat /etc/dovecot/dovecot-sql.conf.ext

### Vpopmail
driver = mysql
connect = host=192.168.1.2 dbname=vpopmail user=vpopmail password=Vp0pM4iL
default_pass_scheme = MD5-CRYPT

### Query to get a list of all usernames.
iterate_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user FROM vpopmail

### user_query for vpopmail
user_query = SELECT pw_dir AS home, 89 AS uid, 89 AS gid, 
concat('*:backend=', pw_shell) AS quota_rule FROM vpopmail WHERE pw_name 
= '%n' AND pw_domain = '%d'

### password_query for vpopmail (not used)
#password_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user, 
pw_passwd AS password FROM vpopmail WHERE pw_name = '%n' AND pw_domain = 
'%d'

### password_query for vpopmail with prefetch
password_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user, 
pw_passwd AS password, concat('*:backend=', pw_shell) as 
userdb_quota_rule, 89 AS userdb_uid, 89 AS userdb_gid, pw_dir AS 
userdb_home FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d'

after to setup auth-sql like this:

# cat /etc/dovecot/conf.d/auth-sql.conf.ext

passdb {
   driver = sql
   args = /etc/dovecot/dovecot-sql.conf.ext
}

userdb {
   driver = prefetch
}

userdb {
   driver = sql
   args = /etc/dovecot/dovecot-sql.conf.ext
}

and after to swith from auth-vpopmail to auth-sql from 
/etc/dovecot/conf.d/10-auth.conf

You can also setup Dovecot in order to apply vpopmail 
POP/IMAP/SMTP/Webmail gids/domains limits for example with a password 
query more complicated like this:

password_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user, 
pw_passwd AS password, concat('*:backend=', pw_shell) as 
userdb_quota_rule, 89 AS userdb_uid, 89 AS userdb_gid, pw_dir AS 
userdb_home FROM vpopmail LEFT JOIN limits ON vpopmail.pw_domain = 
limits.domain WHERE pw_name = '%n' AND pw_domain='%d' AND (( '%s' = 
'smtp' AND (pw_gid & 2048)<>2048 AND COALESCE(disable_smtp,0)!=1) OR 
('%s' = 'pop3' AND (pw_gid & 2)<>2 AND COALESCE(disable_pop,0) != 1 ) OR 
('%s' = 'imap' AND ('%r'='192.168.100.1' OR '%r'='192.168.100.2') AND 
(pw_gid & 4)<>4 AND COALESCE(disable_webmail,0)!=1) OR ('%s' = 'imap' 
AND ('%r'!='192.168.100.1' AND '%r'!='192.168.100.2') AND (pw_gid & 
8)<>8 AND COALESCE(disable_imap,0)!=1));

where 192.168.100.1 and 192.168.100.2 are the IPs of your webmail servers.

For a more beautifull setup and to show in dovecot logs "user disabled" 
instead of "password error" you can put this password_query under the 
dovecot auth-deny.conf.ext configurations.

If you need more help or info I can help you.

Ciao

Il 18/03/20 18:26, Aki Tuomi ha scritto:
> Hi!
>
> I understand that it is not trivial to move away from vpopmail and does require changing a working system. But then again, one should be able to configure MySQL passdb/userdb with vpopmail schema.
>
> I am not familiar with vpopmail but if someone comes with instructions we can polish them a bit (if necessary) and publish them as howto on doc.dovecot.org.
>
> Aki
>
>> On 18/03/2020 17:52 Remo Mattei <remo at rm.ht> wrote:
>>
>>
>> So I am on of the many users with qmail, and using vpopmail auth, I guess chatting with some other guys in the other mailing list we will convert to mysql driver but this is a lot of work for many people.
>>
>> I do understand dropping things out but a valid solutions needs to be proposed.
>>
>> Remo

-- 
Alessio Cecchi
Postmaster @ http://www.qboxmail.it
https://www.linkedin.com/in/alessice

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20200318/9da32d50/attachment-0001.html>


More information about the dovecot mailing list