Introducción a Dovecot

per Victor Carceler darrera modificació 2023-03-20T08:25:08+01:00

https://www.dovecot.org/

 

Dovecot es un MDA que tiene por función almacenar el correo y servirlo mediante POP3 o IMAP4 al programa cliente (MUA).

POP3 es un protocolo sencillo que está pensando para descargar el correo desde el servidor y después borrarlo (aunque una opción frecuente consiste precisamente en no borrar el correo descargado). Se exige que únicamente un MUA conecte de manera simultánea con un buzón de correo. De modo que no está pensado para funcionar en escenarios en los que varios dispositivos (ordenadores, tablets, móviles, ...) comprueban el correo del mismo buzón.

IMAP4 es un protocolo más complejo. En este caso se tiene en cuenta que varios clientes pueden comprobar el mismo buzón de manera simultánea y el protocolo permite realizar operaciones para mantener ordenado el buzón de correo desde el cliente. Descargando únicamente los ficheros a los que accede el usuario.

Ambos protocolos cuentan con una versión TLS denominada POP3S y IMAPS.

Instalación y configuración de Dovecot con IMAP

Dovecot tiene paquetes para los diferentes protocolos, si se desea soporte para IMAP basta con instalar el paquete dovecot-imapd.

apt install dovecot-imapd

Una vez instalado se puede comprobar que Dovecot estará escuchando en los puertos TCP 143 y 993 correspondientes a IMAP y IMAPS.

Dovecot utilizará el mismo fichero de registro, /var/log/mail.log, que nuestro MTA.

La configuración de Dovecot está dividida en varios archivos a partir de /etc/dovecot. El archivo principal /etc/dovecot/dovecot.conf incluye a los otros ficheros. Si se quiere ver qué cambios se han hecho sobre los valores por defecto en alguno de los ficheros es posible ejecutar dovecot -n. Que mostrará un fichero de configuración con los cambios.

root@dovecot:/etc/dovecot# dovecot -n
# 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.21 (92477967)
# OS: Linux 4.13.0-25-generic x86_64 Ubuntu Bionic Beaver (development branch)
mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_privileged_group = mail
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
}
passdb {
  driver = pam
}
protocols = " imap"
ssl_cert = </etc/dovecot/private/dovecot.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_key =  # hidden, use -P to show it
userdb {
  driver = passwd
}
root@dovecot:/etc/dovecot#

Formato de buzón: mbox y Maildir

Por supuesto Dovecot puede trabajar con los dos formatos de buzón. La configuración por defecto espera utilizar buzones mbox, pero si utilizamos Maildir es posible cambiar en /etc/dovecot/conf.d/10-mail.conf la directiva mail_location.

El valor por defecto es:

mail_location = mbox:~/mail:INBOX=/var/mail/%u

Y en el caso de utilizar Maildir se puede fijar a:

mail_location = maildir:~/Maildir

Prueba con un MUA - Thunderbird

Finalmente, la mejor manera de probar el servidor IMAP es utilizar un MUA como Thunderbird para configurar la cuenta de correo de uno de los usuarios locales.

Evidentemente será necesario utilizar IMAP y aceptar una excepción para el certificado digital autofirmado.

Cuenta IMAP en Thunderbird

Una vez añadida la cuenta IMAP desde Thunderbird se puede gestionar el buzón de correo de Dovecot.

Descarga de correo en Thunderbird

Finalmente, si en el servidor se está ejecutando un MTA como Postfix también será posible enviar correo desde Thunderbird, pero para ello será necesario editar la configuración (en Thunderbird) del servidor SMTP para indicar que se va a transmitir la contraseña sin ningún cifrado.

 Captura de pantalla de 2018-03-28 22-34-34.png

Relay en Postfix

Antiguamente los servidores SMTP permitían hacer relay a cualquier usuario. Pero la configuración de open relay permite que los spammers se aprovechen del servidor para molestar a otros usuarios de correo electrónico, así que hoy en día esta desaconsejada.

Por esta razón la configuración por defecto de Postfix permite hacer relay a los MUA locales (mailutils) pero no a los que vienen de otra dirección.

Para que Postfix permita hacer relay a los clientes de la LAN será necesario añadir la dirección de nuestra red a la lista mynetworks que se encuentra en /etc/postfix/main.cf.

Por ejemplo:

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.10.0/24

Más información: