Configuração do DKIM no Debian com Postfix e Múltiplos Domínios

DomainKeys Identified Mail (DKIM) é um método de autenticação de e-mails que permite aos destinatários verificar se um e-mail enviado foi realmente autorizado pelo domínio de origem. Ele funciona assinando digitalmente os e-mails com uma chave privada e verificando essa assinatura com uma chave pública armazenada no DNS do domínio. Serviço útil para quem usa servidor de e-mail com IP compartilhado.

[ Hits: 1.618 ]

Por: Gilberto Russo em 31/07/2024


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.
   

Páginas do artigo
   1. Pré-requisitos
Outros artigos deste autor

Acesso remoto utilizando FreeNX

Proxy reverso e balanceamento de carga utilizando o Pound

Osiris - Integridade do sistema de arquivos

Firewalls redundantes utilizando VRRP

Instalando o Squid + SquidGuard

Leitura recomendada

Os atuais MDAs e as linguagens de filtragem de e-mail (parte 1 - Procmail)

Postfix + MySQL + Submission Port + Dovecot + Postfix Admin no CentOS 6.3

Servidor de email + webmail no OpenSuSE 10.2

Email + EGroupWare + Active Directory

Trabalhando com os logs do Postfix/Qmail usando o isoqlog

  
Comentários
[1] Comentário enviado por maurixnovatrento em 07/09/2024 - 17:49h


bom artigo.

______________________________________________________________________
Inscreva-se no meu Canal: https://www.youtube.com/@LinuxDicasPro
Repositório GitHub do Canal: https://github.com/LinuxDicasPro
Grupo do Telegram: https://t.me/LinuxDicasPro
Meu GitHub Pessoal: https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts