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:
- Instalar o Postfix e o OpenDKIM via DNF
- Gerar o par de chaves DKIM para o domínio
- Configurar os arquivos KeyTable, SigningTable e TrustedHosts do OpenDKIM
- Integrar o OpenDKIM ao Postfix via socket Unix
- Publicar a chave pública no DNS do domínio
- 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-releasedeve 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.
- Habilite o repositório EPEL:
dnf install -y epel-release
- 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!
- Habilite e inicie os serviços:
systemctl enable --now postfix opendkim
- 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.
- Crie o diretório para armazenar as chaves:
mkdir -p /etc/opendkim/keys/seudominio.com
cd /etc/opendkim/keys/seudominio.com
- 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.
- 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.
- 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.
- 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
- Crie o arquivo
KeyTable:
nano /etc/opendkim/KeyTable
mail._domainkey.seudominio.com seudominio.com:mail:/etc/opendkim/keys/seudominio.com/mail.private
- Crie o arquivo
SigningTable:
nano /etc/opendkim/SigningTable
*@seudominio.com mail._domainkey.seudominio.com
- Crie o arquivo
TrustedHosts:
nano /etc/opendkim/TrustedHosts
127.0.0.1
localhost
seudominio.com
mail.seudominio.com
- 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
- 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.
- 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
- 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
- Adicione o usuário
postfixao grupoopendkimpara que ele possa acessar o socket:
usermod -aG opendkim postfix
- Reinicie ambos os serviços:
systemctl restart opendkim postfix
- 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].
- Acesse o painel DNS do seu domínio (AviraHost, Registro.br, Cloudflare, etc.)
- 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.txtgerado 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.
- 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.
- Envie um email de teste a partir do servidor:
echo "Teste DKIM Rocky Linux 9" | mail -s "Teste DKIM" [email protected]
- 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;
- 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.
- 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 opendkimpara identificar falhas de assinatura antes que afetem a reputação do domínio
Leia também
- Entenda UFW ou firewalld para Rocky Linux 9: análise honesta
- Como configurar servidor de email no Ubuntu 24.04
- Checklist Completo para Configurar e Testar o Firewall UFW em VPS Linux e Servidores Dedicados
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