O Sender Policy Framework (SPF) é um recurso muito interessante em complemento às outras técnicas já conhecidas (gerência da porta 25, RBL’s, antivirus, verificações regex de cabeçalhos e corpos e clientes e emails, etc…) no combate de spams, virus e pishing que trafegam pela rede e funciona de uma forma muito simples e extremamente confiável: Todos os donos de domínios definem quem eles permitem que enviem emails com o seu domínio.
Por exemplo: você tem o domínio seusite.com.br e envia seus emails somente pelos servidores do Terra.com. Então você configura um campo TXT corretamente formatado para o SPF com a informação de que somente os servidores do Terra.com podem enviar emails de @seusite.com.br. Dessa forma, se alguém vier de outro IP alheio ao Terra.com em um servidor de email (com spf) e disser ser você@seusite.com.br terá o envio negado!
Porém.. se a mensagem vier de um domínio que não possui o registro SPF ela será entrege normalmente pois não será possível comprovar a autenticidade da mesma.
Criar esse registro só nos trás vantagens: evita que os servidores que fazem a verificação SPF aceitem quem usar nosso domínio em vão 😉
Para quem tem desenvoltura com o bind, a configuração é simples: basta acrescentar um registro TXT do domínio contendo os valores:
“v=spf1 <registros> –all”
É desejável adicionar também um registro SPF com o mesmo conteúdo do registro TXT.
Os registros podem ser:
mx permissão de envio concedida ao servidor mx desse domínio;
a permissão de envio concedida ao ip desse registro;
ip4:200.200.200.0/25 permissão de envio concedida à rede 200.200.200.0/25;
include:dominio.com.br permissão de envio concedida aos mesmos ips listados como permitidos no dominio.com.br.
Existem diversas opções para o –all, sendo que ele é o mais importante pois nega o envio por quem não estiver listado como permitido nos <registros>.
E outra observação importante, os subdomínios devem conter também um registro TXT, permitindo ou negando o envio de mensagens. Por exemplo, como não envio emails de usuario@www.seusite.com.br devemos negar o envio provindo do subdomínio www com o seguinte registro:
www TXT “v=spf1 –all”
www SPF “v=spf1 –all”
Dependendo da sua quantidade de domínios e ou subdomínios será um trabalho que tomará seu tempo.. porém só precisa ser efetuado uma única vez e não exige manutenção.
Para concluir, iremos adicionar a verificação dos registros SPF ao nosso Postfix! De maneira simples e fácil: Precisamos da biblioteca spf2 e do servidor policyd (modificado para verificação SPF). Ambos podem ser encontrados em: http://www.libspf2.org/ e cabe uma observação: O policyd só funciona com a versão 1.0 da libspf2, portanto procure efetuar o download da biblioteca antiga mais recente (1.04).
Depois de compilados e instalados, basta acrescentar o policyd no master.cf:
policy unix - n n - - spawn
user=nobody argv=/<diretório>/policyd
No main.cf iremos adicionar a verificação do envelope de remetente:
smtpd_sender_restrictions =
...
...
check_policy_service unix:private/policy
Depois, torna-se interessante verificar os cabeçalhos de SPF de mensagens enviadas de outros servidores para você, como pode ser lido aqui para aumentar a segurança das mensagens recebidas!
Com mais essa ferramenta e a adoção do SPF os nossos servidores estão dia após dia cada vez mais seguros! 💡