exim4 smarthost con verificación del remitente

exim4 smarthost con verificación del remitente

Estoy intentando configurar exim4 como host inteligente frente al servidor de correo del ISP. Todo funciona bien, excepto algunos correos electrónicos provenientes de remitentes no válidos (probablemente spam). El ISP los rechaza con

450 4.1.8 <[email protected]>: Sender address rejected: Domain not found

lo que hace que exim smarthost vuelva a intentarlo, aumentando el tamaño de la cola innecesariamente.

Lo más cerca que logré configurar esto fue usando /etc/exim4/local_sender_calloutel archivo. Pero luego la llamada llega al ISP, que luego la rechaza con

554 5.7.1 <[email protected]>: Relay access denied(para cualquier dirección, incluso las válidas). La configuración /etc/exim4/passwd.clientno parece funcionar en este caso...

¿Cómo puedo configurar la verificación del remitente (con o preferiblemente sin llamada) con exim smarthost?

aclaración: mi exim no es un relé abierto, ya especifica solo una lista restringida de dominios para los que acepta correos electrónicos. Luego, esos correos electrónicos se envían al host inteligente para su entrega en los buzones de correo reales. Un diagrama de la configuración probablemente se vería así.

Internet -> my exim(mx) -> ISP(smarthost) <- users accessing email via POP/IMAP

Los registros mx de mi dominio apuntan a mi servidor exim. Sin embargo, el ISP acepta correos electrónicos de mi dominio y los almacena en buzones de correo.

Respuesta1

De hecho, estás configurando un MX frontal con un conjunto de filtros más restrictivo y más profundo hacia el destino final. La mejor manera de abordar esto es ser al menos igual de restrictivo al principio.

Sin embargo, como tiene un host inteligente, envía correos electrónicos para "cualquier dominio" al host inteligente. Esto combina mal con la verificación de la validez del dominio: en algún lugar de su ACL definida para los comandos RCPT, debería haber una require verify = senderque garantice que Exim tenga un método para enviar correo electrónico al dominio del remitente antes de que acepte el mensaje.

Como siempre está activo, recomiendo colocar un enrutador adicional directamente antes de su enrutador smarthost. Suponiendo que el smarthost tiene domains = ! +local_domainsy no_more, luego agréguelo no_verifyal enrutador smarthost y antes de él, inserte este enrutador:

remote_dns_verify:
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  # ignore_target_hosts = +some_hostlist_matching_rfc1918_and_so_on
  same_domain_copy_routing
  verify_only
  no_more

Con esto, elverificaciónLa ruta no utilizará el host inteligente, por lo que ya no tendrá "una ruta para todo". La verificación solo podrá enrutar dominios remotos que tengan DNS, por lo que ya no aceptará correos electrónicos que su ISP rechace por no ser enrutables.

Después de eso, consideraría establecer algunas reglas de reintento que coincidan con errores remotos específicos para dejar de reintentar correos que el ISP ha rechazado. Verhttp://www.exim.org/exim-html-current/doc/html/spec_html/ch-retry_configuration.htmlpara más.

información relacionada