Configuración de Smart Relay en DirectAdmin/Exim
Introducción al smart relay para Directadmin con Exim
DirectAdmin proporciona un mecanismo de inclusión de archivos para personalizar la configuración de Exim sin perder los cambios en actualizaciones posteriores. Para la configuración de smart relay, se utilizan dos archivos de inclusión específicos que se cargan en diferentes secciones del archivo principal exim.conf
.
Ubicación de las Inclusiones
En el archivo principal de configuración de Exim (/etc/exim.conf
), encontramos dos inclusiones importantes:
- Para los transportes:
begin transports
.include_if_exists /etc/exim.transports.pre.conf
- Para los routers:
begin routers
.include_if_exists /etc/exim.routers.pre.conf
Archivos de Configuración
1. Transport Configuration (/etc/exim_directadmin/exim.transports.pre.conf
)
Este archivo define cómo se realizará el envío de correo al smart host:
spamgateway_smarthost_transport:
driver = smtp
hosts_require_tls = *
.include_if_exists /etc/exim.dkim.conf
Desglose de la configuración:
-
driver = smtp
: Utiliza el protocolo SMTP estándar para el envío -
hosts_require_tls = *
: Fuerza el uso de TLS para todas las conexiones - Incluye la configuración DKIM para asegurar que los correos salientes sean firmados correctamente
2. Router Configuration (/etc/exim_directadmin/exim.routers.pre.conf
)
Este archivo define las reglas de enrutamiento para el correo saliente:
spamgateway_smarthost_router:
driver = manualroute
domains = ! +local_domains
ignore_target_hosts = 127.0.0.0/8
condition = "${perl{check_limits}}"
transport = spamgateway_smarthost_transport
route_list = * smart02.domain.tld:hetzner-smart01.domain.tld
hosts_randomize = true
Desglose de la configuración:
-
driver = manualroute
: Define un enrutamiento manual para los correos -
domains = ! +local_domains
: Aplica solo a dominios que no son locales -
ignore_target_hosts = 127.0.0.0/8
: Evita el envío a direcciones locales -
condition = "${perl{check_limits}}"
: Verifica límites de envío mediante una función Perl -
transport = spamgateway_smarthost_transport
: Utiliza el transporte definido anteriormente -
route_list
: Define los smart hosts disponibles -
hosts_randomize = true
: Habilita el balanceo de carga aleatorio entre los smart hosts
Funcionamiento
Con esta configuración:
- Todo el correo saliente (excepto para dominios locales) se enviará a través de los smart hosts configurados
- El sistema alternará aleatoriamente entre los smart hosts disponibles (
smart02.domain.tld
yhetzner-smart01.domain.tld
) - Si un smart host falla, el sistema intentará automáticamente con el otro
- Las conexiones se realizan con TLS
- Los correos mantienen la firma DKIM gracias a la inclusión de la configuración DKIM en el transporte
Notas Importantes
- La configuración mantiene la firma DKIM en los correos reenviados
- El balanceo de carga entre smart hosts proporciona redundancia y distribución de carga
- La configuración se mantiene incluso después de actualizaciones de DirectAdmin o Exim
- Los cambios se realizan en archivos separados, lo que facilita el mantenimiento y la depuración
Verificación
Para verificar que la configuración está funcionando correctamente, puedes:
- Revisar los logs de Exim para confirmar el uso alternado de los smart hosts
- Verificar que los correos salientes mantienen la firma DKIM
- Comprobar que el sistema cambia automáticamente al host alternativo si uno falla
Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris
Si necesitas soporte profesional puedes contratar con Castris soporte profesional.