Email Configuration · 5 min read · Oct 14, 2025
Configurar DKIM (DomainKeys Identified Mail) Funcionando Com Postfix No CentOS Usando OpenDKIM
Configurar DKIM (DomainKeys Identified Mail) Funcionando Com Postfix No CentOS Usando OpenDKIM
Versão 1.0
Autor: Eladio Martinez < [email protected] >
http://twitter.com/mafecsllc
Este tutorial mostra como fazer o DKIM funcionar em uma máquina CentOS executando Postfix usando OpenDKIM, também abordarei algumas dicas simples de solução de problemas e conselhos para futuras atualizações na sua instalação do OpenDKIM.
1 Requisitos
Este tutorial assume que você tem uma instalação completa do CentOS funcionando os seguintes serviços:
- Postfix 2.3.3 ou melhor atualmente funcionando.
- Sendmail está desligado.
2 Notas Preliminares
Estou executando todos os passos deste tutorial com privilégios de root, atualmente estou executando o CentOS 6.3 com a versão 2.4.2 do OpenDKIM e usarei example.com como o domínio principal para este tutorial.
3 Baixar e instalar OpenDKIM
Você também precisará instalar os pacotes de desenvolvimento do OpenSSL e Sendmail, porque eles contêm algumas “bibliotecas” que você precisa para fazer o OpenDKIM funcionar.
yum install sendmail-devel openssl-devel
Baixe o OpenDKIM para o diretório /usr/local/src:
cd /usr/local/src
wget http://sourceforge.net/projects/opendkim/files/opendkim-2.4.2.tar.gz
Extraia, configure, compile e instale o OpenDKIM com:
tar zxvf opendkim-2.4.2.tar.gz
cd opendkim-2.4.2
./configure –sysconfdir=/etc –prefix=/usr/local –localstatedir=/var
make
make install
Note que o comando ./configure inclui algumas flags muito importantes, que serão passadas para o script de inicialização que é criado quando o comando configure é executado. A primeira informa ao sistema onde o arquivo de configuração do OpenDKIM estará localizado, a segunda define o prefixo preferido para alguns outros locais de arquivos importantes, e a última controla o diretório onde o arquivo PID do OpenDKIM será armazenado.
4 Criar um novo usuário
Adicione um novo usuário para o DKIM chamado opendkim com as seguintes opções:
useradd -r -U -s /sbin/nologin opendkim
Este comando criará uma nova conta de sistema (-r) e grupo (-g) chamada opendkim e não atribuirá acesso ao shell a este usuário (-s).
5 Criar diretórios de trabalho
Crie alguns novos diretórios para o OpenDKIM e dê a eles a propriedade e permissões adequadas com:
mkdir -p /etc/opendkim/keys
chown -R opendkim:opendkim /etc/opendkim
chmod -R go-wrx /etc/opendkim/keys
6 Copiar o script de inicialização para /etc/init.d/
O pacote fonte do OpenDKIM inclui um diretório contrib que contém um script init personalizado para ser usado com todos os sistemas compatíveis com RedHat, incluindo Fedora e CentOS. Você pode copiá-lo para o seu diretório /etc/init.d/ para facilitar o início, parada, reinicialização e recarga do OpenDKIM:
cp /usr/local/src/opendkim-2.4.2/contrib/init/redhat/opendkim /etc/init.d/
Agora defina as permissões corretas para o script init:
chmod 755 /etc/init.d/opendkim7 Gerar chaves para assinatura
Você precisa gerar uma chave privada e uma chave pública para cada um dos domínios para os quais deseja assinar e-mail. A chave privada é armazenada em seu servidor, enquanto a chave pública é publicada nos registros DNS do seu domínio para que os servidores de e-mail receptores possam verificar seu e-mail assinado com DKIM.
Você precisa decidir agora qual será o nome do seu seletor. Um seletor é uma palavra-chave única que está associada a ambas as chaves (pública e privada), incluída em todas as assinaturas e publicada em seus registros DNS. Para simplicidade, uso a palavra default como meu seletor padrão. Sinta-se à vontade para escolher algo diferente, mas se o fizer, precisará usá-lo de forma consistente em toda a sua configuração. Além disso, embora isso deva ser óbvio, você deve usar seu domínio de e-mail em vez de example.com em todos os passos seguintes.
Crie suas chaves:
mkdir /etc/opendkim/keys/example.com
/usr/local/bin/opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default
chown -R opendkim:opendkim /etc/opendkim/keys/example.com
mv /etc/opendkim/keys/example.com/default.private /etc/opendkim/keys/example.com/default
Neste exemplo, usei a opção -D (diretório), a opção -d (domínio) e as opções -s (seletor). Isso é tudo que você precisa para fazer isso funcionar.
8 Editar arquivos de configuração
Você precisa criar ou editar quatro arquivos:
- 1 /etc/opendkim.conf –- arquivo de configuração principal do OpenDKIM
- 2 /etc/opendkim/KeyTable –- uma lista de chaves disponíveis para assinatura
- 3 /etc/opendkim/SigningTable – uma lista de domínios e contas autorizadas a assinar
- 4 /etc/opendkim/TrustedHosts –- uma lista de servidores para “confiar” ao assinar ou verificar
Crie o arquivo /etc/opendkim.conf:
vi /etc/opendkim.conf
Certifique-se de que seu arquivo fique assim:
##
## opendkim.conf -- arquivo de configuração para o filtro OpenDKIM
##
AutoRestart Yes
AutoRestartRate 10/1h
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
LogWhy Yes
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
SigningTable refile:/etc/opendkim/SigningTable
Socket inet:8891@localhost
Syslog Yes
SyslogSuccess Yes
TemporaryDirectory /var/tmp
UMask 022
UserID opendkim:opendkimCrie o arquivo /etc/opendkim/KeyTable:
vi /etc/opendkim/KeyTable
Certifique-se de que seu arquivo fique assim:
default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/defaultO arquivo KeyTable informa ao OpenDKIM onde encontrar suas chaves. Cada entrada no arquivo KeyTable é uma única linha para cada local de chave (por exemplo, todo o texto no exemplo acima deve estar em uma única linha no seu arquivo). Se você for usar várias chaves (para assinar e-mails para domínios virtuais com chaves diferentes), precisará criar uma linha separada no arquivo KeyTable para cada domínio.
Crie o arquivo /etc/opendkim/SigningTable:
vi /etc/opendkim/SigningTable
Certifique-se de que seu arquivo fique assim:
*@example.com default._domainkey.example.comO arquivo SigningTable informa ao OpenDKIM como usar suas chaves, como quais remetentes devem usar quais seletores para suas assinaturas. No exemplo acima, estou dizendo que todos () enviando e-mail do servidor “example.com” devem usar o seletor chamado “default”. É importante notar que o símbolo curinga só funcionará se a opção SigningTable usar o prefixo refile: antes do nome do arquivo.
Crie o arquivo /etc/opendkim/TrustedHosts:
vi /etc/opendkim/TrustedHosts
Certifique-se de que seu arquivo fique assim:
127.0.0.1
hostname1.example1.com
example1.com
hostname1.example2.com
example2.comO arquivo TrustedHosts informa ao OpenDKIM quem pode usar suas chaves. Como é referenciado pela diretiva ExternalIgnoreList em seu arquivo de configuração, o OpenDKIM ignorará esta lista de hosts ao verificar e-mails recebidos e, como também é referenciado pela diretiva InternalHosts, esta mesma lista de hosts será considerada “interna”, e o OpenDKIM assinará seus e-mails de saída.
IMPORTANTE: Certifique-se de listar o endereço IP para localhost (127.0.0.1) no arquivo TrustedHosts ou o OpenDKIM não assinará e-mails enviados deste servidor. Se você tiver vários servidores na mesma rede que retransmitem e-mails através deste servidor e quiser assinar seus e-mails também, eles devem ser listados no arquivo TrustedHosts. Coloque cada entrada em sua própria linha. Uma entrada pode ser um nome de host, nome de domínio (por exemplo, “example.com”), endereço IP, um endereço IPv6 (incluindo um endereço IPv4 mapeado) ou uma especificação de IP no estilo CIDR (por exemplo, “192.168.1.0/24?”).
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.