Síntesis del proceso de instalación de servicios de correo en un VPS
1. Preparación del sistema
- Actualizar el sistema e instalar paquetes base.
- Configurar el hostname del sistema para que coincida con el dominio de correo (ej.
mail.dominio.com). - Asegurar conexión estable y que los puertos (25, 587, 993, 143, 110, 995) estén accesibles (firewall abierto).
2. Instalación de componentes en orden
2.1. Postfix (MTA – Mail Transfer Agent)
- Paquete:
postfix - Configuración durante la instalación: seleccionar Internet Site y escribir el nombre del sistema de correo (
mail.dominio.com). - Posterior configuración:
main.cf: definirmyhostname,mydomain,inet_interfaces,home_mailbox = Maildir/, etc.- Activar autenticación SASL (usando Dovecot) y configuración de restricciones.
master.cf: descomentar y ajustar el serviciosubmission(puerto 587) con opciones SASL.
2.2. Dovecot (IMAP/POP3)
- Paquetes:
dovecot-core,dovecot-imapd,dovecot-pop3d,dovecot-lmtpd(opcional). - Configuración:
dovecot.conf: definirprotocols = imap pop3,listen = *.10-auth.conf: deshabilitar texto plano (opcional en pruebas), mecanismosplain login, incluirauth-system.conf.ext(autenticación PAM).10-mail.conf:mail_location = maildir:~/Maildir.10-master.conf: definir socket Unix para que Postfix hable con Dovecot (/var/spool/postfix/private/auth).10-ssl.conf(más adelante): configurar certificado SSL.
2.3. Autenticación y socket de comunicación
- Punto crítico: Dovecot debe crear el socket
/var/spool/postfix/private/authcon permisos adecuados (usuariopostfix, grupopostfix). Sin esto, Postfix no puede autenticar usuarios. - Verificación:
sudo ls -la /var/spool/postfix/private/auth. Si no existe, revisar la secciónservice authen10-master.confy reiniciar Dovecot.
2.4. SSL/TLS con Let’s Encrypt
- Instalar Certbot:
certbot. - Obtener certificado: detener servicios que usen puerto 80/443, ejecutar
certbot certonly --standalone -d mail.dominio.com. - Configurar Postfix: en
main.cfapuntarsmtpd_tls_cert_fileysmtpd_tls_key_filea los archivos generados. - Configurar Dovecot: crear
10-ssl.confconssl = required, y las mismas rutas de certificado. - Problema común: Dovecot tiene
ssl = nopor defecto y no levanta los puertos SSL (993, 995). Es obligatorio establecerssl = requiredendovecot.confo en10-ssl.confpara que los listenersimapsypop3sfuncionen.
2.5. OpenDKIM (firmado de correos)
- Paquetes:
opendkim,opendkim-tools. - Generar claves: para el dominio (
smart-solve.com) con selector (ej.mail). - Crear archivos:
key.table,signing.table,trusted.hosts. - Configurar Postfix: agregar el milter (
smtpd_milters = inet:127.0.0.1:8891). - Registro DNS: publicar el TXT DKIM obtenido (
mail._domainkey).
3. Puntos críticos a los que prestar atención (lecciones aprendidas)
| Paso | Problema típico | Síntoma | Solución |
|---|---|---|---|
| Postfix | Servicio systemd corrupto (ejecuta /bin/true) | systemctl status postfix muestra active (exited), pero el proceso master no corre. | Iniciar manualmente con sudo /usr/sbin/postfix start o arreglar el archivo de servicio. |
| Autenticación SASL | Postfix no anuncia AUTH | No aparece 250-AUTH PLAIN LOGIN en EHLO; la autenticación falla. | Verificar smtpd_sasl_auth_enable = yes, asegurar que el socket de Dovecot existe y está accesible para postfix. |
| Socket Dovecot | No se crea /var/spool/postfix/private/auth | Logs de Postfix: fatal: no SASL authentication mechanisms. | Revisar la sección service auth en 10-master.conf, crear el directorio con permisos y reiniciar Dovecot. |
| SSL en Dovecot | Puertos 993/995 no escuchan | netstat -tlnp no muestra 993. | ssl = no en la configuración global; forzar ssl = required en dovecot.conf o en 10-ssl.conf y reiniciar. |
| Certificado SSL | Permisos o rutas incorrectas | Dovecot dice “Can’t load SSL certificate: The certificate is empty”. | Verificar que el certificado exista y que el usuario dovecot tenga permisos de lectura. Usar setfacl o cambiar permisos del directorio /etc/letsencrypt/.... |
| SPF/DKIM/DMARC | Correos caen en spam | Gmail o proveedores los entregan en carpeta spam. | Publicar los registros DNS correctamente y esperar propagación; monitorear con Google Postmaster Tools. |
| Usuarios | Los buzones no se crean automáticamente | El usuario del sistema no tiene carpeta Maildir. | Crear manualmente ~/Maildir con subcarpetas cur, new, tmp y asignar propietario. |
4. Verificación y pruebas recomendadas
- Postfix:
sudo netstat -tlnp | grep :25y:587. - Dovecot:
sudo netstat -tlnp | grep :993y:143. - Autenticación:
telnet localhost 587, EHLO, AUTH LOGIN (manual con base64). - SSL:
openssl s_client -connect localhost:993 -quiet. - Envío:
swaksomailcomandos para probar flujo local y externo. - DNS: Verificar propagación con
digo herramientas web.
5. Orden resumido de instalación
- Preparar sistema (hostname, firewall, actualizaciones).
- Instalar Postfix (configurar Internet Site).
- Instalar Dovecot (IMAP/POP3) y configurar autenticación y socket.
- Probar autenticación (telnet, swaks) sin SSL para confirmar SASL.
- Instalar SSL con Let’s Encrypt y configurar Postfix/Dovecot.
- Instalar OpenDKIM, generar claves y configurar milter.
- Crear usuarios del sistema, sus buzones
Maildir. - Configurar registros DNS (SPF, DKIM, DMARC).
- Monitorear y calentar la IP (envíos graduales).
Este esquema resume la experiencia práctica y los puntos donde se produjeron los mayores contratiempos (especialmente el socket de autenticación y la activación de SSL en Dovecot)
Deja un comentario