Depois de mover nosso servidor para o Postfix, decidi implementar o DKIM usando o OpenDKIM. Eu consegui instalar e executar isso com sucesso, mas enquanto ele é ativado como um milter, todo o encaminhamento de e-mails no servidor é interrompido.
Por exemplo, se eu criar uma caixa de correio sob [email protected] e configurá-la para encaminhar para outro endereço (externo e interno são afetados igualmente), o remetente original recebeu uma mensagem semelhante à abaixo:
This is the mail system at host server.example.com.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<[email protected]>: Command rejected
Final-Recipient: rfc822; [email protected]
Action: failed
Status: 5.7.1
Diagnostic-Code: X-Postfix; Command rejected
Alguém tem alguma sugestão ou experiência? Eu estou bastante familiarizado com o qMail, mas não tenho uma grande quantidade de experiência com o Postfix e como este é um servidor de produção, eu preferiria não quebrar as coisas sem conselho.
O problema é resolvido quando as seguintes linhas são comentadas em /etc/postfix.main.cf
### custom ###
# OpenDKIM
#milter_default_action = accept
#milter_protocol = 6
#smtpd_milters = , inet:127.0.0.1:8891, inet:127.0.0.1:12768
#non_smtpd_milters = , inet:127.0.0.1:8891, inet:127.0.0.1:12768
Aqui estão os erros correspondentes do maillog (estes aparecem quando o código /etc/postfix.main.cf
, como acima, é descomentado:
Sep 8 10:09:09 server postfix/cleanup[24811]: BD99260811C5: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 5.7.1 Command rejected; from=<[email protected]> to=<[email protected]>
Sep 8 10:09:09 server postfix/cleanup[24811]: BD99260811C5: to=<[email protected]>, relay=none, delay=0.22, delays=0.22/0/0/0, dsn=5.7.1, status=bounced (Command rejected)
Aqui, o serviço que escuta na porta 8891 e 12768, respectivamente.
[root@server ~]# netstat -anp|grep :8891
tcp 0 0 127.0.0.1:8891 0.0.0.0:* EN 25137/opendkim
[root@server ~]# netstat -anp|grep :12768
tcp 0 0 127.0.0.1:12768 0.0.0.0:* EN 33037/psa-pc-remote
O arquivo de configuração completo opendkim.conf pode ser encontrado em aqui . O código abaixo foi versão aparada dele.
$ egrep -v '^#' opendkim.conf | egrep -v '$^'
PidFile /var/run/opendkim/opendkim.pid
Mode sv
SendReports yes
SoftwareHeader yes
Canonicalization relaxed/relaxed
Selector default
MinimumKeyBits 1024
KeyFile /etc/opendkim/keys/default.private
Syslog yes
SyslogSuccess yes
LogWhy yes
UMask 002
OversignHeaders From
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts /etc/opendkim/TrustedHosts
SignatureAlgorithm rsa-sha256
AutoRestart Yes
UserID opendkim:opendkim
Socket inet:8891@localhost