Al actualizar a Fedora 14, o a las nuevas versiones de sus distribuciones; o simplemente al realizar un update rutinario, es bastante frecuente la consulta en estos tiempos, de que nuestro servidor de correo nos deje de funcionar (más presisamente el servidor IMAP/POP3). Y cuando realizamos un: tail -f /var/log/maillog nos encontramos con:
postfix/smtpd[10367]: connect from snt0-omc2-s12.snt0.hotmail.com[65.55.90.87]
postfix/smtpd[3257]: warning: SASL: Connect to /var/spool/postfix/private/auth failed: No such file or directory
postfix/smtpd[3257]: fatal: no SASL authentication mechanisms
postfix/master[1917]: warning: process /usr/libexec/postfix/smtpd pid 3257 exit status 1
postfix/master[1917]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
Esto seguramente se puede deber a que pasamos de la versión v1.x a v2.x de Dovecot (dovecot --version), y si realizamos:
doveconf -a | grep 'postfix'
y vemos que NO nos devuelve
.....
.....
group = postfix
user = postfix
......
.....
O que hacemos ls -l /var/spool/postfix/private/auth y descubrimos que ya no existe este archivo
como se ve, hay cambios bastante drásticos, hasta la localización de los archivos de configuración, que antes estaban en:
/etc/dovecot.conf y que ahora se encuentra en /etc/dovecot/dovecot.conf y que ademas subdivide la configuración en: /etc/dovecot/conf.d/auth-*-conf.ext (configurar los diferentes módulos de autentificacion) y /etc/dovecot/conf.d/*.conf (que configura los diferentes servicios)
La solución esta en migrar nuestra antigua configuración, como lo propone el fabricante en http://wiki2.dovecot.org/Upgrading/2.0, realizando:
# dovecot -n -c /etc/dovecot.conf > /etc/dovecot/dovecot.conf
doveconf: Warning: Obsolete setting in /etc/dovecot.conf:1: protocols=imaps is no longer necessary, remove it
doveconf: Warning: Obsolete setting in /etc/dovecot.conf:3: ssl_cert_file has been replaced by ssl_cert = <file
doveconf: Warning: Obsolete setting in /etc/dovecot.conf:4: ssl_key_file has been replaced by ssl_key = <file
doveconf: Warning: Obsolete setting in /etc/dovecot.conf:5: ssl_ca_file has been replaced by ssl_ca = <file
doveconf: Warning: Obsolete setting in /etc/dovecot.conf:8: protocol {listen} has been replaced by service {inet_listener {address }}
doveconf: Warning: Obsolete setting in /etc/dovecot.conf:9: protocol {ssl_listen} has been replaced by service {inet_listener {address}}
doveconf: Warning: Obsolete setting in /etc/dovecot.conf:12: add auth_ prefix to all settings inside auth {} and remove the auth {} section completely
doveconf: Warning: Obsolete setting in /etc/dovecot.conf:14: passdb pam {} has been replaced by passdb { driver=pam }
doveconf: Warning: Obsolete setting in /etc/dovecot.conf:16: userdb passwd {} has been replaced by userdb { driver=passwd }
Luego realizar:
# service saslauthd restart && service dovecot restart && service postfix restart