Como Gerar e Configurar DKIM para Seu Servidor de E-mail Multidomínio com Postfix, Dovecot e MariaDB

Se você já tem o básico do seu servidor de e-mail rodando (Postfix, Dovecot, MariaDB, DNS no Cloudflare, Certbot e Webmail), falta só a etapa fundamental para garantir a autenticidade das suas mensagens: configurar o DKIM (DomainKeys Identified Mail).


O que é DKIM?

DKIM é um sistema de autenticação de e-mails que usa criptografia assimétrica para assinar digitalmente as mensagens enviadas, garantindo ao destinatário que o e-mail realmente veio do seu domínio e não foi alterado no caminho.

Para isso, você precisa gerar um par de chaves (privada e pública) e configurar:

  • A chave privada no servidor (OpenDKIM)
  • A chave pública no DNS como registro TXT

Passo a passo para configurar DKIM usando OpenDKIM

1. Instalar o OpenDKIM e as ferramentas

apt update
apt install opendkim opendkim-tools

2. Criar a estrutura de diretórios para as chaves

mkdir -p /etc/opendkim/keys/seudominio.com.br
chown -R opendkim:opendkim /etc/opendkim
chmod go-rwx /etc/opendkim/keys/seudominio.com.br

3. Gerar o par de chaves para o seu domínio

cd /etc/opendkim/keys/seudominio.com.br
opendkim-genkey -s default -d seudominio.com.br
chown opendkim:opendkim default.private
  • -s default define o seletor, usado no DNS e na assinatura
  • Arquivos gerados:
    • default.private — chave privada (mantenha em segredo)
    • default.txt — conteúdo para o DNS TXT

4. Publicar a chave pública no DNS (Cloudflare)

Exiba o conteúdo para copiar:

cat default.txt

No Cloudflare, crie um registro TXT com:

  • Nome: default._domainkey (substitua default pelo seletor se usar outro)
  • Conteúdo: valor da chave pública dentro do TXT, por exemplo:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtV1...

Desative o proxy da nuvem (deixe como DNS only).


5. Configurar o OpenDKIM

Edite ou crie /etc/opendkim.conf com:

AutoRestart             Yes
AutoRestartRate         10/1h
Syslog                  yes
SyslogSuccess           yes
LogWhy                  yes

Canonicalization        relaxed/simple
Mode                    sv
SubDomains              no

KeyFile                 /etc/opendkim/keys/seudominio.com.br/default.private
Selector                default
Socket                  inet:12345@localhost

UserID                  opendkim:opendkim

TrustedHosts            /etc/opendkim/trusted.hosts

6. Definir hosts confiáveis

Crie /etc/opendkim/trusted.hosts com:

127.0.0.1
localhost
seudominio.com.br

7. Integrar OpenDKIM ao Postfix

No /etc/postfix/main.cf, adicione:

milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12345
non_smtpd_milters = inet:localhost:12345

8. Reinicie os serviços

systemctl restart opendkim
systemctl enable opendkim

systemctl restart postfix

9. Testar a configuração

Teste localmente:

opendkim-testkey -d seudominio.com.br -s default -vvv

Envie e-mail para serviços como:

e confirme que a assinatura DKIM está presente e válida.


Considerações finais

  • Repita o processo para cada domínio que você hospeda, criando chaves e registros DNS específicos.
  • Selecione nomes de seletor (default, mail, dkim2025, etc.) para facilitar a rotação futura de chaves.
  • Combine DKIM com SPF e DMARC para garantir alta entregabilidade e segurança.
  • Mantenha as chaves privadas bem protegidas e backup seguro.
  • Automatize a criação e rotação de chaves para segurança avançada.
Rolar para cima