Configuración de Dovecot para IMAP/POP3: Guía de Configuración Completa

Introducción

Dovecot es un servidor IMAP y POP3 de alto rendimiento, seguro y fácil de configurar diseñado para sistemas Linux/UNIX. Como uno de los agentes de entrega de correo (MDA) más populares disponibles, Dovecot maneja la recuperación de correos electrónicos desde tu servidor de correo, permitiendo que clientes de correo como Outlook, Thunderbird y aplicaciones de correo móviles accedan a los mensajes almacenados en tu servidor.

Mientras Postfix maneja la transferencia de correo (envío y recepción de correo entre servidores), Dovecot gestiona el almacenamiento y recuperación de correo para los usuarios finales. Juntos, forman una solución de correo completa que proporciona capacidades de envío y recepción con acceso seguro a los buzones.

Dovecot ofrece varias ventajas sobre las alternativas:

  • Excelente rendimiento con buzones grandes y alto número de usuarios concurrentes
  • Características de seguridad robustas incluyendo soporte SSL/TLS y múltiples mecanismos de autenticación
  • Soporte para formatos Maildir y mbox
  • Indexación eficiente para búsquedas rápidas
  • Soporte de usuarios virtuales para alojar múltiples dominios
  • Fácil integración con Postfix para autenticación SMTP

Esta guía completa te guiará a través de la instalación y configuración de Dovecot en Linux, implementando autenticación segura, habilitando cifrado SSL/TLS y optimizando el rendimiento para acceso confiable al correo electrónico.

Requisitos Previos

Antes de comenzar la instalación de Dovecot, asegúrate de tener:

Requisitos del Sistema

  • Un servidor Linux (Ubuntu 20.04/22.04, Debian 10/11, CentOS 8/Rocky Linux 8 o similar)
  • Acceso root o sudo al servidor
  • Al menos 1GB RAM (2GB+ recomendado para producción)
  • 20GB+ de espacio en disco para almacenamiento de correo
  • Una instalación funcional de Postfix (recomendado pero no obligatorio)

Requisitos de Red

  • Puerto 143 (IMAP) y/o 110 (POP3) accesibles
  • Puerto 993 (IMAPS) y/o 995 (POP3S) para conexiones seguras
  • Puerto 587 (envío SMTP con SASL) si se integra con Postfix
  • Firewall configurado para permitir tráfico de correo

Dominio y DNS

  • Un nombre de dominio válido con registros DNS apropiados
  • Certificados SSL/TLS (Let's Encrypt recomendado)
  • Registros MX configurados correctamente

Requisitos de Conocimiento

  • Competencia básica en línea de comandos de Linux
  • Comprensión de protocolos de correo (IMAP vs POP3)
  • Familiaridad con editores de texto (nano, vim)
  • Conceptos básicos de redes

Entendiendo IMAP vs POP3

Antes de configurar Dovecot, es importante entender los dos protocolos principales:

IMAP (Protocolo de Acceso a Mensajes de Internet)

Ventajas:

  • Los mensajes permanecen en el servidor
  • Acceso al correo desde múltiples dispositivos
  • Sincroniza carpetas, marcadores y estado de lectura
  • Capacidades de búsqueda del lado del servidor
  • Mejor para uso moderno con múltiples dispositivos

Desventajas:

  • Requiere más almacenamiento en el servidor
  • Requiere conexión activa para leer correo
  • Protocolo más complejo

Recomendado para: Usuarios que acceden al correo desde múltiples dispositivos, necesitan organización del lado del servidor o desean respaldo centralizado.

POP3 (Protocolo de Oficina de Correos versión 3)

Ventajas:

  • Descarga mensajes al dispositivo local
  • Puede trabajar sin conexión después de la descarga
  • Libera almacenamiento del servidor
  • Protocolo más simple

Desventajas:

  • Correo solo en un dispositivo (por defecto)
  • Sin sincronización entre dispositivos
  • Soporte limitado de carpetas
  • Mensajes eliminados no sincronizados

Recomendado para: Usuarios de un solo dispositivo, almacenamiento limitado en el servidor o requisitos de acceso a correo sin conexión.

Mejores Prácticas: Habilita ambos protocolos y deja que los usuarios elijan según sus necesidades. La mayoría de las configuraciones modernas utilizan principalmente IMAP.

Paso 1: Instalar Dovecot

Instala Dovecot usando el gestor de paquetes de tu distribución:

Ubuntu/Debian

# Update package lists
sudo apt update

# Install Dovecot core and protocols
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d -y

# Optional: Install additional packages
sudo apt install dovecot-lmtpd dovecot-managesieved -y

CentOS/Rocky Linux

# Install Dovecot packages
sudo dnf install dovecot -y

# Enable and start Dovecot
sudo systemctl enable dovecot
sudo systemctl start dovecot

Verificar la Instalación

# Check Dovecot version
dovecot --version

# Verify service status
sudo systemctl status dovecot

# Check which protocols are enabled
doveconf protocols

Paso 2: Configuración Básica de Dovecot

Los archivos de configuración de Dovecot están ubicados en /etc/dovecot/. El archivo de configuración principal es dovecot.conf, que incluye otros archivos de configuración del directorio conf.d/.

Respaldar la Configuración Original

sudo cp -r /etc/dovecot /etc/dovecot.backup

Configurar Ajustes Principales

Edita el archivo de configuración principal:

sudo nano /etc/dovecot/dovecot.conf

Asegúrate de que estas líneas estén presentes y sin comentar:

# Enable IMAP and POP3 protocols
protocols = imap pop3 lmtp

# Listen on all interfaces
listen = *, ::

# Base directory for runtime data
base_dir = /var/run/dovecot/

Configurar la Ubicación del Correo

Edita la configuración de ubicación del correo:

sudo nano /etc/dovecot/conf.d/10-mail.conf

Configura la ubicación del correo:

# Maildir format (recommended)
mail_location = maildir:~/Maildir

# Alternative: mbox format
# mail_location = mbox:~/mail:INBOX=/var/mail/%u

# Mail directory permissions
mail_privileged_group = mail

# Namespace configuration
namespace inbox {
  inbox = yes

  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }

  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }

  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }

  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
}

Entendiendo los Formatos de Ubicación de Correo

Formato Maildir:

  • Cada mensaje es un archivo separado
  • Mejor para confiabilidad y rendimiento
  • Copias de seguridad y replicación más fáciles
  • Recomendado para sistemas modernos
  • Formato: maildir:~/Maildir

Formato mbox:

  • Todos los mensajes en un archivo por carpeta
  • Formato tradicional de Unix
  • Puede tener problemas de corrupción con buzones grandes
  • Formato: mbox:~/mail:INBOX=/var/mail/%u

Paso 3: Configurar la Autenticación

Edita la configuración de autenticación:

sudo nano /etc/dovecot/conf.d/10-auth.conf

Configura los ajustes de autenticación:

# Disable plaintext authentication (except with SSL/TLS)
disable_plaintext_auth = yes

# Authentication mechanisms
auth_mechanisms = plain login

# Include system users (PAM authentication)
!include auth-system.conf.ext

# For virtual users, use:
# !include auth-sql.conf.ext
# !include auth-ldap.conf.ext

Autenticación de Usuarios del Sistema

Para autenticación de usuarios del sistema (usuarios en /etc/passwd), edita:

sudo nano /etc/dovecot/conf.d/auth-system.conf.ext

Asegúrate de que contenga:

passdb {
  driver = pam
  args = session=yes dovecot
}

userdb {
  driver = passwd
  args = blocking=no
  override_fields = home=/home/%u
}

Configurar PAM (Módulos de Autenticación Conectables)

Verifica que existe la configuración de PAM:

cat /etc/pam.d/dovecot

Debe contener:

@include common-auth
@include common-account
@include common-session

Paso 4: Configuración SSL/TLS

El acceso seguro al correo requiere cifrado SSL/TLS. Configura los ajustes de SSL:

sudo nano /etc/dovecot/conf.d/10-ssl.conf

Configura SSL/TLS:

# Enable SSL
ssl = required

# SSL certificate files (update paths for your certificates)
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem

# SSL protocols (disable old insecure protocols)
ssl_min_protocol = TLSv1.2
ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1

# SSL cipher suite (strong ciphers only)
ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK

# Prefer server ciphers
ssl_prefer_server_ciphers = yes

# DH parameters for additional security
ssl_dh = </etc/dovecot/dh.pem

Generar Parámetros DH

# Generate 2048-bit DH parameters (takes a few minutes)
sudo openssl dhparam -out /etc/dovecot/dh.pem 2048

# Set proper permissions
sudo chmod 600 /etc/dovecot/dh.pem

Usando Certificados Autofirmados (Solo Desarrollo/Pruebas)

Si no tienes certificados Let's Encrypt, genera unos autofirmados:

# Create certificate directory
sudo mkdir -p /etc/dovecot/private

# Generate self-signed certificate
sudo openssl req -new -x509 -nodes -days 365 -out /etc/dovecot/dovecot.pem -keyout /etc/dovecot/private/dovecot.key

# Set permissions
sudo chmod 600 /etc/dovecot/private/dovecot.key
sudo chmod 644 /etc/dovecot/dovecot.pem

Luego actualiza ssl.conf:

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.key

Paso 5: Configurar los Servicios IMAP y POP3

Configuración de IMAP

sudo nano /etc/dovecot/conf.d/20-imap.conf

Configura los ajustes de IMAP:

protocol imap {
  # Maximum number of IMAP connections per user
  mail_max_userip_connections = 20

  # IMAP capabilities
  mail_plugins = $mail_plugins imap_quota

  # IMAP-specific settings
  imap_idle_notify_interval = 2 mins
  imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
}

Configuración de POP3

sudo nano /etc/dovecot/conf.d/20-pop3.conf

Configura los ajustes de POP3:

protocol pop3 {
  # Maximum number of POP3 connections per user
  mail_max_userip_connections = 10

  # POP3 plugins
  mail_plugins = $mail_plugins

  # Keep messages on server (optional)
  pop3_uidl_format = %08Xu%08Xv

  # POP3 client workarounds
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh

  # Don't delete messages when downloading (optional)
  # pop3_delete_type = flag
}

Paso 6: Configurar el Registro

sudo nano /etc/dovecot/conf.d/10-logging.conf

Configura el registro:

# Log file location
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log
debug_log_path = /var/log/dovecot-debug.log

# Logging verbosity
auth_verbose = yes
auth_verbose_passwords = no
auth_debug = no
auth_debug_passwords = no
mail_debug = no
verbose_ssl = no

# Log timestamp format
log_timestamp = "%Y-%m-%d %H:%M:%S "

Crear Archivos de Registro

# Create log files
sudo touch /var/log/dovecot.log
sudo touch /var/log/dovecot-info.log

# Set ownership
sudo chown syslog:adm /var/log/dovecot*.log

# Set permissions
sudo chmod 640 /var/log/dovecot*.log

Configurar la Rotación de Registros

sudo nano /etc/logrotate.d/dovecot

Añade:

/var/log/dovecot*.log {
  weekly
  rotate 4
  missingok
  notifempty
  compress
  delaycompress
  sharedscripts
  postrotate
    doveadm log reopen
  endscript
}

Paso 7: Configurar Ajustes Maestros

sudo nano /etc/dovecot/conf.d/10-master.conf

Configura los ajustes del servicio:

service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }

  # Number of processes
  service_count = 1
  process_min_avail = 2
  process_limit = 500
}

service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }

  service_count = 1
  process_min_avail = 2
  process_limit = 500
}

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}

service auth {
  # Postfix SMTP authentication
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

  # Auth process settings
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }

  user = dovecot
}

service auth-worker {
  user = root
}

service dict {
  unix_listener dict {
    mode = 0600
    user = vmail
  }
}

Paso 8: Integración con Postfix para Autenticación SMTP

Para permitir que Postfix use Dovecot para autenticación SMTP, configura Postfix:

sudo nano /etc/postfix/main.cf

Añade estas líneas:

# SMTP Authentication via Dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes

# TLS settings
smtpd_tls_auth_only = yes
smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

Recarga Postfix:

sudo systemctl reload postfix

Paso 9: Configuración del Firewall

Configura el firewall para permitir tráfico IMAP y POP3:

UFW (Ubuntu/Debian)

# IMAP
sudo ufw allow 143/tcp comment 'IMAP'
sudo ufw allow 993/tcp comment 'IMAPS'

# POP3
sudo ufw allow 110/tcp comment 'POP3'
sudo ufw allow 995/tcp comment 'POP3S'

# Reload firewall
sudo ufw reload

Firewalld (CentOS/Rocky Linux)

# IMAP
sudo firewall-cmd --permanent --add-service=imap
sudo firewall-cmd --permanent --add-service=imaps

# POP3
sudo firewall-cmd --permanent --add-service=pop3
sudo firewall-cmd --permanent --add-service=pop3s

# Reload firewall
sudo firewall-cmd --reload

iptables

# IMAP
sudo iptables -A INPUT -p tcp --dport 143 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 993 -j ACCEPT

# POP3
sudo iptables -A INPUT -p tcp --dport 110 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 995 -j ACCEPT

# Save rules
sudo iptables-save > /etc/iptables/rules.v4

Paso 10: Probar la Configuración de Dovecot

Verificar la Sintaxis de Configuración

# Check for configuration errors
sudo doveconf -n

# Test specific configuration
sudo doveadm config get protocols

Probar la Conexión IMAP

# Test IMAP without SSL
telnet localhost 143

Comandos para probar:

a1 LOGIN username password
a2 LIST "" "*"
a3 SELECT INBOX
a4 LOGOUT

Probar IMAPS (con SSL)

# Test IMAPS connection
openssl s_client -connect mail.example.com:993

Después de la conexión, inicia sesión:

a1 LOGIN username password
a2 LIST "" "*"
a3 LOGOUT

Probar la Conexión POP3

# Test POP3 without SSL
telnet localhost 110

Comandos:

USER username
PASS password
LIST
QUIT

Probar POP3S (con SSL)

openssl s_client -connect mail.example.com:995

Después de la conexión:

USER username
PASS password
LIST
QUIT

Probar la Autenticación

# Test authentication
doveadm auth test username password

# Expected output: passdb and userdb success

Verificar el Estado del Servicio

# View running Dovecot processes
sudo doveadm who

# Check service status
sudo systemctl status dovecot

# View active connections
sudo doveadm stats dump

Optimización del Rendimiento

Límites de Conexión y Procesos

sudo nano /etc/dovecot/conf.d/10-master.conf

Optimiza según la capacidad de tu servidor:

service imap-login {
  service_count = 1
  process_min_avail = 4
  process_limit = 1000

  # Connection limits per IP
  client_limit = 1000
}

service pop3-login {
  service_count = 1
  process_min_avail = 2
  process_limit = 500
  client_limit = 500
}

Memoria y Caché

sudo nano /etc/dovecot/conf.d/10-mail.conf

Configura el caché y los límites de memoria:

# Mail process memory limit
mail_process_size = 512M

# Enable mail caching
mail_cache_min_mail_count = 0

# Maildir-specific optimizations
maildir_very_dirty_syncs = yes
maildir_copy_with_hardlinks = yes

Archivos de Índice para Rendimiento

# Enable automatic index creation
mail_location = maildir:~/Maildir:INDEX=/var/dovecot/indexes/%u

Crea el directorio de índices:

sudo mkdir -p /var/dovecot/indexes
sudo chown vmail:vmail /var/dovecot/indexes
sudo chmod 770 /var/dovecot/indexes

Optimización de Base de Datos

Para escenarios de alto rendimiento, usa backends de autenticación más rápidos:

sudo nano /etc/dovecot/dovecot.conf

Añade:

dict {
  quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}

Mejores Prácticas de Seguridad

1. Deshabilitar Autenticación en Texto Plano

sudo nano /etc/dovecot/conf.d/10-auth.conf

Asegúrate de:

disable_plaintext_auth = yes

Esto fuerza SSL/TLS para toda autenticación.

2. Implementar Limitación de Tasa de Conexión

sudo nano /etc/dovecot/conf.d/10-master.conf

Añade:

service imap-login {
  # Limit login attempts
  client_limit = 500
  process_limit = 500
}

3. Configurar Protección Fail2ban

Instala Fail2ban:

sudo apt install fail2ban -y

Crea filtro de Dovecot:

sudo nano /etc/fail2ban/filter.d/dovecot.conf

Añade:

[Definition]
failregex = (auth failed|authentication failed|invalid credentials|login failed).*rip=<HOST>
ignoreregex =

Configura jail:

sudo nano /etc/fail2ban/jail.local

Añade:

[dovecot]
enabled = true
port = imap,imaps,pop3,pop3s
filter = dovecot
logpath = /var/log/dovecot.log
maxretry = 5
findtime = 600
bantime = 3600

Reinicia Fail2ban:

sudo systemctl restart fail2ban

4. Establecer Permisos Apropiados en Archivos

# Secure configuration directory
sudo chmod 755 /etc/dovecot
sudo chmod 644 /etc/dovecot/dovecot.conf

# Secure private keys
sudo chmod 600 /etc/dovecot/private/*

# Secure mail directories
sudo chmod 700 /home/*/Maildir

5. Actualizaciones de Seguridad Regulares

# Ubuntu/Debian
sudo apt update && sudo apt upgrade dovecot-core dovecot-imapd dovecot-pop3d -y

# CentOS/Rocky Linux
sudo dnf update dovecot -y

Solución de Problemas Comunes

Problema 1: Fallos de Autenticación

Síntomas: No se puede iniciar sesión con credenciales correctas

Diagnóstico:

# Check authentication
sudo doveadm auth test username password

# Check logs
sudo tail -f /var/log/dovecot.log | grep auth

# Verify user exists
id username

Soluciones:

  • Verifica que la contraseña sea correcta
  • Revisa el ajuste disable_plaintext_auth
  • Asegúrate de que los certificados SSL sean válidos
  • Verifica que el usuario existe en el sistema o base de datos virtual

Problema 2: Conexión Rechazada

Síntomas: No se puede conectar a los puertos IMAP/POP3

Diagnóstico:

# Check if Dovecot is running
sudo systemctl status dovecot

# Check listening ports
sudo netstat -tlnp | grep dovecot

# Check firewall
sudo ufw status
sudo firewall-cmd --list-all

Soluciones:

  • Inicia Dovecot: sudo systemctl start dovecot
  • Abre los puertos del firewall
  • Verifica la directiva listen en dovecot.conf

Problema 3: Errores SSL/TLS

Síntomas: Errores de certificado, fallos de cifrado de conexión

Diagnóstico:

# Test SSL certificate
openssl s_client -connect mail.example.com:993 -showcerts

# Check certificate paths
sudo doveconf -n | grep ssl_cert

# Verify certificate validity
sudo openssl x509 -in /etc/letsencrypt/live/mail.example.com/fullchain.pem -noout -dates

Soluciones:

  • Renueva certificados expirados
  • Verifica las rutas de certificados en la configuración
  • Revisa los permisos de certificados (legibles por Dovecot)
  • Asegúrate de que fullchain.pem incluye certificados intermedios

Problema 4: Correo No Aparece en la Bandeja de Entrada

Síntomas: Correos entregados pero no visibles en el cliente

Diagnóstico:

# Check mail location
sudo doveconf -n | grep mail_location

# Verify files exist
sudo ls -la /home/username/Maildir/new/

# Check permissions
sudo ls -ld /home/username/Maildir

Soluciones:

  • Verifica que mail_location coincida con la ubicación real del buzón
  • Revisa la propiedad y permisos de archivos
  • Reconstruye índices: doveadm force-resync -u username INBOX

Problema 5: Alto Uso de Memoria

Síntomas: Dovecot consumiendo RAM excesiva

Diagnóstico:

# Check process memory
ps aux | grep dovecot | sort -nk 4

# View Dovecot statistics
sudo doveadm stats dump

Soluciones:

# Reduce process limits
sudo nano /etc/dovecot/conf.d/10-master.conf

Ajusta:

default_process_limit = 100
default_vsz_limit = 256M

Problema 6: Problemas de Cuota de Buzón

Síntomas: Los usuarios no pueden recibir correo nuevo

Revisar cuota:

doveadm quota get -u username

Recalcular cuota:

doveadm quota recalc -u username

Monitoreo y Mantenimiento

Monitoreo Diario

# Check active connections
sudo doveadm who

# Monitor logs
sudo tail -f /var/log/dovecot.log

# Check service status
sudo systemctl status dovecot

Tareas Semanales

# Check for authentication failures
sudo grep "auth failed" /var/log/dovecot.log | wc -l

# Review top users by connection count
sudo doveadm who | awk '{print $1}' | sort | uniq -c | sort -rn | head -10

# Check disk usage
du -sh /home/*/Maildir

Mantenimiento Mensual

  1. Actualizar Dovecot a la última versión
  2. Revisar y rotar registros
  3. Verificar expiración de certificados SSL
  4. Auditar cuentas de usuario
  5. Revisar estadísticas de rendimiento
  6. Probar restauración de copias de seguridad

Comandos Útiles de Monitoreo

# Show all active IMAP/POP3 sessions
sudo doveadm who

# Statistics per user
sudo doveadm stats dump user

# Show mailbox sizes
sudo doveadm mailbox list -u username

# Check mail status
sudo doveadm mailbox status -u username all INBOX

# Force mailbox reindex
sudo doveadm force-resync -u username '*'

Configuración Avanzada

Usuarios Virtuales con MySQL

Para alojar múltiples dominios, configura usuarios virtuales:

sudo nano /etc/dovecot/dovecot-sql.conf.ext

Añade:

driver = mysql
connect = host=localhost dbname=mailserver user=mailuser password=mailpass
default_pass_scheme = SHA512-CRYPT

password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';
user_query = SELECT email as user, concat('maildir:/var/mail/vhosts/', domain, '/', email) as mail, 5000 as uid, 5000 as gid FROM virtual_users WHERE email='%u';

Configuración de Cuotas

sudo nano /etc/dovecot/conf.d/90-quota.conf

Añade:

plugin {
  quota = maildir:User quota
  quota_rule = *:storage=1GB
  quota_rule2 = Trash:storage=+100M
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
}

Filtrado Sieve

Habilita filtrado de correo del lado del servidor:

sudo apt install dovecot-sieve dovecot-managesieved -y

Configura:

sudo nano /etc/dovecot/conf.d/90-sieve.conf

Añade:

plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}

Conclusión

Ahora tienes un servidor Dovecot completamente funcional configurado para acceso IMAP y POP3 con medidas de seguridad robustas y optimizaciones de rendimiento. Esta configuración proporciona acceso confiable al correo para tus usuarios mientras mantiene seguridad y escalabilidad.

Puntos Clave

  1. La Seguridad es Esencial: Siempre usa cifrado SSL/TLS y deshabilita la autenticación en texto plano
  2. Elige el Protocolo Correcto: IMAP para acceso multi-dispositivo, POP3 para uso de un solo dispositivo o sin conexión
  3. Monitorea Regularmente: Mantén un seguimiento de conexiones, fallos de autenticación y uso de recursos
  4. Integra con Postfix: Usa Dovecot para autenticación SMTP para crear una solución de correo completa
  5. Optimiza para Escala: Ajusta límites de procesos y caché según tu número de usuarios

Próximos Pasos

Para completar tu infraestructura de correo:

  1. Integrar con Postfix para solución de correo completa
  2. Instalar certificados SSL de Let's Encrypt para producción
  3. Configurar DKIM/SPF/DMARC para autenticación de correo
  4. Configurar SpamAssassin para filtrado de spam
  5. Implementar soluciones de respaldo para buzones
  6. Configurar monitoreo con Nagios o similar
  7. Configurar webmail (Roundcube o Rainloop) para acceso desde navegador

Recursos Recomendados

Con Dovecot configurado correctamente, tus usuarios pueden acceder de forma segura a su correo electrónico desde cualquier dispositivo usando su cliente de correo preferido. Combinado con Postfix para transferencia de correo, tienes una infraestructura de correo electrónico completa de nivel profesional.