Skip to main content

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:

  1. Para los transportes:
begin transports
.include_if_exists /etc/exim.transports.pre.conf
  1. 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:

  1. Todo el correo saliente (excepto para dominios locales) se enviará a través de los smart hosts configurados
  2. El sistema alternará aleatoriamente entre los smart hosts disponibles (smart02.domain.tld y hetzner-smart01.domain.tld)
  3. Si un smart host falla, el sistema intentará automáticamente con el otro
  4. Las conexiones se realizan con TLS
  5. Los correos mantienen la firma DKIM gracias a la inclusión de la configuración DKIM en el transporte

Notas Importantes

  1. La configuración mantiene la firma DKIM en los correos reenviados
  2. El balanceo de carga entre smart hosts proporciona redundancia y distribución de carga
  3. La configuración se mantiene incluso después de actualizaciones de DirectAdmin o Exim
  4. 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:

  1. Revisar los logs de Exim para confirmar el uso alternado de los smart hosts
  2. Verificar que los correos salientes mantienen la firma DKIM
  3. 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.