Implementando verificações SPF no Postfix.

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! 💡

Leia Mais Artigos sobre o Postfix!

Atualizando a pesquisa de cache do Bind (named).

Se você utiliza o Bind como servidor DNS local de descoberta dos domínios da internet é interessante atualizar sempre o arquivo named.root, que contém os servidores dns raízes da internet, fundamental à descoberta de domínios.

Esse script automatiza o processo de atualização efetuando o download o arquivo named.root direto do ftp da internic.net e pode ser programado para ser executado sempre (recomendo utilizar semanalmente). Caso a conexão falhe, o arquivo não será atualizado.. permanecendo funcionando perfeitamente até a próxima atualização.

Continuar lendo

Atualizando os IPs em vários domínios no Bind (named)!

Esse simples script que eu desenvolvi tem como objetivo atualizar a sua lista dns de um modo prático e rápido, substituindo ips antigos por ips novos, facilitando a manutenção de quem tem muitos domínios e ou o ip muda sempre. Para completar, ele atualiza também o número de série do(s) domínio(s) de acordo com os padrões! E pode ser utilizado para atualizar qualquer outro arquivo em que se precise alterar o IP constantemente, como por exemplo o arquivo de configuração de um servidor de irc, do servidor web… etc! 💡

Continuar lendo