Servidor de correo · 3 min read · Oct 05, 2025

Solución Completa de Servidor de Correo con Dominios y Usuarios Virtuales (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Página 9

VI. IMAP Inseguro

Así que ahora tienes una configuración de servidor de correo bastante a prueba de balas. El correo llega, se somete a una variedad de procedimientos anti-spam y se verifica en busca de virus antes de ser depositado en el directorio de un usuario virtual en el servidor interno. Pero… ¿cómo acceden los usuarios a su correo electrónico?

Buena pregunta. La respuesta varía dependiendo de dónde se encuentre el usuario. Por el momento, vamos a asumir que el usuario está (A) en la red local (interna), o (B) accediendo a su correo electrónico a través de una conexión segura al servidor web. Para cualquiera de estos, necesitarán que IMAP esté en funcionamiento. Dado que el servidor de correo ya tiene un servidor IMAP completamente funcional instalado (Dovecot), vamos a usar ese servidor para sus accesos.

Abre el archivo de configuración de Dovecot ubicado en /etc/dovecot/dovecot.conf y haz que se vea como lo siguiente. Probablemente ya haya mucha configuración predeterminada hecha, así que probablemente solo necesitarás descomentar ciertas secciones y cambiar cosas menores.

## Archivo de configuración de Dovecot  
#  
base_dir = /var/run/dovecot/  
#  
# imap imaps pop3 pop3s (usa imaps y pop3s si está configurado para SSL)  
protocols = imap  
#  
# Descomenta las declaraciones ssl_listen y comenta listen si usas SSL  
protocol imap {  
listen = *:143  
# ssl_listen = *:993  
}  
#protocol pop3 {  
#listen = *:110  
# ssl_listen = *:995  
#}  
#  
log_timestamp = "%Y-%m-%d %H:%M:%S "  
syslog_facility = mail  
#  
# Descomenta esto si usas SSL  
#ssl_cert_file = /etc/ssl/mycompany/mailserver/mail-cert.pem  
#ssl_key_file = /etc/ssl/mycompany/mailserver/mail-key.pem  
#ssl_ca_file = /etc/ssl/mycompany/ca/mycompany.pem  
#ssl_verify_client_cert = yes  
#ssl_parameters_regenerate = 168  
#verbose_ssl = no  
#  
# Donde se encuentran los buzones de correo  
mail_location = maildir:/vmail/%d/%u  
#  
mail_extra_groups = mail  
mail_debug = no  
first_valid_uid = 150  
last_valid_uid = 150  
maildir_copy_with_hardlinks = yes  
#  
protocol imap {  
login_executable = /usr/lib/dovecot/imap-login  
mail_executable = /usr/lib/dovecot/imap  
imap_max_line_length = 65536  
}  
#protocol pop3 {  
#login_executable = /usr/lib/dovecot/pop3-login  
#mail_executable = /usr/lib/dovecot/pop3  
#pop3_uidl_format = %08Xu%08Xv  
#}  
protocol lda {  
postmaster_address = [email protected]  
sendmail_path = /usr/lib/sendmail  
auth_socket_path = /var/run/dovecot/auth-master  
}  
#  
auth_verbose = no  
auth_debug = no  
auth_debug_passwords = no  
#  
auth default {  
 mechanisms = plain  
 passdb sql {  
 args = /etc/dovecot/dovecot-sql.conf  
 }  
 userdb sql {  
 args = /etc/dovecot/dovecot-sql.conf  
 }  
 user = nobody  
 socket listen {  
 master {  
 path = /var/run/dovecot/auth-master  
 mode = 0660  
 user = vmail  
 group = mail  
 }  
 client {  
 path = /var/spool/postfix/private/auth  
 mode = 0660  
 user = postfix  
 group = postfix  
 }  
 }  
 #  
 # Si deseas certificados de cliente, usa estas líneas  
 # ssl_require_client_cert = yes  
 # ssl_username_from_cert = yes  
}

NOTA: ¡No puedes simplemente copiar la configuración anterior y esperar que funcione! Vas a necesitar incorporar cualquier cambio anterior en tu propia configuración.

La configuración de Dovecot está casi completa, pero al igual que con la configuración de Postfix, los ajustes de MySQL deben ser incorporados.

Abre el archivo /etc/dovecot/dovecot-sql.conf y asegúrate de que lo siguiente esté presente.

driver = mysql  
connect = host=sql-1.internal.example.com dbname=virtual_mail user=vmail_user password=vmail_user_password  
# El nuevo nombre para MD5 es MD5-CRYPT, así que puede que necesites cambiar esto dependiendo de la versión  
default_pass_scheme = MD5  
# Obtener el buzón  
user_query = SELECT '/vmail/%d/%n' AS home, 'maildir:/vmail/%d/%n' AS mail, 150 AS uid, 8 AS gid, CONCAT('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'  
# Obtener la contraseña  
password_query = SELECT username AS user, password, '/vmail/%d/%n' AS userdb_home, 'maildir:/vmail/%d/%n' AS userdb_mail, 150 AS userdb_uid, 8 AS userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'  
# Si usas certificados de cliente para autenticación, comenta lo anterior y descomenta lo siguiente  
#password_query = SELECT null AS password, '%u' AS user

Dado que hemos almacenado nuestra contraseña de MySQL en formato de texto plano en este documento, ¡queremos asegurarnos de que solo nosotros podamos leerla!

# chmod 600 /etc/dovecot/*.conf  
# chown vmail /etc/dovecot/*.conf

¡La configuración interna/insegura de Dovecot está ahora terminada! Ve adelante y reinicia el servicio dovecot:

# invoke-rc.d dovecot restart

… y tus usuarios internos/webmail ahora pueden revisar su correo en postman.internal.example.com

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.