Selor DKIM - Documentação Básica

 

Instalação

ATENÇÃO: Este programa precisa de recursos do MTA Selor que só estão disponíveis a partir da versão 1.3

Selor_DKIM é uma ferramenta externa para gerar assinaturas DKIM nos emails que passam pelo MTA.
Muitos servidores de emails checam por essas assinaturas para comprovar se sua origem e conteúdo são autênticos.

Se o seu email possuir uma assinatura DKIM válida, ele receberá uma pontuação positiva diante do anti-spam da maioria dos grandes servidores do
mundo.

Uma 'rápida' explicação. (IMPORTANTE):

Em uma assinatura DKIM, temos principalmente um domínio e um seletor, que serão usados para quem recebe o email saber onde buscar a chave pública.
O email é assinado com a chave privada, mas é com o a chave pública que o MTA que recebe checa sua autenticidade.

Neste exemplo eu vou usar o domínio mtaselor.com.br com o seletor 's19801007 '. Você pode usar o nome de seletor que quiser.
Então, assim que geramos a chave pública, será preciso criar uma entrada TXT no DNS, no meu caso, do mtaselor.com.br, contendo essa chave.
Como eu escolhi o nome de seletor para ser s19801007 , então a entrada de DNS DEVE SER:

s19801007._domainkey.mtaselor.com.br

Digamos que o seu domínio para abrigar a chave seja meudominio123.com e você tenha escolhido como seletor, testeselorlegal2015, a entrada em seu DNS teria que ser: testeselorlegal2015._domainkey.meudominio123.com

Esta entrada, s19801007._domainkey.mtaselor.com.br, realmente existe em meu domínio. Você pode consultar sua chave pública com o comando no Linux/FreeBSD:

host -t txt s19801007._domainkey.mtaselor.com.br

Pode-se ter vários domínios em seu servidor e usar apenas um domínio principal para assinar todos os emails, independente do domínio. Neste exemplo, vou mostrar este caso, mas o selor_dkim possui recursos para consultar uma chave e assinatura diferente para cada domínio com base em
seu banco de dados MySQL (Não usaremos isso aqui. Isto pode ser discutido no Fórum).

A parte de DNS (named) eu não vou mostrar o passo a passo de como criar a entrada para não estender muito esta dica e cada distribuição tem seus caminhos. Vou apenas mostrar o que deve ser acrescentado a seu domínio.

 

Bom, vamos a instalação:

Puxe a ferramenta do site por este link.

Jogue o arquivo dentro do diretório 'úteis' do servidor e descompacte o arquivo:

cp selor_dkim_1.0.tar.bz2 /usr/local/selor/uteis

cd /usr/local/selor/uteis

tar xjf selor_dkim_1.0.tar.bz2

Compile o módulo de acordo com o seu caso:

-->
 Linux 32 Bits
gcc selor_dkim.c -o selor_dkim -lssl -lmysqlclient -lcrypto

--> Linux 64 Bits
gcc selor_dkim.c -o selor_dkim -DA64 -lssl -lmysqlclient -lcrypto

--> FreeBSD 32 Bits
gcc selor_dkim.c -o selor_dkim -L/usr/local/lib/mysql -DFreeBSD -lssl -lmysqlclient -Wall

--> FreeBSD 64 Bits
gcc selor_dkim.c -o selor_dkim -L/usr/local/lib/mysql -DFreeBSD -DA64 -lssl -lmysqlclient -Wall

 

chmod 555 /usr/local/selor/selor_dkim

 

Vamos agora gerar a chave privada e pública.
A Chave privada deve ficar 'escondida' em seu servidor e será usada pelo selor_dkim para gerar as assinaturas que serão colocadas no email:

mkdir /usr/local/selor/uteis/dkim_keys/

cd /usr/local/selor/uteis/dkim_keys

openssl genrsa -out dkim_private.key 1024

openssl rsa -pubout -in dkim_private.key  -out dkim_public.key

Chaves geradas. Pegue o CONTEÚDO de sua chave pública (dkim_public.key) para jogarmos em nosso domínio.

cat /usr/local/selor/uteis/dkim_keys/dkim_public.key

No meu caso, o conteúdo é:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQ1qvWQGZ6+Xs12ZKBVv/T+ITS
tNmT3qd5FIJS+HqSt62PKHT3SvHy6KIAAmnoK4EF3sxJ7qVUeXXnRF6kJ9QbP60J
7QgXxQ/kxtgn1ZZjYKXgAIXrpVsJd5iOnymIynAsw74HAsyShhxnz4qYyN2PIH85
cpTn0pv6TyLsT2Nf5QIDAQAB
-----END PUBLIC KEY-----

Copie a chave (SEM as linhas '-----BEGIN PUBLIC KEY-----' e '-----END PUBLIC KEY-----') com um CTRL+C, cole em um editor de textos e deixa-a em uma única linha:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQ1qvWQGZ6+Xs12ZKBVv/T+ITStNmT3qd5FIJS+HqSt62PKHT3SvHy6KIAAmnoK
4EF3sxJ7qVUeXXnRF6kJ9QbP60J7QgXxQ/kxtgn1ZZjYKXgAIXrpVsJd5iOnymIynAsw74HAsyShhxnz4qYyN2PIH85cpTn0pv6Ty
LsT2Nf5QIDAQAB

Crie a entrada TXT no seu DNS, no meu caso, s19801007._domainkey.mtaselor.com.br com o conteúdo:
 v=DKIM1; k=rsa; p=[CHAVE PÚBLICA]

Exemplo:
"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQ1qvWQGZ6+Xs12ZKBVv/T+ITStNmT3qd5FIJS+HqSt
62PKHT3SvHy6KIAAmnoK4EF3sxJ7qVUeXXnRF6kJ9QbP60J7QgXxQ/kxtgn1ZZjYKXgAIXrpVsJd5iOnymIynAsw74HAsyShhxnz4q
YyN2PIH85cpTn0pv6TyLsT2Nf5QIDAQAB"

Acrescente isso em seu DNS e reinicie-o.

 

Edite agora o evento Event.data para adicionarmos a chamada ao selor_dkim:

pico /usr/local/selor/rules_data

Coloque o seguinte conteúdo(2 regras) (Obs: Vou usar como exemplo o domínio 'mtaselor.com.br' com o seletor 's19801007 '. Troque pelo seu):

Auth? Internal_from? Exec! "/usr/local/selor/uteis/selor_dkim --gen %L/c%d -h 'From:To:Date:Subject' -s s19801007 -d 'mtaselor.com.br' --pkey /usr/local/selor/uteis/dkim_keys/dkim_private.key"

Auth? Internal_from? Itest? "%t=0" Hadd! "%E"

 

A primeira regra executa o selor_dkim que analisa o email na fila e 'imprime' na stdout a chave gerada, pronta para ser adicionada ao header do email. A segunda regra que executa o 'Hadd!' marca essa saída de texto para ser adicionada ao header do email quando ele estiver sendo enviado para fora do servidor. Nas versões anteriores do MTA Selor (abaixo da 1.3), a Hadd não tem influência no evento Event.data. Este recurso foi acrescentado na 1.3. Temos também uma nova variável: %L que retorna exatamente o caminho do arquivo de fila atual (geralmente: /var/spool/selor/).

Esta feito. Todos os emails AUTENTICADOS enviados por seus clientes serão assinados com chave DKIM.

 

 

Powered by C - Assembly