Configuración de Dovecot como servidor POP3

Introducción

Un servidor POP3 permite que un usuario pueda consultar su correo desde su equipo sin necesidad de tener una shell en el servidor.

POP3 es un protocolo que permite a los usuarios descargar su correo nuevo previo autenticarse con el servidor.

De los servidores POP3 libres disponibles en Internet he escogido Dovecot porque es muy fácil de configurar, muy potente, prima la seguridad por encima de otros factores y además es el servidor con el que tengo experiencia.

Dovecot también soporta IMAP, un protocolo más avanzado que POP3 que soporta sincronización y múltiples directorios por cuenta. Sin embargo, también hace más compleja la gestión de las cuotas, por lo que sólo implementaremos POP3.

Más información sobre Dovecot en http://www.dovecot.org/.

Instalación

Debian 6 incluye Dovecot en sus repositorios, pero es una versión antigua (1.x). Yo quiero usar la versión 2.x de Dovecot.

Para tener acceso a software un poco más reciente como Dovecot2 en Debian 6, utilizo el repositorio de backports.

Añado las siguientes líneas a mi /etc/apt/sources.list:

deb http://backports.debian.org/debian-backports/ squeeze-backports main
deb-src http://backports.debian.org/debian-backports/ squeeze-backports main

Actualizo las listas de repositorios y instalo Dovecot con soporte para POP3.

aptitude update
aptitude install -t squeeze-backports dovecot-pop3d

Configuración

Dovecot requiere muy poca configuración para un uso básico.

En nuestro caso sólo tengo que cambiar /etc/dovecot/conf.d/10-ssl.conf para utilizar los certificados SSL de Cactus (por defecto crea unos autofirmados):

ssl_cert = </etc/ssl/certs/cactus.pem
ssl_key = </etc/ssl/private/cactus.key

Adicionalmente, puedo añadir LOGIN a los mecanismos de autenticación soportados, si quiero soportar a clientes de correo viejos de Microsoft. Lo hago en /etc/dovecot/conf.d/10-auth.conf.

auth_mechanisms = plain login

Reinicio Dovecot, y listo.

service dovecot restart

Configuración de Dovecot como servidor SASL

En Puerto submission configuramos Postfix para que en las conexiones por el puerto submission requiriera autenticación mediante SASL; sin embargo no teníamos ningún servidor SASL, por lo que hasta ahora dicha autenticación no ha funcionado.

Dovecot, además de servir como servidor POP3 e IMAP, también integra su propio servidor SASL, el cual puede compartir con otros programas. Configuraremos Dovecot para que funcione como servidor SASL para Postfix.

En /etc/dovecot/conf.d/10-master.conf busco la sección service auth y introduzco la siguiente configuración:

service auth {
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}

Ahora hay que configurar Postfix para que encuentre el servidor SASL en la ruta especificada. Establzeco en /etc/postfix/main.cf estas opciones:

smtpd_sasl_type = dovecot

# Can be an absolute path, or relative to $queue_directory
# Debian/Ubuntu users: Postfix is setup by default to run chrooted, so it is best to leave it as-is below
smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

Reinicio Dovecot y Postfix.

service dovecot restart service postfix restart

Prueba

Abro Thunderbird en mi PC y configuro la nueva cuenta.

Con sólo poner la dirección de e-mail y contraseña Thunderbird detecta toda la configuración, ¡estupendo!

../_images/thunderbird.png

Pruebo que puedo recibir correo tanto por POP3, así como que el envío funciona, y doy por finalizada esta parte.