Exim: Como desativar o DKIM para o correio encaminhado?

2

Eu tenho o DKIM configurado no Exim para e-mails enviados, conforme a documentação . Exim assina todos os emails de saída. Mas algumas dessas mensagens enviadas são encaminhadas, graças ao arquivo .forward do usuário. Isso é um problema para mim, porque alguns desses encaminhamentos são spam (minha configuração exim não faz nenhuma verificação) e eu não quero assumir a responsabilidade por eles. Mas não consigo descobrir como configurar o Exim para não assinar essas mensagens.

Minha configuração é basicamente o padrão do Squeeze do Debian, com algumas macros DKIM_* definidas. Eu posso postar mais detalhes, mas acho que ver qualquer exemplo de assinatura condicional do DKIM me acertaria.

    
por Andrew 24.10.2012 / 00:54

3 respostas

3

Bit de necropost, mas eu simplesmente uso uma linha:

dkim_private_key = ${if or {{!def:sender_host_address}{def:authenticated_id}}{DKIM_PRIVATE_KEY}{}}

(onde DKIM_PRIVATE_KEY é uma macro que fornece o caminho para a minha chave privada dkim).

Em seguida, se esta for uma mensagem 'originada localmente' (assim, $ sender_host_address é indefinido) ou o email vier de um usuário autenticado, dkim_private_key será definido e a mensagem será assinada.

Else (que deve significar apenas que estamos encaminhando uma mensagem, supondo que não seja um relay), dkim_private_key será a string vazia que (das especificações) significa que a mensagem não será assinada.

    
por 30.01.2014 / 08:06
0

Eu tenho uma configuração semelhante (embora eu faça spam / antivírus no meu e-mail encaminhado, o que eu recomendo strongmente que você DEVE também). Eu tenho um roteador que detecta e-mail encaminhado e um roteador que detecta a autenticação SMTP, e um roteador que detecta quando está vindo do sistema de webmail. No seu caso, você pode usar a presença de um arquivo ~ / .forward para ajudar a tomar a decisão de que é um encaminhador em vez de uma entrega local. Cada roteador define um transporte específico projetado para cada caso. Os transportes são onde a assinatura é feita ou não. Como você pode ver na configuração do meu transporte abaixo, eu DKIM assino webmail e smtp auth, mas não encaminhadores:

remote_smtp_authenticated:
  debug_print = "Transport: remote_smtp_authenticated for $local_part@$domain"
  driver = smtp
  max_rcpt = 10
  hosts_max_try = 2
.include_if_exists /etc/exim/dkim_transports.conf

remote_smtp_webmail:
  debug_print = "Transport: remote_smtp_webmail for $local_part@$domain"
  driver = smtp
  max_rcpt = 10
  hosts_max_try = 2
.include_if_exists /etc/exim/dkim_transports.conf

remote_smtp_forwarder:
  debug_print = "Transport: remote_smtp_forwarder for $local_part@$domain"
  driver = smtp
  max_rcpt = 10
  hosts_max_try = 2

O dkim_transports.conf simplesmente define todas as configurações do dkim_ * usando uma série de macros projetadas especificamente para o meu site:

CentOS58[root@ivwm51 exim]# more dkim_transports.conf
.ifdef DKIM_SIGNING
  dkim_domain = DKIM_DOMAIN
  dkim_selector = DKIM_SELECTOR
  dkim_private_key = DKIM_PRIVATE_KEY
.endif

Você pode modelar o seu da mesma forma.

    
por 24.10.2012 / 15:41
0

Acabei de verificar a authenticated_sender variável quando definir o dkim_domain .

dkim_domain = ${if def:authenticated_sender {DKIM_DOMAIN}}

Isso inclui clientes autenticados SMTP e usuários locais.

Você pode colocar essa condição em torno de qualquer uma das opções obrigatórias do DKIM, incluindo dkim_domain , dkim_selector ou dkim_private_key .

Você também pode criar uma configuração mais complexa em que o seletor difere, dependendo se o email foi gerado localmente, de um cliente autenticado ou encaminhado. Dessa forma, você pode ter reputação diferente para os três tipos de origens de e-mail.

Por exemplo, para usar uma chave separada para mensagens autenticadas / locais vs. encaminhadas:

dkim_selector = ${if def:authenticated_sender {authenticated}{forwarded}}
    
por 18.03.2015 / 19:23

Tags