DomainKeys Identified Mail (DKIM) é um método de validação de email que utiliza chave pública e privada. A chave privada é usada para assinar cada mensagem enviada e a chave pública é usada pelo receptor da mensagem para válidar a assinatura. É muito importante que se utilize DKIM pois além de evitar fraudes ele faz com que seus emails tenham mais chances de não serem classificados como SPAM.
Ao fazer este tutorial usei o Debian e DKIM-Filter 2.8.2.
Instalando e Configurando Domain Keys Identified Mails (DKIM)
1. Instale dkim-filter:
$ apt-get install dkim-filter
2. Crie as chaves (pública e privada) e as pastas onde as mesmas deverão ficar. Repita este processo para cada domínio que deseja utilizar DKIM. Utilizei o domínio “masterdaweb.com” como exemplo:
$ mkdir -p /etc/dkim/keys/masterdaweb.com $ cd /etc/dkim/keys/masterdaweb.com $ dkim-genkey -r -d masterdaweb.com
Na pasta onde criamos as chaves, /etc/dkim/keys/masterdaweb.com, teremos dois arquivos:
default.private (contém a chave privada)
default.txt (contém a chave pública)
O próprio nome do arquivo “default.private” é usado como o nome do SELECTOR, que será usado nas configurações de DNS. Caso queira alterar o nome do SELECTOR basta alterar o nome do arquivo “default.private”. No nosso exemplo deixaremos como está.
3. Crie o arquivo “/etc/dkim-keys.conf”:
$ vi /etc/dkim-keys.conf
Adicione a seguinte linha para cada domínio que deseja utilizar DKIM:
*@masterdaweb.com:masterdaweb.com:/etc/dkim/keys/masterdaweb.com/default.private
Como no nosso exemplo não alteremos o nome do SELECTOR, então por padrão ele terá o nome “default.private”, caso tenha alterado o nome do SELECTOR corrija a linha adicionada acima com o nome usado.
4. Adicione um registro TXT no DNS de cada domínio que utilizará DKIM. O registro TXT que usaremos está em “/etc/dkim/keys/masterdaweb.com/default.txt”. Para isso siga os seguintes passos:
Copie registro TXT:
cat /etc/dkim/keys/masterdaweb.com/default.txt
Antes de adicionar o registro TXT copiado, altere o registro de acordo com o nome do SELECTOR. No nosso exemplo, o registro copiado foi:
default._domainkey IN TXT “v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDewoXL1vvGBj/AyFYblIQSc1l5jRsYjDkeE4jVLSIDwgpqnWAMB6ibSuBU/ZS4zIWqIj2rTxHhowIO19obe9orf7XgKcq3kKAqtreznW15BfMBpCAoHVNd3q0yjniANFIXFH7mxEljR+ufFOtGYzIytFwPmDn2VepKZBaqLOOHDwIDAQAB” ;
No lugar da palavra “default”, coloque o nome do SELECTOR:
default.private._domainkey IN TXT “v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDewoXL1vvGBj/AyFYblIQSc1l5jRsYjDkeE4jVLSIDwgpqnWAMB6ibSuBU/ZS4zIWqIj2rTxHhowIO19obe9orf7XgKcq3kKAqtreznW15BfMBpCAoHVNd3q0yjniANFIXFH7mxEljR+ufFOtGYzIytFwPmDn2VepKZBaqLOOHDwIDAQAB” ;
Agora insira no DNS do domínio o registro TXT editado.
Para verificar se o registro TXT adicionado é válido existe uma ferramente online: http://dkimcore.org/c/keycheck
5. Crie o arquivo ” /etc/dkim-filter.conf”:
$ vi /etc/dkim-filter.conf
Adicione no arquivo a seguinte linha:
KeyList /etc/dkim-keys.conf
6. Abra o arquivo ” /etc/default/dkim-filter”:
$ vi /etc/default/dkim-filter
Adicione no arquivo o seguinte socket:
SOCKET=”inet:8891@localhost”
7. Configure o Postfix para consultar o DKIM-Filter usando o socket criado anteriormente:
$ vi /etc/postfix/main.cf
Adicione no arquivo as segunites linhas:
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
8. Reinicie o DKIM-Filter e recarregue as configurações do Postfix:
$ /etc/init.d/dkim-filter restart $ postfix reload
Pronto! Agora aguarde a propagação do DNS e em seguida faça um teste enviando um email e verificando o cabeçalho do mesmo para saber se o DKIM está funcionando corretamente.
Muito obrigado! Ajudou muito! Utilizo o Debian com Postfix e isso era exatamente o que eu precisava.