postfix + opendkim: os campos “Sender:” e “Message-Id” não incluídos na assinatura

6

Tenho o postfix e o opendkim em execução. postfix se comunica com o opendkim via sockets unix. Tudo isso funciona desde que eu não adicione alguns campos de cabeçalho de correio especiais à lista de campos que o opendkim deve assinar.

configuração de postfix:

main.cf:

...
smtpd_milters = unix:/var/spool/postfix/milter/opendkim

non_smtpd_milters = unix:/var/spool/postfix/milter/opendkim
...

No meu opendkim.conf eu tenho esta entrada:

...
AlwaysSignHeaders      To,Subject,MIME-Version,Content-Type,Sender,From,Message-Id,Date,Reply-To,List-Unsubscribe
...

Se eu enviar um email com o comando postfix sendmail como este

sendmail -f [email protected] -i -t <<EOF
From: [email protected]
Sender: [email protected]
To: [email protected]
Subject: Test

Test
EOF

O Gmail me informará:

dkim=hardfail

Usando o

Diagnostics true

a entrada no opendkim.conf revelou através do "z = ..." a entrada do cabeçalho do debug mail que o opendkim não incluiu os campos "Message-Id" e "Sender" na assinatura, mas reportou a inclusão com o

h=From:To:Subject:Date:MIME-Version:Content-Type:Sender:Reply-To:List-Unsubscribe;

entrada do cabeçalho de e-mail.

Pesquisando, descobri que quando removo os campos Message-Id e Sender da entrada "AlwaysSignHeaders" no opendkim.conf, o Gmail fica feliz novamente.

Como eu envio e-mails com o comando sendmail, posso ter certeza de que pelo menos o campo "Sender:" deve estar disponível para postfix e opendkim desde o início.

Portanto, se o opendkim usar todos os campos de cabeçalho obtidos, isso significa que o postfix não está dando ao opendkim todos os campos de cabeçalho. Eu tentei verificar isso, ativando a criação de log detalhado para os processos de "limpeza" e "conversão trivial" do postfix, mas tenho que admitir que não vejo nada de útil nos logs, particularmente não consigo extrair as informações quais campos de cabeçalho de correio o postfix está fornecendo para o opendkim. Se alguém puder usá-lo, posso postar esses logs aqui ...

Estou ficando sem ideias, então espero que alguém possa me dar algumas dicas úteis ...

    
por Matthias 15.03.2013 / 19:53

2 respostas

7

Eu descobri o motivo (com a ajuda dos caras gentis da lista de discussão do opendkim):

No meu arquivo opendkim.conf eu tinha apenas o campo

AlwaysSignHeaders       From,Sender,To,CC,Subject,Message-Id,Date

especificado. Descobriu-se que você precisa adicionar o campo SignHeaders também, então agora a configuração se parece com:

...
SignHeaders             From,Sender,To,CC,Subject,Message-Id,Date
AlwaysSignHeaders       From,Sender,To,CC,Subject,Message-Id,Date
...

é isso.

Editar:

O pessoal da opendkim observou que AlwaysSignHeaders está obsoleto, OversignHeaders deve ser usado em seu lugar.

    
por 17.03.2013 / 09:47
1

Você tentou assinar uma mensagem de teste com ambos Message-ID: e Sender: cabeçalhos presentes?

Seu problema pode ser causado pelo milter que está obtendo a versão da mensagem antes posstfix / MTA adicionou os cabeçalhos mencionados acima (tenho certeza de que quaisquer correções MTA boas estão faltando Message-Id: header).

link : O DKIM usa os cabeçalhos e o corpo do email para gerar uma assinatura. Se os cabeçalhos forem reescritos ou o texto for anexado ao corpo da mensagem após ter sido assinado, a verificação do dkim falhará.

P.S. Opendkim IMHO deve fornecer opção para gerar-se falta de ID de mensagem:

Adicionado para futuros leitores : o OpenDKIM fornece opções para depurar problemas de "cabeçalhos alterados": KeepTemporaryFiles e TemporaryDirectory

link

    
por 16.03.2013 / 13:44

Tags