Configurando o DKIM e Postfix no Debian 9

Esse tutorial é para explicar como se configura o DKIM para funcionar no Postfix do Debian 9, essa dica leva em conta que o Postfix já esta configurado e funcionando no seu servidor.

1) Instalar os pacotes necessários.

2) Adicionar o usuário postfix ao grupo opendkim, isso vai permitir ao Postfix acessar o socket criado pelo serviço OpenDKIM.

3) Agora vamos editar o arquivo /etc/opendkim.conf e colocar o conteúdo abaixo.

4) Agora vamos criar os diretórios que foram utilizados no arquivo de configuração acima.

5) Vamos criar o arquivo com a tabela de assinaturas /etc/opendkim/signing.table. Nesse arquivo é necessário ter uma linha para cada domínio de email que o servidor irá manipular, cada linha devera ser conforme o exemplo abaixo.

O primeiro campo é um padrão que corresponde aos endereços de e-mail, que serão assinados. O segundo campo é um nome para a entrada na tabela de chaves que deve ser usada para assinar os emails desse endereço. Para simplificar vou configurar uma chave para todos os domínios.
No meu exemplo estou configurando para que o meu servidor postfix assine os emails de dois dos meus domínios, o adonai.eti.br e o canez.com.br, utilizando a mesma chave privada.

6) Criar a tabela de chaves no arquivo  /etc/opendkim/key.table.

Substitua o AAAA pelo ano atual e MM pelo mês atual, eles serão referenciados como seletores.
A primeira coluna do arquivo serve para conectar os arquivos de assinatura (signing.table) com o arquivo de chaves (key.table).
A segunda coluna é dividida em 3 campos separados por dois pontos:
* O primeiro campo é o nome de domínio que a chave vai ser usada para assinar os emails.
* O segundo campo é o seletor usado quando for feito a pesquisa de DNS.
* O terceiro campo possui a chave que ira assinar os emails do domínio.

7) Vamos criar o arquivo /etc/opendkim/trusted.hosts. Nele iremos definir os servidores que os usuários poderão enviar emails e que terão seus emails assinados pelo postfix, nesse caso irei colocar apenas o próprio servidor de email, mas se você tiver outros servidores que enviam emails utilizando esse servidor, é necessário colocar os IPs deles aqui nesse arquivo.

8) Vamos gerar o par de chaves que será utilizado para assinar os emails do dominio.

Esse comando ira gerar dois arquivos:
* AAAAMM.private – contem a chave privada que vai assinar os emails.
* AAAAMM.txt – contem o registro de DNS que sera necessário colocar no servidor DNS do domínio.

Você pode renomear os arquivos AAAAMM.private e AAAAMM.txt para o nome do domínio que estiver usando a chave, no caso de você desejar criar chaves diferentes para cada domínio.

O parâmetro -b 2048 do comando informa para usar uma chave RSA de 2048 bits, sendo que é possível usar chaves de 1024 bits e de 4096 bits, sendo recomendável manter essa de 2048.

9) Altere as permissões dos arquivos e diretórios que foram criados.

10) Vamos reiniciar o serviço do opendkim e verificar se subiu corretamente.

Verifique se não tem mensagens de erro.

 

Configurando o DNS com o DKIM

O DKIM utiliza registros TXT no DNS para armazenar a chave publica que sera consultada pelos servidores de email que receberem emails do seu domínio. Por isso é necessário que você crie um registro TXT no seu DNS e coloque o conteúdo do arquivo AAAAMM.txt. Abaixo tem o conteúdo do arquivo que eu gerei para o tutorial.

Na imagem abaixo você pode verificar como deve ser feito o registro no servidor de DNS, essa imagem é do serviço de DNS da empresa Hurricane Eletric que é um ótimo serviço de DNS e é gratuito. Nessa imagem de exemplo eu já fiz a substituição do AAAAMM por 201711.

Testando a configuração

Agora vamos testar se a configuração do DKIM para os meus dois dominios estão corretas.

 

Integrando o OpenDKIM com o Postfix

1) Nesse tutorial vou utilizar um socket tcp para o serviço do opendkim, com isso o postfix vai fazer a conexão na porta 12345 que será configurada no arquivo /etc/default/opendkim. Edite o arquivo e deixe ele apenas com a linha abaixo.

2) Agora vamos editar o arquivo /etc/postfix/main.cf e adicionar as seguintes linhas no final do arquivo de configuração.

3) Após essas alterações vamos reiniciar o serviço do OpenDKIM, para ele ativar o socket tcp que vai ser utilizado pelo Postfix.

4) Agora vamos reiniciar o Postfix para ele começar a utilizar o OpenDKIM.

 

Configurando o Author Domain Signing Practices (ADSP)

Essa configuração é opcional, mas na minha opinião é muito importante ser habilitada. Você pode adicionar uma política ADSP ao seu domínio dizendo que todos os emails do seu domínio devem ser assinados pelo DKIM. Como de costume, é feito com um registro TXT para o host _adsp._domainkey em seu domínio com um valor de dkim = all. Como na imagem abaixo, que mostro como fazer utilizando o servidor de DNS da Hurricane Eletric.

Verificação das configurações do servidor

Agora podemos verificar as configurações do seu servidor de email, se todas as configurações estiverem corretas você não terá problemas para enviar emails para os grandes serviços de email como: gmail., yahoo, outlook, sendo que o outlook é mais chato e as vezes bloqueia alguns domínios de remetentes, ai só entrando em contato com eles pedindo a liberação.
Para fazer o teste eu recomendo utilizar o serviço do provedor port25.com é só enviar um email do domínio que você quer testar para o email check-auth@verifier.port25.com que eles responderam para o remetente o resultado dos testes informando o que esta configurado corretamente e o que não está.

Referências

DMARC: Site do padrão DMARC
OpenDKIM: Site do OpenDKIM
DomainKeys Identified Mail

Um comentário

  • Mar 18 18:32:22 bluesafe systemd[1]: opendkim.service: Control process exited, code=exited status=78
    Mar 18 18:32:22 bluesafe systemd[1]: Failed to start OpenDKIM DomainKeys Identified Mail (DKIM) Milter.
    Mar 18 18:32:22 bluesafe systemd[1]: opendkim.service: Unit entered failed state.
    Mar 18 18:32:22 bluesafe systemd[1]: opendkim.service: Failed with result ‘exit-code’.
    Mar 18 18:32:22 bluesafe systemd[1]: opendkim.service: Service hold-off time over, scheduling restart.
    Mar 18 18:32:22 bluesafe systemd[1]: Stopped OpenDKIM DomainKeys Identified Mail (DKIM) Milter.
    Mar 18 18:32:22 bluesafe systemd[1]: opendkim.service: Start request repeated too quickly.
    Mar 18 18:32:22 bluesafe systemd[1]: Failed to start OpenDKIM DomainKeys Identified Mail (DKIM) Milter.
    Mar 18 18:32:22 bluesafe systemd[1]: opendkim.service: Unit entered failed state.
    Mar 18 18:32:22 bluesafe systemd[1]: opendkim.service: Failed with result ‘exit-code’.

     

    Você pode me ajudar ? Está dando esse erro

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *