Faça o Exim enviar devoluções para o postmaster em vez do remetente, para o remetente não local

2

Eu tenho alguns aliases de email que encaminham para hosts externos. Atualmente, se o host externo rejeitar uma mensagem, o Exim gerará uma mensagem devolvida e a enviará ao remetente original. Isso é ruim porque se o host externo rejeitar a mensagem como spam (um caso comum), então eu sou uma fonte de spam de backscatter.

Assim, se o remetente não é local, eu gostaria de enviar a devolução para o postmaster (eu). Como alternativa, enviar todos para o postmaster seria bom o suficiente.

A documentação do Exim dicas de que isso pode ser feito (" quando uma mensagem falha ao ser entregue ... O Exim envia uma mensagem para o remetente original ou para um endereço configurado alternativo ", ênfase adicionada), mas não consegui encontrar como.

Por exemplo, aqui está um extrato de log mostrando um spam de backscatter sendo criado (nesse caso, o servidor de origem não está aceitando conexões). [email protected] é o suposto remetente de um e-mail de spam para [email protected] , que encaminha para [email protected] ; O Gmail, então, rejeita a mensagem e meu servidor cria uma rejeição para [email protected] . Eu quero que esse salto vá para [email protected] . (Nomes de usuários ofuscados; o resto do log é textual).

2011-10-03 12:03:08 1RAkyw-0000cj-45 <= [email protected] H=(gyajnj.com [113.190.35.111] P=esmtp S=33927 [email protected]
2011-10-03 12:03:09 1RAkyw-0000cj-45 ** [email protected] <[email protected]> R=dnslookup T=remote_smtp: SMTP error from remote mail server after end of data: host gmail-smtp-in.l.google.com [74.125.47.26]: 552-5.7.0 Our system detected an illegal attachment on your message. Please\n552-5.7.0 visit http://mail.google.com/support/bin/answer.py?answer=6590 to\n552 5.7.0 review our attachment guidelines. i3si13239001yhk.107
2011-10-03 12:03:09 1RAkyz-0000cm-H5 <= <> R=1RAkyw-0000cj-45 U=Debian-exim P=local S=35124
2011-10-03 12:03:09 1RAkyw-0000cj-45 Completed
2011-10-03 12:03:30 1RAkyz-0000cm-H5 nacha.net [64.212.215.180] Connection timed out
2011-10-03 12:03:30 1RAkyz-0000cm-H5 == [email protected] R=dnslookup T=remote_smtp defer (110): Connection timed out

Aqui está o roteador relevante:

dnslookup:
  debug_print = "R: dnslookup for $local_part@$domain"
  driver = dnslookup
  domains = ! +local_domains
  transport = remote_smtp
  same_domain_copy_routing = yes
  # ignore private rfc1918 and APIPA addresses
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16 :\
                        172.16.0.0/12 : 10.0.0.0/8 : 169.254.0.0/16 :\
                        255.255.255.255
  no_more
    
por Reid 09.10.2011 / 19:12

3 respostas

0

A maneira de fazer isso é com o errors_to diretiva no roteador. Acredito que o Exim também suporta alguns condicionais para fazê-lo seletivamente.

    
por 22.10.2011 / 17:02
2

Algumas regras são burras porque causam mais mal do que bem! E as pessoas que defendem e criam eles sabem disso. Eu me importaria mais com a ética dos correios do que com as regras idiotas. E eu odeio regras idiotas e obviamente as pessoas definindo essas regras. Se você é como eu, ciente das conseqüências (veja acima) e quer estragar as regras, então com certeza,

1) Estabelecer a verificação do remetente e do destinatário para garantir-se OU

2) Falha ou congelar todos os retornos postmaster nulos. Faça isso com um filtro do sistema exim

system_filter = /etc/exim/screwtherules.exim
vi /etc/exim/screwtherules.exim
if $sender_address is ""
then
if ${lookup{${extract{2}{@}{$recipients}}}lsearch{/etc/localdomains}{yes}{no}} is "no"
then
fail text "Delayed bounce message ignored"
seen finish
endif
endif

3) OU crie uma ACL em acl_smtp_data time de verificação para encaminhar, falhar ou congelar os e-mails de rejeição nula sendo enviados para ou não para hosts específicos. Você pode extrair informações de cabeçalho recebidas conforme descrito no link

    
por 15.12.2011 / 12:03
1

Sua abordagem viola a RFC 5321, na qual você deve entregar ou devolver ao remetente. Existem apenas exceções muito limitadas: link

Então você tem três opções

  1. Entregue todos os retornos ao postmaster
    Isso é inválido. Sem exceções. Porque há situações em que você descarta retornos legítimos (cota excedida, erros de disco, ...) para todos os remetentes. Clientes legítimos e Spammers malvados.
  2. Entregar devoluções de e-mail retransmitido para postmaster
    Isso é legítimo. Mas deixa um buraco onde você descarta os retornos que não estão relacionados a violações de conteúdo (Spam, vírus), mas o usuário desconhecido, a caixa de correio cheia e afins.
  3. Entregar devoluções de e-mails retransmitidos que indicam violações de conteúdo ao postmaster. Solução perfeita, mas introduz a configuração estendida.

Escolha a opção 3. Mas seria melhor impedir o envio de e-mails ou aumentar a filtragem de spam antes de encaminhar esses e-mails.

    
por 09.10.2011 / 20:02