Introdução
O OpenDKIM é uma implementação open source do protocolo DKIM (DomainKeys Identified Mail), que permite a assinatura digital das mensagens enviadas por servidores de e-mail. Essa assinatura possibilita que o servidor receptor verifique a autenticidade da mensagem, melhorando a reputação do domínio, reduzindo falsificações (spoofing) e aumentando a entregabilidade.
Neste post, abordaremos o funcionamento do OpenDKIM, sua importância, configuração básica em servidores Postfix e dicas para garantir uma autenticação robusta.
O que é DKIM?
DKIM insere no cabeçalho da mensagem uma assinatura criptográfica baseada em uma chave privada mantida no servidor remetente. O servidor receptor utiliza a chave pública, publicada no DNS do domínio remetente via registro TXT, para validar essa assinatura. Se a assinatura for válida, garante-se que:
- A mensagem não foi alterada durante o transporte.
- A mensagem foi enviada por um servidor autorizado daquele domínio.
Por que usar OpenDKIM?
- Reduz rejeições: Muitos provedores, como Gmail, Outlook e Yahoo, exigem autenticação para não marcar mensagens como spam.
- Previne spoofing e phishing: Dificulta o envio de mensagens falsas usando seu domínio.
- Melhora reputação: Ajuda a manter uma reputação limpa do IP e do domínio.
- Compatível com SPF e DMARC: Complementa essas políticas de autenticação, tornando sua infraestrutura mais segura.
Componentes principais do OpenDKIM
- Chaves criptográficas: Par de chave pública e privada.
- Serviço de assinatura (milter): Interface entre o Postfix e o OpenDKIM, responsável por assinar as mensagens.
- Configurações: Arquivos para definir domínios, tabelas de chaves, hosts confiáveis, entre outros.
- Publicação DNS: Entrada TXT contendo a chave pública para validação do receptor.
Configuração básica do OpenDKIM com Postfix
Passo 1 – Instalação
apt install opendkim opendkim-tools
Passo 2 – Gerar chaves
mkdir -p /etc/opendkim/keys/seu-dominio.com.br
cd /etc/opendkim/keys/seu-dominio.com.br
opendkim-genkey -s default -d seu-dominio.com.br
chown opendkim:opendkim default.private
chmod 600 default.private
Passo 3 – Configurar OpenDKIM
Edite /etc/opendkim.conf para incluir:
AutoRestart Yes
AutoRestartRate 10/1h
Syslog yes
UMask 002
Canonicalization relaxed/simple
Mode sv
SubDomains no
Socket inet:12301@localhost
PidFile /var/run/opendkim/opendkim.pid
UserID opendkim:opendkim
KeyTable /etc/opendkim/key.table
SigningTable /etc/opendkim/signing.table
ExternalIgnoreList /etc/opendkim/trusted.hosts
InternalHosts /etc/opendkim/trusted.hosts
Passo 4 – Criar arquivos de mapeamento
/etc/opendkim/key.table
default._domainkey.seu-dominio.com.br seu-dominio.com.br:default:/etc/opendkim/keys/seu-dominio.com.br/default.private
/etc/opendkim/signing.table
*@seu-dominio.com.br default._domainkey.seu-dominio.com.br
/etc/opendkim/trusted.hosts
127.0.0.1
localhost
seu-dominio.com.br
Passo 5 – Configurar Postfix para usar OpenDKIM
No arquivo /etc/postfix/main.cf, adicione:
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301
Reinicie os serviços:
systemctl restart opendkim
systemctl restart postfix
Passo 6 – Publicar chave pública no DNS
O conteúdo para o registro TXT está no arquivo:
cat /etc/opendkim/keys/seu-dominio.com.br/default.txt
Exemplo de entrada DNS:
default._domainkey.seu-dominio.com.br IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqh..."
Publique no painel DNS do seu domínio.
Testes e validação
- Verifique o registro DNS com:
dig +short TXT default._domainkey.seu-dominio.com.br
- Envie um e-mail para ferramentas de verificação como:
[email protected]dkimvalidator.com
- Analise os cabeçalhos recebidos para confirmar a presença da assinatura DKIM válida.
Considerações finais
- Manutenção das chaves: Renove periodicamente as chaves para segurança.
- SPF e DMARC: Utilize em conjunto para maior eficácia na proteção.
- Monitoramento: Acompanhe os relatórios DMARC para identificar abusos.
Referências
- Documentação oficial OpenDKIM: http://www.opendkim.org/
- RFC 6376 – DomainKeys Identified Mail (DKIM): https://tools.ietf.org/html/rfc6376
- Guia Postfix + OpenDKIM: https://www.postfix.org/MILTER_README.html
