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 userDado 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
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.