systemadmin.es > Correo > Migración de Postfix con usuarios en /etc/passwd a qmail con vpopmail y dovecot

Migración de Postfix con usuarios en /etc/passwd a qmail con vpopmail y dovecot

Para migrar de un servidor (por ejemplo Postfix) con los usuarios de correo como usuarios de sistema debemos configurar el vpopmail del nuevo servidor adecuadamente para que acepte las contraseñas en formato crypt (DES) que se guardan en /etc/passwd

Una vez instalado qmail debemos configurar vpopmail con la opción –disable-md5-passwords. De esta manera los passwords se los espera en el mismo formato, por lo que resulta trivial crear los usuarios desde un fichero /etc/passwd.

El configure completo de vpopmail sería:

$ ./configure --disable-roaming-users --enable-logging=p --disable-passwd --disable-domain-quotas --enable-auth-module=mysql --enable-auth-logging --enable-sql-logging --enable-valias --disable-mysql-limits --disable-md5-passwords --disable-many-domains

A continuación ya podremos compilar e instalar:

# make && make install

En este caso el configure se ha creado para que el sistema guarde los usuarios en una tabla diferente por cada dominio. Cada tabla sería de este estilo:

mysql> desc dominio_ejemplo_systemadmin_es;
+-----------------+-----------+------+-----+---------+-------+
| Field           | Type      | Null | Key | Default | Extra |
+-----------------+-----------+------+-----+---------+-------+
| pw_name         | char(32)  | NO   | PRI | NULL    |       |
| pw_passwd       | char(40)  | YES  |     | NULL    |       |
| pw_uid          | int(11)   | YES  |     | NULL    |       |
| pw_gid          | int(11)   | YES  |     | NULL    |       |
| pw_gecos        | char(48)  | YES  |     | NULL    |       |
| pw_dir          | char(160) | YES  |     | NULL    |       |
| pw_shell        | char(20)  | YES  |     | NULL    |       |
+-----------------+-----------+------+-----+---------+-------+
7 rows in set (0.02 sec)

En este caso no nos serviría la instalación de dovecot y vpopmail que comentamos anteriormente, ya que no espera que los dominios esten en tablas separadas ni que los passwords se encuentren en formato crypt. Veamos como lo hacemos para instalar dovecot en estas condiciones.

Para instalar dovecot hacemos lo mismo que en el caso anterior:

# ./configure --disable-ipv6 --with-mysql \
      --with-sql=yes --with-sql-drivers

Compilamos e instalamos:

# make && make install

Añadimos el usuario dovecot para el daemon:

# useradd dovecot

Y ya podemos configurar el daemon. El fichero /usr/local/etc/dovecot.conf nos sirve exactamente el mismo:

mail_location = maildir:/home/vpopmail/domains/%d/%n/Maildir

ssl_disable=yes
disable_plaintext_auth=no

verbose_proctitle = yes
first_valid_uid = 89
last_valid_uid = 89

protocol imap {
	listen = *:143
}

auth default {

	passdb vpopmail {
	}

	userdb vpopmail {
	}
}

A continuación debemos modificar las sentencias SQL en el fichero llamado /usr/local/etc/dovecot-sql.conf:

driver=mysql
connect = host=/tmp/mysql.sock user=vpopmail password=vpopmailpassword dbname=vpopmail
default_pass_scheme = CRYPT
password_query = SELECT CONCAT(pw_name, '@',REPLACE('%d','_','.') AS user, CONCAT('{crypt}',pw_passwd) AS password FROM %d WHERE pw_name = '%n';
user_query = SELECT pw_dir as home, 64020 AS uid, 64020 AS gid FROM %d WHERE pw_name = '%n'

Con esto ya tendremos el nuevo servidor con qmail, vpopmail y dovecot para el servidor IMAP.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>