Pré-requisitos
- Servidor Debian 12
- Servidor de e-mail Postfix instalado e configurado
- Acesso root ou sudo ao servidor
Instalação do OpenDKIM
Passo 1: Update e Instalação do OpenDKIM
Atualizar os pacotes do sistema:
sudo apt-get update
sudo apt-get upgrade
Instalar o OpenDKIM e ferramentas associadas:
sudo apt-get install opendkim opendkim-tools
Passo 2: Configuração do OpenDKIM
Editar o arquivo de configuração principal do OpenDKIM:
sudo nano /etc/opendkim.conf
Adicione ou modifique as seguintes linhas:
AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
Mode sv
SubDomains No
OversignHeaders From
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable.regex
InternalHosts /etc/opendkim/TrustedHosts
Socket inet:8891@localhost
PidFile /var/run/opendkim/opendkim.pid
UserID opendkim:opendkim
Criar e configurar o arquivo KeyTable:
sudo nano /etc/opendkim/KeyTable
Adicione as seguintes linhas:
default._domainkey.exemplo1.com exemplo1.com:default:/etc/opendkim/keys/exemplo1.com/default.private
default._domainkey.exemplo2.com exemplo2.com:default:/etc/opendkim/keys/exemplo2.com/default.private
default._domainkey.exemplo3.com exemplo3.com:default:/etc/opendkim/keys/exemplo3.com/default.private
default._domainkey.exemplo4.com exemplo4.com:default:/etc/opendkim/keys/exemplo4.com/default.private
default._domainkey.exemplo5.com exemplo5.com:default:/etc/opendkim/keys/exemplo5.com/default.private
default._domainkey.exemplo6.com exemplo6.com:default:/etc/opendkim/keys/exemplo6.com/default.private
Criar e configurar o arquivo SigningTable regex:
sudo nano /etc/opendkim/SigningTable.regex
Adicione as seguintes linhas (o "*" aceita qualquer endereço do domínio. Caso queira restringir, coloque o e-mail completo linha a linha):
*@exemplo1.com default._domainkey.exemplo1.com
*@exemplo2.com default._domainkey.exemplo2.com
*@exemplo3.com default._domainkey.exemplo3.com
*@exemplo4.com default._domainkey.exemplo4.com
*@exemplo5.com default._domainkey.exemplo5.com
*@exemplo6.com default._domainkey.exemplo6.com
Criar e configurar o arquivo TrustedHosts:
sudo nano /etc/opendkim/TrustedHosts
Adicione as seguintes linhas (troque o 192.168.1.0/24 pela rede onde está seu servidor de e-mail):
127.0.0.1
::1
localhost
192.168.1.0/24
Passo 3: Gerar Chaves DKIM para Cada Domínio
Criar diretórios de chaves e gerar chaves DKIM. Para cada domínio, execute os seguintes comandos:
sudo mkdir -p /etc/opendkim/keys/exemplo1.com
sudo opendkim-genkey -D /etc/opendkim/keys/exemplo1.com/ -d exemplo1.com -s default
sudo mv /etc/opendkim/keys/exemplo1.com/default.private /etc/opendkim/keys/exemplo1.com/default.private
sudo chown -R opendkim:opendkim /etc/opendkim/keys/exemplo1.com
sudo chmod go-r /etc/opendkim/keys/exemplo1.com/default.private*
Repita para cada domínio, substituindo exemplo1.com pelo domínio correspondente.
Adicionar chaves públicas ao DNS:
O conteúdo do arquivo default.txt gerado deve ser adicionado ao DNS como um registro TXT para cada domínio. Por exemplo, para exemplo2.com:
* Nome do Registro: default._domainkey.exemplo2.com
* Tipo de Registro: TXT
* Conteúdo do Registro:
v=DKIM1; h=sha256; k=rsa;
p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsfTtlrXfreIwIl0roxJDeYGTOop3cEGNJs
ANDZ8lerkioAMtlF6oLzKhRKyJEesAhZ/oVp51XqvF+3VpKbfhNt967PX3qIzDvhPQCDEHEhc4SyJKhET
Fex2aZLQdh7a3WhYWK8o9Z7DUFLoS11Z7lqqIJYPho6RykwUFAk0u0eUVtdr6Q4ICmzcH2W57BM0u
Z2RPQZ6g0Mr2eq3kYPUzlxaAOPVkP3yxGlvEzfs3vAWnzjop7Xaa7N7awuUeMX8oN4P7lex5rWB/0q
cSLdaWAuXWz6apH1C1iL+dY0fitg9cfO8DE8APM/QTSGaDw3ovBM4g29nSGxhVxUJjBuowFQIDAQ
AB
Passo 4: Configurar o Postfix para Usar o OpenDKIM
Editar o arquivo main.cf do Postfix:
sudo nano /etc/postfix/main.cf
Adicionar as seguintes linhas ao arquivo main.cf do Postfix:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks
reject_unauth_destination
mynetworks = 127.0.0.0/8 192.168.1.0/24 [::ffff:127.0.0.0]/104 [::1]/128
Reiniciar o Postfix:
sudo systemctl restart postfix
Validação
Passo 5: Verificar a Configuração
Envie um e-mail de teste e verifique os cabeçalhos do e-mail para garantir que o DKIM está funcionando corretamente. Procure por algo como:
"DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=exemplo2.com; s=default; ..."
Usar ferramentas online para verificar o DKIM:
Utilize ferramentas como DKIM Core Key Check (
https://dkimcore.org/tools/keycheck.html) para verificar se o registro DNS está correto e que a assinatura DKIM está sendo verificada corretamente.
Solução de Problemas
Verifique os logs do OpenDKIM para mensagens de erro ou advertências (procure em algum dos logs abaixo):
sudo tail -f /var/log/mail.log | grep opendkim
sudo tail -f /var/log/syslog | grep opendkim
sudo journalctl -xef | grep opendkim
Verificar permissões:
Certifique-se de que os arquivos e diretórios de chaves tenham as permissões corretas:
sudo chown -R opendkim:opendkim /etc/opendkim
sudo chmod -R 750 /etc/opendkim
Conclusão
Seguindo esses passos, você terá configurado o DKIM no seu servidor Debian, integrado com Postfix e suportando múltiplos domínios. Isso ajudará a garantir a autenticidade dos seus e-mails e a melhorar a entregabilidade, reduzindo a chance de seus e-mails serem marcados como spam.
1. Pré-requisitos