Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Rocky Linux 9: como configurar Postfix com DKIM corretamente

17 min de leitura  ·  Guia técnico

Configurar Postfix com DKIM no Rocky Linux 9 significa integrar o daemon OpenDKIM ao servidor de email Postfix para assinar digitalmente todas as mensagens enviadas, aumentando a entregabilidade e reduzindo a chance de cair em spam. Para concluir essa configuração, siga estes passos:

  1. Instalar o Postfix e o OpenDKIM via DNF
  2. Gerar o par de chaves DKIM para o domínio
  3. Configurar os arquivos KeyTable, SigningTable e TrustedHosts do OpenDKIM
  4. Integrar o OpenDKIM ao Postfix via socket Unix
  5. Publicar a chave pública no DNS do domínio
  6. Testar e validar a assinatura DKIM com ferramentas externas

Pré-requisitos para configurar Postfix com DKIM no Rocky Linux 9

  • Sistema operacional: Rocky Linux 9 (mínimo) com acesso root ou sudo
  • Postfix: versão disponível nos repositórios padrão do Rocky Linux 9 (postfix 3.5.x ou superior)
  • OpenDKIM: disponível via repositório EPEL — o pacote epel-release deve estar instalado
  • Domínio próprio com acesso ao painel DNS para publicar registros TXT
  • Porta 25 e 587 liberadas no firewalld e no provedor de VPS
  • Hostname do servidor configurado corretamente com FQDN (ex: mail.seudominio.com)
  • Conhecimento básico de edição de arquivos no terminal (vim, nano)

Se você ainda não sabe como acessar seu servidor via SSH, consulte o guia Acessando servidores VPS Linux da AviraHost antes de prosseguir.

Instalando o Postfix e o OpenDKIM no Rocky Linux 9

A autenticação de email com DKIM depende de dois componentes principais: o Postfix, que é o agente de transferência de mensagens (MTA), e o OpenDKIM, que atua como um milter (mail filter) responsável por assinar e verificar as mensagens. No Rocky Linux 9, o Postfix já está disponível nos repositórios base, enquanto o OpenDKIM requer o repositório EPEL.

  1. Habilite o repositório EPEL:
dnf install -y epel-release
  1. Instale o Postfix e o OpenDKIM:
dnf install -y postfix opendkim opendkim-tools
Output esperado:
Installed:
  opendkim-2.11.0-0.el9.x86_64
  opendkim-tools-2.11.0-0.el9.x86_64
  postfix-3.5.9-24.el9.x86_64
Complete!
  1. Habilite e inicie os serviços:
systemctl enable --now postfix opendkim
  1. Confirme que ambos estão ativos:
systemctl status postfix opendkim
Output esperado:
● postfix.service - Postfix Mail Transport Agent
     Active: active (running)
● opendkim.service - DomainKeys Identified Mail (DKIM) Milter
     Active: active (running)

Com os serviços em execução, o próximo passo é gerar as chaves criptográficas que serão usadas para assinar os emails.

Gerando o par de chaves DKIM para o domínio

A geração de chaves DKIM é o núcleo da configuração de assinatura digital de email. Cada domínio precisa de um par de chaves RSA: a chave privada fica no servidor e assina as mensagens; a chave pública é publicada no DNS para que os servidores receptores possam validar a assinatura. O seletor (selector) é um identificador arbitrário — o valor mail é amplamente utilizado.

  1. Crie o diretório para armazenar as chaves:
mkdir -p /etc/opendkim/keys/seudominio.com
cd /etc/opendkim/keys/seudominio.com
  1. Gere o par de chaves com o seletor mail:
opendkim-genkey -b 2048 -d seudominio.com -s mail
Output esperado:
mail.private  mail.txt

O arquivo mail.private contém a chave privada RSA de 2048 bits. O arquivo mail.txt contém o registro DNS TXT que você publicará no seu provedor de DNS.

  1. Ajuste as permissões dos arquivos de chave:
chown -R opendkim:opendkim /etc/opendkim/keys/
chmod 600 /etc/opendkim/keys/seudominio.com/mail.private

Atenção: a chave privada nunca deve ser compartilhada ou ter permissões de leitura para outros usuários. Uma chave comprometida permite que terceiros assinem emails em nome do seu domínio.

  1. Visualize o conteúdo do registro DNS gerado:
cat /etc/opendkim/keys/seudominio.com/mail.txt
Output esperado:
mail._domainkey IN TXT ( "v=DKIM1; k=rsa; "
    "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..." )  ; ----- DKIM key mail for seudominio.com

Copie o valor completo do campo p= — você precisará dele para criar o registro DNS na próxima etapa.

Configurando os arquivos do OpenDKIM

O OpenDKIM utiliza três arquivos de configuração auxiliares para mapear domínios e chaves: KeyTable (associa seletor e chave), SigningTable (define quais endereços usam qual chave) e TrustedHosts (lista de hosts confiáveis que não precisam de verificação). Essa arquitetura modular permite suporte a múltiplos domínios no mesmo servidor.

  1. Edite o arquivo principal de configuração do OpenDKIM:
nano /etc/opendkim.conf

Localize e ajuste (ou adicione) as seguintes diretivas:

Mode                    sv
Canonicalization        relaxed/simple
Domain                  seudominio.com
Selector                mail
KeyFile                 /etc/opendkim/keys/seudominio.com/mail.private
KeyTable                /etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable
ExternalIgnoreList      /etc/opendkim/TrustedHosts
InternalHosts           /etc/opendkim/TrustedHosts
Socket                  local:/run/opendkim/opendkim.sock
PidFile                 /run/opendkim/opendkim.pid
UMask                   007
UserID                  opendkim:opendkim
LogWhy                  Yes
Syslog                  Yes
SyslogSuccess           Yes
  1. Crie o arquivo KeyTable:
nano /etc/opendkim/KeyTable
mail._domainkey.seudominio.com seudominio.com:mail:/etc/opendkim/keys/seudominio.com/mail.private
  1. Crie o arquivo SigningTable:
nano /etc/opendkim/SigningTable
*@seudominio.com mail._domainkey.seudominio.com
  1. Crie o arquivo TrustedHosts:
nano /etc/opendkim/TrustedHosts
127.0.0.1
localhost
seudominio.com
mail.seudominio.com
  1. Ajuste as permissões dos arquivos de configuração:
chown -R opendkim:opendkim /etc/opendkim/
chmod 644 /etc/opendkim/KeyTable /etc/opendkim/SigningTable /etc/opendkim/TrustedHosts
  1. Reinicie o OpenDKIM para aplicar as configurações:
systemctl restart opendkim
systemctl status opendkim
Output esperado:
● opendkim.service - DomainKeys Identified Mail (DKIM) Milter
     Active: active (running) since ...

Integrando o OpenDKIM ao Postfix via socket Unix

A integração entre o Postfix e o OpenDKIM é feita através de um socket Unix, que é mais seguro e eficiente do que um socket TCP local. O Postfix passa cada mensagem ao OpenDKIM antes de entregá-la, e o milter adiciona o cabeçalho DKIM-Signature à mensagem. Essa etapa é onde a maioria dos erros de configuração ocorre — preste atenção ao caminho do socket.

  1. Edite o arquivo principal do Postfix:
nano /etc/postfix/main.cf

Adicione ou ajuste as seguintes linhas ao final do arquivo:

myhostname = mail.seudominio.com
mydomain = seudominio.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8

smtpd_milters = local:/run/opendkim/opendkim.sock
non_smtpd_milters = local:/run/opendkim/opendkim.sock
milter_default_action = accept
milter_protocol = 6
  1. Habilite a porta 587 (submission) no arquivo master.cf:
nano /etc/postfix/master.cf

Descomente ou adicione o bloco abaixo:

submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  1. Adicione o usuário postfix ao grupo opendkim para que ele possa acessar o socket:
usermod -aG opendkim postfix
  1. Reinicie ambos os serviços:
systemctl restart opendkim postfix
  1. Libere as portas no firewalld:
firewall-cmd --permanent --add-service=smtp
firewall-cmd --permanent --add-port=587/tcp
firewall-cmd --reload
Output esperado:
success

Para entender melhor como gerenciar registros DNS associados ao seu domínio de email, consulte o artigo Como Configurar DNS Personalizado para Seu Domínio na AviraHost.

Publicando a chave pública DKIM no DNS

A publicação da chave pública no DNS é o passo que torna a validação DKIM possível para os servidores receptores. O registro deve ser criado como um registro TXT no subdomínio mail._domainkey.seudominio.com. O formato do seletor segue o padrão [seletor]._domainkey.[domínio].

  1. Acesse o painel DNS do seu domínio (AviraHost, Registro.br, Cloudflare, etc.)
  2. Crie um novo registro TXT com os seguintes dados:
  • Nome/Host: mail._domainkey
  • Tipo: TXT
  • TTL: 3600 (ou o mínimo permitido)
  • Valor: o conteúdo do arquivo mail.txt gerado anteriormente, no formato: v=DKIM1; k=rsa; p=SUA_CHAVE_PUBLICA_AQUI

Atenção: alguns painéis DNS exigem que o valor do registro TXT seja inserido sem as aspas externas. Se o painel rejeitar o valor, remova as aspas e tente novamente.

  1. Aguarde a propagação DNS (pode levar de alguns minutos até 48 horas) e valide a publicação:
opendkim-testkey -d seudominio.com -s mail -vvv
Output esperado:
opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'mail._domainkey.seudominio.com'
opendkim-testkey: key OK

Se o resultado for key OK, a chave pública está corretamente publicada e acessível via DNS. Você também pode verificar com o comando:

dig TXT mail._domainkey.seudominio.com +short

Testando e validando a assinatura DKIM

Após publicar a chave DNS e reiniciar os serviços, é essencial validar que o cabeçalho DKIM-Signature está sendo adicionado corretamente às mensagens enviadas. A validação pode ser feita de forma prática enviando um email de teste e analisando os cabeçalhos da mensagem recebida.

  1. Envie um email de teste a partir do servidor:
echo "Teste DKIM Rocky Linux 9" | mail -s "Teste DKIM" [email protected]
  1. No Gmail, abra o email recebido, clique nos três pontos no canto superior direito e selecione "Mostrar original". Procure pelas linhas:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=seudominio.com; s=mail;
Authentication-Results: mx.google.com;
       dkim=pass [email protected] header.s=mail header.b=XXXXXXXX;
  1. Alternativamente, use a ferramenta online mail-tester.com: envie um email para o endereço temporário fornecido pelo site e verifique a pontuação de autenticação.
  2. Verifique os logs do Postfix e OpenDKIM em tempo real:
journalctl -u opendkim -f
journalctl -u postfix -f
Output esperado (OpenDKIM):
opendkim[XXXX]: XXXXXXXX signing as seudominio.com

Problemas comuns e como resolver

Sintoma: OpenDKIM não inicia — erro de permissão no socket

Causa: o diretório /run/opendkim/ não existe ou pertence ao usuário errado, impedindo a criação do arquivo de socket.
Solução: verifique e recrie o diretório com as permissões corretas:

mkdir -p /run/opendkim
chown opendkim:opendkim /run/opendkim
chmod 750 /run/opendkim
systemctl restart opendkim

Se o problema persistir após reinicialização do sistema, crie um arquivo de configuração tmpfiles para garantir a criação automática do diretório:

echo "d /run/opendkim 0750 opendkim opendkim -" > /etc/tmpfiles.d/opendkim.conf
systemd-tmpfiles --create

Sintoma: Postfix retorna "milter: can't connect to /run/opendkim/opendkim.sock"

Causa: o usuário postfix não tem permissão para acessar o socket do OpenDKIM, ou o caminho do socket no main.cf está incorreto.
Solução: confirme que o usuário postfix está no grupo opendkim e que o caminho do socket está correto:

id postfix
groups postfix

Se o grupo opendkim não aparecer, execute novamente:

usermod -aG opendkim postfix
systemctl restart postfix opendkim

Confirme também que o caminho no main.cf usa o prefixo local: antes do caminho absoluto do socket.

Sintoma: opendkim-testkey retorna "key not found in DNS"

Causa: o registro TXT ainda não propagou, foi criado com o nome incorreto, ou o valor da chave pública foi truncado ao colar no painel DNS.
Solução: verifique o registro DNS com o comando dig:

dig TXT mail._domainkey.seudominio.com +short

Se não retornar nada, aguarde a propagação ou verifique se o nome do registro está correto. Alguns painéis DNS exigem que o domínio base seja omitido no campo "Nome" (use apenas mail._domainkey em vez de mail._domainkey.seudominio.com). Verifique também se a chave pública completa foi colada sem quebras de linha indevidas.

Sintoma: emails chegam com "dkim=fail" mesmo com chave publicada

Causa: a canonicalização configurada no OpenDKIM (relaxed/simple) pode estar em conflito com modificações feitas por servidores intermediários, ou a chave privada no servidor não corresponde à chave pública no DNS.
Solução: regenere o par de chaves, atualize o registro DNS e reinicie o OpenDKIM. Confirme que o arquivo mail.private referenciado no KeyTable é o mesmo gerado pelo opendkim-genkey. Use opendkim-testkey -vvv para diagnóstico detalhado.

Perguntas frequentes sobre Postfix com DKIM no Rocky Linux 9

O que é DKIM e por que é obrigatório no Postfix?

DKIM (DomainKeys Identified Mail) é um mecanismo de autenticação de email que assina digitalmente as mensagens enviadas com uma chave privada armazenada no servidor. O servidor receptor valida a assinatura consultando a chave pública publicada no DNS do domínio. Sem DKIM, emails legítimos têm alta probabilidade de serem marcados como spam por provedores como Gmail e Outlook. A combinação de DKIM com SPF e DMARC forma o conjunto completo de autenticação de email recomendado atualmente.

Qual porta o Postfix usa para envio autenticado no Rocky Linux 9?

O Postfix usa a porta 587 (submission) para envio autenticado com STARTTLS, que é o padrão recomendado para clientes de email. A porta 25 é reservada para comunicação entre servidores MTA. No Rocky Linux 9, ambas as portas devem ser habilitadas no arquivo master.cf e liberadas no firewalld com os comandos firewall-cmd --add-service=smtp e firewall-cmd --add-port=587/tcp.

Como verificar se o DKIM está funcionando corretamente após a configuração?

Envie um email de teste para um endereço Gmail ou use ferramentas como mail-tester.com e MXToolbox. No cabeçalho da mensagem recebida, procure pelo campo DKIM-Signature e pelo resultado dkim=pass na linha Authentication-Results. Você também pode executar opendkim-testkey -d seudominio.com -s mail -vvv no servidor para validar a chave DNS diretamente, sem precisar enviar um email.

O OpenDKIM funciona com múltiplos domínios no mesmo servidor?

Sim, o OpenDKIM suporta múltiplos domínios através dos arquivos KeyTable e SigningTable. Para cada domínio, você gera um par de chaves separado com opendkim-genkey, adiciona as entradas correspondentes nesses arquivos de tabela e publica cada chave pública no DNS do respectivo domínio. O daemon OpenDKIM seleciona automaticamente a chave correta com base no domínio remetente da mensagem.

Preciso reiniciar o Postfix após alterar as configurações do OpenDKIM?

Sim, após qualquer alteração nas configurações do OpenDKIM ou do Postfix, reinicie ambos os serviços com systemctl restart opendkim e systemctl restart postfix. Verifique o status com systemctl status opendkim postfix para confirmar que os daemons estão ativos. Erros de configuração aparecem no journal do systemd via journalctl -u opendkim -n 50, o que facilita o diagnóstico rápido de problemas.

Conclusão

Configurar o Postfix com DKIM corretamente no Rocky Linux 9 é um processo estruturado que envolve instalação, geração de chaves, configuração de arquivos de mapeamento, integração via socket e publicação DNS. Ao concluir esta configuração, seus emails terão autenticação criptográfica que melhora significativamente a entregabilidade.

  • Valide sempre com opendkim-testkey após publicar a chave DNS — não assuma que está funcionando sem confirmar o retorno key OK
  • Combine DKIM com SPF e DMARC para uma proteção completa contra spoofing e phishing usando o seu domínio
  • Monitore os logs regularmente com journalctl -u opendkim para identificar falhas de assinatura antes que afetem a reputação do domínio

Leia também

Precisa de ajuda com Postfix e DKIM no seu servidor?

Configurar um servidor de email seguro e com boa entregabilidade exige atenção a detalhes de DNS, permissões e integração entre serviços. Um VPS com suporte técnico especializado pode facilitar muito esse processo, especialmente em ambientes de produção onde a reputação do domínio é crítica.

Conheça os planos de VPS da AviraHost com suporte para Rocky Linux 9

  • 0 Os usuários acharam isso útil
  • Postfix, DKIM, Rocky Linux, email-corporativo, AviraHost, opendkim, servidor-email
Esta resposta foi útil?

Artigos Relacionados

Como Configurar Firewall em Servidor VPS Linux: Guia Prático com UFW

Como Configurar Firewall em Servidor VPS Linux: Guia Prático com UFWO firewall é essencial para...

Como Configurar e Usar o Fail2Ban para Proteger seu Servidor VPS Linux

O que é o Fail2Ban? Fail2Ban é uma ferramenta de segurança que monitora logs de serviços (como...

Como Instalar e Configurar o Firewall CSF no VPS Linux para Segurança Avançada

Introdução O CSF (ConfigServer Security & Firewall) é uma solução robusta de firewall para...

Guia Prático para Ativar e Gerenciar o ModSecurity no Apache em VPS Linux e Servidores Dedicados

Introdução O ModSecurity é um firewall de aplicação web (WAF) essencial para proteger servidores...

Checklist Completo para Configurar e Testar o Firewall UFW em VPS Linux e Servidores Dedicados

Introdução O UFW (Uncomplicated Firewall) é uma ferramenta simples e eficiente para gerenciar...